使用vim作为git difftool

p4tfgftt  于 2022-11-11  发布在  Git
关注(0)|答案(2)|浏览(217)

我已经在.gitconfig中将Vim配置为git difftool

[diff]
    tool = vimdiff

如果N个文件中有变化,我必须关闭vim(:qa)才能看到下一个差异。
如何在不退出Vim的情况下导航到下一个/上一个diff?

pjngdqdw

pjngdqdw1#

没有办法告诉vimdiff转到下一个文件,因为git difftool会为每个diff文件调用vimdiff。
因此,当你以qa结束vimdiff时,git diff会对下一个文件再次执行vimdiff,从vimdiff的Angular 来看,没有下一个diff文件。
您可以取消启动vimdiff的提示,这样就不那么烦人了:
git config --global difftool.prompt false
但是,正如你自己已经发现的那样,vim插件vim-fugitive是一个不错的选择。这个优秀的插件提供了各种不同的命令来区分和合并。

3zwjbxry

3zwjbxry2#

发现这个助手脚本很有用(不是我的)。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可移动到下一个和上一个文件。

相关问题