我只是从bash切换到在Ubuntu Hardy上使用zsh 4.3.4。我正在使用git进行开发,但是我发现自己一直在与默认的git补全进行斗争:文件名补全通过检测您添加或删除的内容(使用git-ls-files)来变得聪明,但有时会出错-例如,如果您在子目录中。它还不知道我的自定义git别名(例如,git ci作为提交的别名)。
zsh超级用户,如何改善这种情况?
这是我的一些想法,尽管由于不熟悉zsh,所以我不知道如何实现它们,所以也许您可以提供帮助或提出自己的想法:
- 禁用git文件名补全,仅保留分支/标记/命令名称/命令选项补全。
- 用常规的zsh文件名完成替换“智能”文件名完成。
- 如果修复了这些错误,请获取更新的_git完成文件,并覆盖系统文件。
谢谢!
您是否尝试过github.com/robbyrussell/oh-my-zsh
—
ukanth,2009年
是的,据我所知,它只是添加了一个git提示,并且不调整基础补全。
—
埃米尔(Emil Sit)2009年
谁能告诉我们如何禁用所有git命令的所有“智能”完成功能?他们做太多的IO。外壳需要立即响应。我只想回到git命令的旧的简单文件名补全。每次我对此进行网络搜索时,我只会得到通用zsh手册页信息的迷宫。
—
彼得·里昂斯
仅供参考,对于只想禁用烦人的git完成,而该完成会导致shell阻止执行IO,在Ubuntu 10.04上,我只是这样做:
—
Peter Lyons 2010年
sudo mv /usr/share/zsh/functions/Completion/Unix/_git /usr/share/zsh/functions/Completion/Unix/OFF_git