Ottimizzazione del completamento automatico di zsh git


10

Sono appena passato da bash all'utilizzo di zsh 4.3.4 su Ubuntu Hardy. Sto sviluppando con git e mi trovo costantemente a combattere con i completamenti git predefiniti: il completamento del nome file cerca di essere intelligente rilevando ciò che hai aggiunto o rimosso (usando i file git-ls) ma a volte sbaglia le cose --- ad esempio, se ci si trova in una sottodirectory. Inoltre non conosce i miei alias git personalizzati (ad esempio, git ci come alias per commit).

zsh superuser, come dovrei migliorare questa situazione?

Ecco alcuni dei miei pensieri, anche se non so come implementarli poiché sono nuovo di zsh, quindi forse puoi aiutare o offrire i tuoi:

  • Disabilita il completamento del nome file git, lasciando solo il completamento ramo / tag / nome-comando / opzione-comando.
  • Sostituisci il completamento del nome file "smart" con il completamento normale del nome file zsh.
  • Ottieni un nuovo file di completamento _git, se risolve questi bug, e sovrascrive quello di sistema.

Grazie!



Sì, per quanto posso dire, aggiunge solo un prompt git e non modifica i completamenti sottostanti.
Emil Sit,

Qualcuno può dirci come disabilitare tutto il completamento "intelligente" per tutti i comandi git? Fanno troppo IO. La shell deve rispondere istantaneamente. Voglio solo tornare al buon vecchio semplice completamento del nome file per i comandi git. Ogni volta che faccio una ricerca sul web per questo ottengo solo un labirinto di informazioni sulla pagina man zsh generica.
Peter Lyons,

2
Cordiali saluti per chiunque voglia semplicemente disabilitare il fastidioso completamento git che provoca il blocco della shell facendo IO, su Ubuntu 10.04, ho appena fatto questo: sudo mv /usr/share/zsh/functions/Completion/Unix/_git /usr/share/zsh/functions/Completion/Unix/OFF_git
Peter Lyons,

Risposte:


5

Prova ad aggiornare all'ultima versione di Zsh. Ho appena aggiornato da 4.3.4 a 4.3.10 e almeno risolve il problema con gli alias Git non completati.

Invece di hackerare la mia installazione ho aggiunto questo al mio locale .zshrc:

customzsh=/usr/local/src/zsh-4.3.10/bin/zsh-4.3.10
if [ "$SHELL" != "$customzsh" ]; then
  export SHELL=$customzsh
  exec $customzsh
fi

5

Per progetti di grandi dimensioni, anche gli script di completamento git più recenti sono troppo lenti. Per disabilitarli e usare semplicemente il normale completamento dei file, inserisci il seguente comando nel tuo .zshrc:

compdef -d git
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.