Завершение параметра псевдонима Git не работает в Zsh

Я столкнулся с проблемой автозаполнения Zsh для некоторых конкретных команд git (тех, которые включают удаленный доступ и ветку), но только при использовании псевдонимов.

Вот пример с push:

$ git push o<TAB>rigin m<TAB>aster  # tab completion works
$ git config --global alias.ps push # set a `ps` alias for `push`
$ git ps o<TAB>rigin m<TAB>         # tab completion doesn't work for "master"

Та же проблема возникает с pull и fetch.

Мой .zshrc можно найти здесь, но я не думаю, что это связано, так как я смог воспроизвести проблему, не используя его (просто включив автозаполнение с помощью autoload -U compinit && compinit).

Я использую OSX 10.9 со следующими версиями программного обеспечения (обе они установлены через brew):

$ zsh --version
zsh 5.0.2 (x86_64-apple-darwin13.0.0)
$ git --version
git version 1.8.4.2

Эта проблема появилась после чистой установки OSX 10.9. Поэтому я предполагаю, что это связано с недавним обновлением Zsh или Git.


person aymericbeaumet    schedule 04.11.2013    source источник


Ответы (2)


Возможно, вам следует использовать официальное завершение Git для zsh:

https://git.kernel.org/cgit/git/git.git/tree/contrib/completion/git-completion.zsh

person FelipeC    schedule 04.11.2013

Проблема возникла из-за ошибки в завершении Git для Bash и Zsh. @felipec потратил время чтобы это исправить. Спасибо, теперь это работает как шарм!

person aymericbeaumet    schedule 05.11.2013
comment
Хм, у меня все еще есть эта проблема - было ли это исправлено с помощью git git-completion.zsh вместо Zsh? Или это исправлено в обновлении к Zsh? - person Achal Dave; 14.01.2014
comment
Я установил файлы завершения @felipec: github.com /felipec/git/blob/fc/master/contrib/completion/ и github.com/felipec/git/blob/fc/master/contrib/completion/, это работает хорошо. - person aymericbeaumet; 14.01.2014
comment
О, круто, спасибо! Я использую файлы завершения git, которые, как я полагаю, ближе к файлам Felipec, чем завершение zsh, и единственное, чего мне не хватает, так это то, что автозаполнение Zsh давало описания псевдонимов. Так, например, если бы у меня был псевдоним lg='log --graph', git l‹Tab› показал бы lg вместе с псевдонимом. Ну, это, вероятно, стоит больше. - person Achal Dave; 14.01.2014
comment
все еще есть эта проблема. а выше ссылка мертвая - person chinaanihchen; 14.12.2018
comment
С тех пор он был объединен в основной поток, поэтому вы можете попробовать эти ссылки: github.com/git/git/blob/master/contrib/completion/ и github.com/git/git/blob/master/contrib/completion/. Кроме того, я думаю, вы не должны сталкиваться с этой проблемой при обновленной установке? Какие версии os/git вы используете? - person aymericbeaumet; 15.12.2018