无论我怎么尝试,我似乎都无法让git tab/auto completion在我的zsh shell中工作,我已经下载了bash-completion脚本和zsh-completion脚本,并按照说明操作,但我无法让它工作。
我已经重新安装了oh-my-zsh,但似乎没有帮助或有任何不同。
任何人谁得到了它的工作向我描述他们的设置,所以我可以尝试模仿它,让它为我工作?
具体来说,到目前为止我所做的是:
- 切换到使用zsh作为我的默认shell
- 已安装oh-my-zsh
- 已下载https://github.com/git/git/blob/master/contrib/completion/git-completion.bash并保存在
~/.completion/git/git-completion.sh
中 - 已下载https://github.com/git/git/blob/master/contrib/completion/git-completion.zsh并保存在
~/.zsh/_git
中 - 添加了
zstyle ':completion:*:*:git:*' script ~/.completion/git/git-completion.sh
没找到。
7条答案
按热度按时间js81xvg61#
TL;DR单行
这将启用.zshrc中的完成并将设置应用到当前的终端会话。
解释:
实际上,ZSH*****知道如何进行git补全,但是你需要打开补全功能(从你描述的步骤来看,我猜你还没有做)
将此添加到您的
.zshrc
中就足够了:在您将
.zshrc
行放入文件后,不要忘记重新启动shell,以便ZSH获取新的配置(或者,您可以在当前会话中执行该行,这将为该会话启用自动完成功能)zsh compinit: insecure directories
警告感谢@FranMorzoa建议使用
compinit -u
到skip the security checks for completion scripts虽然这将摆脱警告/确认,但警告是有原因的,它不应该正常发生。
这表明完成脚本的所有权出了问题,可以(并且应该)使用以下方法之一进行修复:
chmod -R go-w "$(brew --prefix)/share"
compaudit | xargs chmod g-w
更多信息
hub
工具:虽然这个工具很方便,但它只是一个第三方(github社区)的git Package 器,因此,它与“ZSH中的Git补全”这个主题无关 *yxyvkwin2#
对于2019年查看器:
如果您使用ZSH:
brew install hub
mkdir ~/.zsh
和mkdir ~/.zsh/completions
创建目录并安装集线器后,必须将
cp
文件hub.bash_completion.sh
到本地zsh/completion
文件夹。(Mine为
cp /usr/local/etc/bash_completion.d/hub.bash_completion.sh ~/.zsh/completions/_hub
)然后将以下行添加到
~/.zshrc
文件中:然后
source ~/.zshrc
和voilà!你应该可以使用git完成资料来源https://github.com/github/hub/tree/master/etc#zsh
14ifxucb3#
答案是我的
.zshrc
文件中有alias git=hub
,参见https://github.com/github/hub了解hub的信息(这太棒了)。这里有一个关于hub和git补全问题的链接:https://github.com/github/hub/issues/586#issuecomment-47727226
vtwuwzda4#
我发现问题在于,当通过homebrew安装git时,git会安装自己的zsh shell扩展,这比oh-my-szh安装的默认扩展要不完整,找出你的git安装版本,然后删除zsh自动完成功能,我的在这里,然后删除:
这并不是说这个问题不可能是其他答案中的任何一个或组合。
gab6jxml5#
如果没有任何帮助,尝试删除符号链接
/usr/local/share/zsh/site-functions/_git
,它出现在安装git和Homebrewbrew install git
之后nvbavucw6#
同样的问题也困扰着我,在答案的启发下,我浏览了.zshrc,发现了以下内容:
只需注解上面的行来启用git插件,问题就解决了。更多关于插件的细节可以在这里找到:https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/git
xmq68pz97#
或者只运行
brew install zsh-completions
并按照说明操作。