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

ham*_*man 16 git zsh bash-completion zsh-completion oh-my-zsh

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

我重新安装了oh-my-zsh,但似乎没有帮助或有任何区别.

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

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

没运气.

ham*_*man 15

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

这里是关于我在hub和git完成时遇到的问题的信息的链接:https://github.com/github/hub/issues/586#issuecomment-47727226


Iva*_*sov 15

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

添加到您的.zshrc应该足够了:

autoload -Uz compinit && compinit
Run Code Online (Sandbox Code Playgroud)

放入行.zshrc文件之后,别忘了为ZSH重新启动Shell以选择新配置(或者,您可以在当前会话中执行该行,这将为该会话启用自动完成功能)

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

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

  • % source ~/.zshrc zsh compinit:不安全的目录,运行 compaudit 获取列表。忽略不安全目录并继续 [y] 或中止 compinit [n]?在“&& compinit”之后添加 -u 解决了该问题。 (14认同)
  • @FranMarzoa 的答案很准确——“autoload -Uz compinit && compinit -u”使该功能按预期工作,在启动新终端时不会出现任何不安全目录警告。谢谢! (2认同)

Dja*_*mel 6

对于2019年的观众:

如果您使用ZSH:

brew install hub

mkdir ~/.zshmkdir ~/.zsh/completions

一旦你有你的目录中创建安装集线器,您必须cphub.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
Run Code Online (Sandbox Code Playgroud)

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

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