如何修补缺少difftool命令的git完成

时间:2013-06-07 13:51:45

标签: git autocomplete zsh git-config zsh-completion

我的系统的git自动完成功能相当不错,但缺少至少git difftoolgit 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

请参阅?那里没有difftooldiffmerge。我必须将它们全部输入到最后才能使用它们,或者创建一些我不想要的git别名。

有没有办法修补默认的git完成配置以添加对这两个命令的支持?默认的git完成脚本在哪里?我可以修改它,或者更好的是,在我自己的.zshrc或其他东西中修补它,这样我就不必搞乱原始系统了吗?

如果有人想知道,我在Mac Lion上使用zsh 4.3.11并安装了最新的oh-my-zsh。我的git是从自制软件安装的,它的版本是1.8.0.1。

1 个答案:

答案 0 :(得分:1)

git完成由自动加载函数_git完成。你可以覆盖它。

  1. here下载最新版本的_git(使用原始链接获取)。
  2. 将其放在$fpath目录中,而不是发送脚本的路径。 print -l $fpath会向您显示列表,您可以在前面添加一个列表。将fpath=($HOME/.zsh/Completion $fpath)添加到zshrc。请确保$fpath之前更改compinit