Git的标签自动完成对于小型项目非常有用,但我目前正在开发两个使用git的大型项目,而这些项目比无用的更糟糕。每当我输入git add forms<tab>
时,git需要20秒或更长时间才能找到文件(在本例中为forms.py),在这个时间段内,我无法在终端中执行任何其他操作。有没有办法关闭自动完成功能,或以某种方式使其更快?
答案 0 :(得分:48)
这不是git auto完成文件名,它是你的shell。做例如,你有同样的延迟“cat forms&lt; tab&gt;”?
查看此帖有类似问题:
http://talkings.org/post/5236392664/zsh-and-slow-git-completion
这篇文章建议在.zshrc中添加以下内容:
__git_files () {
_wanted files expl 'local files' _files
}
编辑:这是该帖子的原始文本
我发现很多帖子都有关于git如何缓慢痛苦的投诉 自动完成可以在大型存储库中。有各种各样的 建议补丁和建议加载最新的zsh。也许一个 那些东西会起作用,但我真正想要的就是它 完成文件中分支和文件的名称 系统。我没有找到任何关于如何获得这种行为的建议 我为自己想出来了。我想我会为任何人分享这个 谁可能从中受益。我刚刚将以下内容添加到我的.zshrc中 文件:
__git_files () { _wanted files expl 'local files' _files }
现在我可以运行git命令并立即完成即时完成 获得类似于ls所提供的文件完成。
答案 1 :(得分:6)
最后厌倦了zshell中非常慢的自动完成并开始寻找解决方案。我最终从'git'切换到使用已经安装的'gitfast'插件,我的zsh和飞行...... https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins#gitfast
答案 2 :(得分:4)
我没有使用zshell的经验,但我在另一个论坛上得到了这个答案。您需要在.zshrc文件中包含此行:
compdef -d git
答案 3 :(得分:1)
一个非常快速和肮脏的解决方案是删除负责自动完成的以下文件。
/usr/local/git/contrib/completion/git-completion.bash
答案 4 :(得分:1)
这是因为Zsh默认情况下对Git具有极大的膨胀。我写了blog post解释了如何解决这种肿的问题,但是它必须在Zsh项目之外。
简单的答案是安装Git的zsh完成,这与Zsh的git完成(默认情况下)不同。下载git-completion.zsh,并将其放在您的~/.zsh/_git
中。然后将其放在您的fpath上:
fpath=(~/.zsh $fpath)
你应该现在飞翔。
正如这里的另一条评论所述;另一个选择是使用oh-my-sh并启用gitfast插件,这可以实现相同的目的。
为什么Zsh开发人员会坚持要求降低代码速度?我不知道,但是在这里您可以看到他们的推理示例:Re: Slowness issue with git completion。
答案 5 :(得分:0)
根据git bash auto complete slow on windows 7 x64的答案,git 2.13提供了更快的git-completion.bash