我的系统的git自动完成功能相当不错,但缺少至少git difftool
和git diffmerge
的完成情况。我的意思是,如果我在提示符下键入git diff<TAB>
,我得到的是以下内容:
$ g diff<TAB>
diff -- show changes between commits, commit and working tree, etc.
diff-files -- compare files in the working tree and the index
diff-index -- compare content and mode of blobs between index and repository
diff-stages -- compare two "merge states" in the index file
diff-tree -- compare the content and mode of blobs found via two tree objects
请参阅?那里没有difftool
或diffmerge
。我必须将它们全部输入到最后才能使用它们,或者创建一些我不想要的git别名。
有没有办法修补默认的git完成配置以添加对这两个命令的支持?默认的git完成脚本在哪里?我可以修改它,或者更好的是,在我自己的.zshrc
或其他东西中修补它,这样我就不必搞乱原始系统了吗?
如果有人想知道,我在Mac Lion上使用zsh 4.3.11并安装了最新的oh-my-zsh。我的git是从自制软件安装的,它的版本是1.8.0.1。
答案 0 :(得分:1)
git完成由自动加载函数_git
完成。你可以覆盖它。
_git
(使用原始链接获取)。$fpath
目录中,而不是发送脚本的路径。 print -l $fpath
会向您显示列表,您可以在前面添加一个列表。将fpath=($HOME/.zsh/Completion $fpath)
添加到zshrc。请确保$fpath
之前更改compinit
。