首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git完成在OS上没有在zsh使用国产软件

Git完成在OS上没有在zsh使用国产软件
EN

Stack Overflow用户
提问于 2014-10-20 09:45:14
回答 4查看 24.7K关注 0票数 54

在zsh shell中,我无法完成新安装的OS的git完成工作。我已经使用自制软件安装了git和zsh:

代码语言:javascript
复制
brew install zsh git

当通过自制安装git时,它应该为您设置选项卡完成,但当我git <tab>时,它只是尝试选项卡-完成目录,而不是git-命令。也就是说,它没有产生任何错误--只是不起作用--就像它没有被设置一样。

这是我目前所知道的

显然,zsh将通过在_*中的一个目录中查找$fpath文件来寻找自动完成的方法。这是我的:

代码语言:javascript
复制
% echo $fpath
/usr/local/share/zsh/site-functions /usr/local/Cellar/zsh/5.0.6/share/zsh/functions

看看我们看到的第一条路:

代码语言:javascript
复制
% 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

  1. 正在下载git-completion.bash
  2. 使用source git-completion.bash运行它

这是一种作品(即它允许自动完成),但是它打印了一个警告:

代码语言:javascript
复制
WARNING: this script is deprecated, please see git-completion.zsh

git-completion.zsh

因此,由于上述警告,我显然也尝试下载git-completion.zsh,并遵循文件顶部的指南,但它基本上告诉您首先获取.bash文件,这仍然会导致错误。

搜索StackOverflow和Google

我已经尝试了所有我能找到的搜索在这里和谷歌,但似乎没有什么对我有用。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-10-21 05:24:52

我只是偶然发现了答案!

在我的例子中,我在我的.zshrc文件中遗漏了一些重要的部分。但首先有个小背景:

我要做的是设置"zsh Completion System“。它附带了许多命令,它们都是用comp*命名的。我试着运行了几次,但是在很多情况下zsh只是告诉我它不知道它们。因此,非常明显,除了其他事情之外,您还必须对它们进行autoload

我就是这样做的:

我将以下行添加到我的.zshrc文件中:

代码语言:javascript
复制
autoload -U compinit && compinit
zmodload -i zsh/complist

然后我开了一个新的航站楼然后跑了:

代码语言:javascript
复制
rm -f ~/.zcompdump; compinit

然后我打开了一个新的终端,现在git <tab>按预期工作了:)

如果您要在您的$fpath文件中设置一个自定义.zshrc,我建议在您修改$fpath之后添加这些行(尽管我不知道这是否有什么区别)。

票数 99
EN

Stack Overflow用户

发布于 2020-05-28 08:52:00

自从macOS Catalina,.

苹果已经从bash变成zsh,作为他们的默认外壳。

现在,激活zsh完成(包括git完成)所需的唯一brew命令是.

代码语言:javascript
复制
brew install zsh-completion

然后将这个块添加到您的~/..zshrc文件中(您可能必须首先创建该文件):

代码语言:javascript
复制
if type brew &>/dev/null; then
  FPATH=$(brew --prefix)/share/zsh-completions:$FPATH

  autoload -Uz compinit
  compinit
fi

有关更多细节,请参见我在AskDifferent上的回答:

https://apple.stackexchange.com/a/392382/77452

票数 27
EN

Stack Overflow用户

发布于 2018-10-22 21:07:11

我的问题要简单得多;我忘了更改默认的shell。

echo $SHELL,如果是/bin/bash,那么只需键入chsh -s /bin/zsh

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26462667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档