在zsh shell中,我无法完成新安装的OS的git完成工作。我已经使用自制软件安装了git和zsh:
brew install zsh git当通过自制安装git时,它应该为您设置选项卡完成,但当我git <tab>时,它只是尝试选项卡-完成目录,而不是git-命令。也就是说,它没有产生任何错误--只是不起作用--就像它没有被设置一样。
这是我目前所知道的
显然,zsh将通过在_*中的一个目录中查找$fpath文件来寻找自动完成的方法。这是我的:
% echo $fpath
/usr/local/share/zsh/site-functions /usr/local/Cellar/zsh/5.0.6/share/zsh/functions看看我们看到的第一条路:
% ls -l /usr/local/share/zsh/site-functions
lrwxr-xr-x 1 watson admin 55 Oct 20 12:08 _git -> ../../../Cellar/git/2.1.2/share/zsh/site-functions/_git
lrwxr-xr-x 1 watson admin 70 Oct 20 12:08 git-completion.bash -> ../../../Cellar/git/2.1.2/share/zsh/site-functions/git-completion.bash因此,它似乎被设置为开箱即用--但它没有。
这也是我也尝试过的
git-completion.bash
source git-completion.bash运行它这是一种作品(即它允许自动完成),但是它打印了一个警告:
WARNING: this script is deprecated, please see git-completion.zshgit-completion.zsh
因此,由于上述警告,我显然也尝试下载git-completion.zsh,并遵循文件顶部的指南,但它基本上告诉您首先获取.bash文件,这仍然会导致错误。
搜索StackOverflow和Google
我已经尝试了所有我能找到的搜索在这里和谷歌,但似乎没有什么对我有用。
发布于 2014-10-21 05:24:52
我只是偶然发现了答案!
在我的例子中,我在我的.zshrc文件中遗漏了一些重要的部分。但首先有个小背景:
我要做的是设置"zsh Completion System“。它附带了许多命令,它们都是用comp*命名的。我试着运行了几次,但是在很多情况下zsh只是告诉我它不知道它们。因此,非常明显,除了其他事情之外,您还必须对它们进行autoload。
我就是这样做的:
我将以下行添加到我的.zshrc文件中:
autoload -U compinit && compinit
zmodload -i zsh/complist然后我开了一个新的航站楼然后跑了:
rm -f ~/.zcompdump; compinit然后我打开了一个新的终端,现在git <tab>按预期工作了:)
如果您要在您的$fpath文件中设置一个自定义.zshrc,我建议在您修改$fpath之后添加这些行(尽管我不知道这是否有什么区别)。
发布于 2020-05-28 08:52:00
自从macOS Catalina,.
苹果已经从bash变成zsh,作为他们的默认外壳。
现在,激活zsh完成(包括git完成)所需的唯一brew命令是.
brew install zsh-completion然后将这个块添加到您的~/..zshrc文件中(您可能必须首先创建该文件):
if type brew &>/dev/null; then
FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
autoload -Uz compinit
compinit
fi有关更多细节,请参见我在AskDifferent上的回答:
发布于 2018-10-22 21:07:11
我的问题要简单得多;我忘了更改默认的shell。
echo $SHELL,如果是/bin/bash,那么只需键入chsh -s /bin/zsh
https://stackoverflow.com/questions/26462667
复制相似问题