對於某些特定的git命令(涉及遠程和分支的命令),我遇到了Zsh自動完成問題,但只有在使用別名時纔會出現問題。Git別名參數完成在Zsh中不起作用
下面是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
可以找到here,但我不認爲它是相關的,因爲我能夠重現問題而不使用它(只需啓用與autoload -U compinit && compinit
自動完成)。
我運行OSX 10.9以下軟件版本(兩者通過brew
安裝):因爲我做了一個OSX 10.9乾淨的安裝
$ zsh --version
zsh 5.0.2 (x86_64-apple-darwin13.0.0)
$ git --version
git version 1.8.4.2
此問題出現了。所以我認爲它來自Zsh或Git的最新更新。
嗯,我仍然有這個問題 - 這是固定的使用git的git-completion.zsh而不是Zsh?或者它是否修復了Zsh的更新? –
我安裝了@felipec完成文件:https://github.com/felipec/git/blob/fc/master/contrib/completion/git-completion.bash和https://github.com/felipec/git/blob/ fc/master/contrib/completion/git-completion.zsh,它運行良好。 – aymericbeaumet
啊真棒,謝謝!我使用的是git的完成文件,我認爲它比zsh的完成更接近felipec,而我錯過的一件事是Zsh的autocompletion給出了別名的描述。例如,如果我將lg ='log --graph'作爲別名,那麼git l會顯示lg以及它的別名。嗯,這可能值得更多。 –