У меня есть пользовательская функция Zshg
:
function g() {
# Handle arguments [...]
}
В нем я обрабатываю короткие аргументы, которые выполняют команды Git. Например:
g ls # Executes git ls-files ...
g g # Executes git grep ...
Мне нужно иметь возможность установить правила автозаполнения в правила Git для коротких аргументов, но я не уверен, как это сделать.
Например, мне нужно g ls <TAB>
завершить табуляцию правил, для git ls-files <TAB>
которых мне будут предоставлены аргументы 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...
Это не просто настройка g
автозаполнения, git
поскольку я сопоставляю свои пользовательские короткие команды с командами Git.
zsh
autocomplete
git
Эрик Номич
источник
источник
man git-config
.Ответы:
Я нашел
/usr/share/zsh/functions/Completion/Unix/_git
несколько советов для псевдонимов, подобных этому, и в итоге определил эти функции для псевдонимов:Затем я сделал стрит
compdef g=git
. Система автозаполнения, например, увидит, что вы работаете,g ls
и использует_git-ls
функцию автозаполнения.Спасибо user67060 за то, что направил меня в правильном направлении.
источник
Я должен был сделать что-то очень похожее, так что это примерно то, что должно решить вашу проблему.
Стоит отметить, что если вы измените количество аргументов, вам нужно будет изменить
$CURRENT
переменную.источник
Вот что я бы сделал:
Однако это использует завершение Git, а не завершение zsh:
https://git.kernel.org/cgit/git/git.git/tree/contrib/completion/git-completion.zsh
источник