git 命令的 ZSH 选项卡完成非常慢。我怎样才能关闭它?

Cas*_*mor 24 unix zsh shell git

如果我输入:

rm <TAB>
Run Code Online (Sandbox Code Playgroud)

我几乎会立即看到可能的完成。

但是,如果我输入:

git rm <TAB>
Run Code Online (Sandbox Code Playgroud)

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

我该如何解决这种行为?

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

Chr*_*her 31

我终于费心用谷歌搜索这个并想出了这个 SO 答案,这对我来说非常有效。将此添加到.zshrc

__git_files () { 
    _wanted files expl 'local files' _files     
}
Run Code Online (Sandbox Code Playgroud)

还有一个深刻的邮件列表线程在这里它解释什么zsh是做给这么长的时间。

  • 这对我不起作用。我正在加载以下 oh-my-zsh 插件:plugins=(git gitfast last-working-dir zeus)。我在插件之后加载了上述功能。 (2认同)

小智 6

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

fpath=(~/.zsh $fpath)
Run Code Online (Sandbox Code Playgroud)

我觉得有趣的是,在另一个回复中提到了这个线程;我开始了那个线程,结果我写了官方的 Git zsh 完成。