2013-11-04 77 views
2

對於某些特定的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的最新更新。

回答

2

問題從Git的完成兩個Bash和巖組中的錯誤來了。 @felipec花了時間to fix it。謝謝,它現在就像一種魅力!

+0

嗯,我仍然有這個問題 - 這是固定的使用git的git-completion.zsh而不是Zsh?或者它是否修復了Zsh的更新? –

+1

我安裝了@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

+0

啊真棒,謝謝!我使用的是git的完成文件,我認爲它比zsh的完成更接近felipec,而我錯過的一件事是Zsh的autocompletion給出了別名的描述。例如,如果我將lg ='log --graph'作爲別名,那麼git l 會顯示lg以及它的別名。嗯,這可能值得更多。 –