Il completamento della scheda ZSH dei comandi git è molto lento. Come posso spegnerlo?


18

Se scrivo:

rm <TAB>

Vedrò possibili completamenti quasi istantaneamente.

Tuttavia, se digito:

git rm <TAB>

Si bloccherà per diversi secondi se si trova in un repository git o non mostrerà alcun completamento se sono al di fuori di un repository git.

Come posso risolvere questo comportamento?

Non c'è niente nel mio .zshrc che sembra avere a che fare con git: - /


+1 Questo mi fa così impazzire che ho collegato il mio cervello per non colpire <TAB>quando si usa git.
Christopher

Risposte:


26

Alla fine mi sono preso la briga di cercarlo su Google e ho trovato questa risposta SO, che ha funzionato perfettamente per me. Aggiungi questo a .zshrc:

__git_files () { 
    _wanted files expl 'local files' _files     
}

C'è anche un profondo thread della mailing list qui che spiega cosa zshsta facendo per impiegare così tanto tempo.


1
Questo non ha funzionato per me. Sto caricando i seguenti plugin oh-my-zsh: plugins = (git gitfast last-working-dir zeus). Ho caricato la funzione sopra dopo i plugin.
justingordon,

1
Ho avuto lo stesso problema. Commenti per confermare il successo: su OSX 10.8.5, zsh 4.3.11, git 1.8.2, la voce .zshrc ha fatto la differenza. Senza di essa, la CPU è regolarmente bloccata al 100%. Con esso, il completamento della scheda sembra più o meno lo stesso per i comandi git di qualsiasi altro. Grazie! :)
cweekly

Assicurati di inserire questo comando prima dei tuoi plugin zsh, altrimenti potresti finire con un completamento automatico rapido, ma errori quando tenti di eseguire effettivamente il comando git.
Simon,

1

Ecco un'altra opzione: il completamento ufficiale di Git zsh: git-completato.zsh . Tutto quello che devi fare è scaricarlo su ~/.zsh/_gite assicurarti che sia nel tuo percorso:

fpath=(~/.zsh $fpath)

Trovo interessante che questo thread sia menzionato in un'altra risposta; Ho iniziato quella discussione e di conseguenza ho scritto il completamento ufficiale di Git zsh.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.