Git选项卡完成在mac上的zsh中无效

时间:2014-07-01 15:20:54

标签: git zsh bash-completion oh-my-zsh zsh-completion

无论我尝试做什么,我似乎无法在我的zsh shell中进行git tab / auto completion工作。我已经下载了bash-completion脚本和zsh-completion脚本,并按照说明操作,但我无法使其正常工作。

我已经重新安装了oh-my-zsh,但这似乎没有帮助或产生任何影响。

任何能够让它工作的人都可以向我描述他们的设置,以便我可以尝试模仿它以使其适合我吗?

具体来说,到目前为止我所做的是:

没有运气。

6 个答案:

答案 0 :(得分:22)

实际上,ZSH 确实知道如何进行git完成,但是您需要打开完成功能本身(根据您描述的步骤,我想您还没有完成)

将此添加到您的.zshrc中就足够了:

autoload -Uz compinit && compinit

放置.zshrc行文件后,请不要忘记重新启动Shell以使ZSH拾取新配置(或者,您可以在当前会话中执行该行,这将对那一次会议)

有关更多信息,请参见此处https://git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Zsh

PS这里的另一个答案建议改为安装hub工具:尽管该工具很方便,但它只是git的第三方(github社区)包装。因此,它与“ ZSH中的Git完成”主题无关。

答案 1 :(得分:15)

答案是我的alias git=hub文件中有.zshrc。有关集线器的信息,请参阅https://github.com/github/hub(非常棒)。

以下是有关我使用hub和git完成时遇到的问题的信息的链接:https://github.com/github/hub/issues/586#issuecomment-47727226

答案 2 :(得分:1)

对我来说,问题是,当通过自制软件安装git时,git安装了自己的zsh shell扩展,它的完整性/功能远不及oh-my-szh安装的默认值。找出git安装的版本,然后删除zsh自动填充。我的在这里,因此被删除了:

rm -rf /usr/local/Cellar/git/2.28.0/share/zsh/

这并不是说问题不可能是其他答案中的任何一个,也不能是这些答案的组合。

答案 3 :(得分:1)

如果没有任何帮助,请尝试使用 Homebrew /usr/local/share/zsh/site-functions/_git 删除安装 git 后出现的符号链接 brew install git

答案 4 :(得分:0)

今天同样的问题困扰着我。受到答案的启发,我环顾了.zshrc,发现了这一点:

Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
Example format: plugins=(rails git textmate ruby lighthouse)
Add wisely, as too many plugins slow down shell startup.
plugins=(git)

只需注释以上行以启用git插件,即可解决问题。 有关该插件的更多详细信息,可以在这里找到: https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/git

答案 5 :(得分:0)

对于2019年观看者:

如果您使用ZSH:

brew install hub

mkdir ~/.zshmkdir ~/.zsh/completions

一旦创建了目录并安装了集线器,您就必须cp hub.bash_completion.sh文件到本地zsh/completion夹。
(我的名字是cp /usr/local/etc/bash_completion.d/hub.bash_completion.sh ~/.zsh/completions/_hub

然后将以下行添加到~/.zshrc文件中:

fpath=(~/.zsh/completions $fpath) 
autoload -U compinit && compinit

然后source ~/.zshrc瞧瞧!您应该有可用的git完成

源:https://github.com/github/hub/tree/master/etc#zsh

相关问题