Poprawianie autouzupełniania zsh git


10

Właśnie przełączyłem się z bash na używanie zsh 4.3.4 na Ubuntu Hardy. Pracuję z git i ciągle walczę z domyślnymi uzupełnieniami git: uzupełnianie nazw plików próbuje być inteligentne, wykrywając to, co dodałeś lub usunąłeś (używając plików git-ls), ale czasem robi się źle --- np. jeśli jesteś w podkatalogu. Nie wie także o moich niestandardowych aliasach git (np. Git ci jako alias do zatwierdzenia).

administratorzy Zsh, jak powinienem poprawić tę sytuację?

Oto kilka moich przemyśleń, choć nie wiem, jak je wdrożyć, ponieważ jestem nowy w Zsh, więc może możesz pomóc lub zaoferować własne:

  • Wyłącz uzupełnianie nazwy pliku git, pozostawiając jedynie zakończenie gałęzi / tagu / nazwy polecenia / polecenia.
  • Zamień „inteligentne” uzupełnianie nazw plików na zwykłe uzupełnianie nazw plików zsh.
  • Pobierz nowszy plik zakończenia _git, jeśli to naprawi te błędy, i zastąp systemowy.

Dzięki!



Tak, o ile wiem, po prostu dodaje polecenie git i nie poprawia podstawowych uzupełnień.
Emil Sit

Czy ktoś może nam powiedzieć, jak wyłączyć wszystkie „inteligentne” uzupełnianie dla wszystkich poleceń git? Robią za dużo IO. Powłoka musi natychmiast zareagować. Chcę tylko wrócić do dobrego, starego, prostego uzupełniania nazw plików dla poleceń git. Za każdym razem, gdy szukam tego w sieci, po prostu otrzymuję labirynt ogólnych informacji o stronie podręcznika Zsh.
Peter Lyons,

2
Do Twojej wiadomości dla każdego, kto chce po prostu wyłączyć irytujące zakończenie git, które powoduje, że powłoka blokuje wykonywanie IO, na Ubuntu 10.04, właśnie to zrobiłem: sudo mv /usr/share/zsh/functions/Completion/Unix/_git /usr/share/zsh/functions/Completion/Unix/OFF_git
Peter Lyons

Odpowiedzi:


5

Spróbuj zaktualizować do najnowszej wersji Zsh. Właśnie uaktualniłem z 4.3.4 do 4.3.10 i to przynajmniej rozwiązuje problem z niedokończeniem aliasów Git.

Zamiast włamać się do mojej instalacji, dodałem to do mojego lokalnego .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

W przypadku dużych projektów nawet nowsze skrypty ukończenia git są zdecydowanie zbyt wolne. Aby je wyłączyć i po prostu użyć normalnego uzupełniania plików, umieść następujące polecenie w .zshrc:

compdef -d git
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.