ZSH 的 git 命令 tab 补全非常慢。如何关闭它?

ZSH 的 git 命令 tab 补全非常慢。如何关闭它?

如果我输入:

rm <TAB>

我几乎可以立即看到可能的完成情况。

但是,如果我输入:

git rm <TAB>

如果它在 git repo 中,它会挂起几秒钟,或者如果我在 git repo 之外,它会无法显示任何完成。

我该如何修复这个问题?

我的 .zshrc 中没有任何内容看起来与 git 有关 :-/

答案1

我终于在谷歌上搜索到了这个答案,对我来说效果很好。将其添加到.zshrc

__git_files () { 
    _wanted files expl 'local files' _files     
}

还有一个深度邮件列表主题这里解释一下为什么zsh花了这么长时间。

答案2

这里还有另一个选择:官方的 Git zsh 补全:git-completion.zsh。您需要做的就是将其下载到~/.zsh/_git,并确保它在您的 fpath 中:

fpath=(~/.zsh $fpath)

我觉得有趣的是此主题在另一个回复中提到;我启动了该线程,并因此编写了官方的 Git zsh 补全。

答案3

现有的答案都不适用于我(git branch自动完成功能花费的时间太长了)。

相反,对我来说解决方案是从默认git插件切换到gitfast

我通过一种迂回的方式得到了这个,首先安装 oh-my-zsh,然后启用插件。(可能有更好的方法来实现这一点)

脚步:

  1. oh-my-zsh通过以下方式安装sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"(根据以下说明原始仓库
  2. 在您的~/.zshrc文件中,用 替换该行plugins=(git)plugins=(gitfast)切换到 gitfast 插件。

答案4

我能够通过结合使用@FelipeC 的答案和这个答案来自类似的 Stack Overflow 问题。

当我只按照@FelipeC 的建议做时,我得到了引用的 Stack Overflow 问题中提到的错误。按照 Stack Overflow 答案中的说明修复了错误,并使 git 自动完成的响应速度更快。

相关内容