使用Vim作为Git差异比较工具

7

我已经在.gitconfig中将Vim配置为git diff工具

[diff]
    tool = vimdiff

如果有N个文件发生了变化,我必须关闭vim(:qa)才能看到下一个差异。

我如何在不退出vim的情况下导航到下一个/上一个差异?


1
这对你有帮助吗?https://dev59.com/V2sz5IYBdhLWcg3wBzfi - Kent
Fugitive D 命令非常有用。谢谢。 - Sathish
你使用的 Git 版本是什么? - romainl
2个回答

6

没有办法告诉vimdiff去下一个文件,因为git difftool为每个diff文件调用vimdiff。

因此,当您使用qa结束vimdiff时,git diff会再次使用下一个文件执行vimdiff。从vimdiff的角度来看,没有下一个diff文件。

您可以抑制启动vimdiff的提示,使其更不烦人:

git config --global difftool.prompt false

但正如您已经自己发现的那样,vim插件vim-fugitive是正确的选择。这个优秀的插件提供了各种命令进行diff和合并。


0
发现这个有用的辅助脚本(不是我的)。https://gist.github.com/Osse/4709787 下载脚本并设置可执行权限。
❯ git config --global difftool.vimtabdiff.cmd '~/path/to/vimtabdiff.zsh $LOCAL $REMOTE'

并设置别名

❯ git config --global alias.dt 'difftool --tool vimtabdiff --dir-diff'                          

现在,使用git dt命令可以在新标签页中打开有差异的文件。

使用]c[c命令可以在文件内移动到下一个或上一个差异处。使用gtgT命令可以移动到下一个或上一个文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接