Mam niestandardową funkcję Zshg
:
function g() {
# Handle arguments [...]
}
W nim obsługuję krótkie argumenty, które wykonują polecenia Git. Na przykład:
g ls # Executes git ls-files ...
g g # Executes git grep ...
Muszę być w stanie ustawić reguły autouzupełniania na reguły Gita dla krótkich argumentów, ale nie jestem pewien, jak to zrobić.
Na przykład muszę g ls <TAB>
uzupełnić tabulatorem reguły, dla git ls-files <TAB>
których otrzymam argumenty za git ls-files
:
$ g ls --<TAB>
--abbrev -- set minimum SHA1 display-length
--cached -- show cached files in output
--deleted -- show deleted files in output
# Etc...
Nie jest to po prostu ustawienie g
autouzupełniania, git
ponieważ mapuję moje niestandardowe krótkie polecenia na polecenia Git.
zsh
autocomplete
git
Erik Nomitch
źródło
źródło
man git-config
.Odpowiedzi:
Znalazłem
/usr/share/zsh/functions/Completion/Unix/_git
kilka wskazówek dla takich aliasów i ostatecznie zdefiniowałem następujące funkcje dla aliasów:Potem zrobiłem strita
compdef g=git
. System autouzupełniania zobaczy na przykład, że jesteś uruchomionyg ls
i użyjesz_git-ls
funkcji autouzupełniania.Dzięki user67060 za kierowanie mną we właściwym kierunku.
źródło
Musiałem zrobić coś bardzo podobnego, więc z grubsza powinno to rozwiązać Twój problem.
Należy zauważyć, że jeśli zmienisz liczbę argumentów, będziesz musiał dostosować
$CURRENT
zmienną.źródło
Oto co bym zrobił:
Jednak wykorzystuje to uzupełnienie Gita, a nie uzupełnienie zsh:
https://git.kernel.org/cgit/git/git.git/tree/contrib/completion/git-completion.zsh
źródło