我使用的是 Zsh 版本:4.3.11与 哦我的天啊框架。
当与“oh-my-zsh”结合使用时,Zsh 会在命令执行期间按下 TAB 键时尝试自动完成 SVN(以及 Git)命令。由于它显然在幕后进行了一些解析魔法,因此在大型存储库中自动完成 SVN 命令会带来显著的延迟。
svn add a[TAB]
* ~2-3 second delay *
svn add apps/
这让我走到了边缘,经过几个月对 Zsh 的赞美之后,我暂时恢复使用 Bash,因为无法在一个特定的存储库中使用 shell 实在是太荒谬了。
笔记:
这里还有两个额外的因素,虽然我不确定它们的重要性,但我还是会列出它们:
- 这是通过 SSH 完成的
- 常规文件名自动完成是完全即时的。只有 SVN 命令期间的文件名自动完成会滞后。
答案1
我很确定这不是一个好方法,但你可以svn
用以下方法覆盖完成
compdef '_files -g "*"' svn
此后,zsh
将仅提供文件
% svn
tags in context :completion::complete:svn::
globbed-files (_files)
而不是专门且耗时的_svn
完成:
% svn
tags in context :completion::complete:svn::
argument-1 options (_arguments _svn _subversion)
tags in context :completion::complete:svn:argument-1:
commands (_svn _subversion)