我已经在.gitconfig中将Vim配置为git diff工具
[diff]
tool = vimdiff
如果有N个文件发生了变化,我必须关闭vim(:qa)才能看到下一个差异。
我如何在不退出vim的情况下导航到下一个/上一个差异?
没有办法告诉vimdiff去下一个文件,因为git difftool
为每个diff文件调用vimdiff。
因此,当您使用qa
结束vimdiff时,git diff
会再次使用下一个文件执行vimdiff。从vimdiff的角度来看,没有下一个diff文件。
您可以抑制启动vimdiff的提示,使其更不烦人:
git config --global difftool.prompt false
但正如您已经自己发现的那样,vim插件vim-fugitive是正确的选择。这个优秀的插件提供了各种命令进行diff和合并。
❯ 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
命令可以在文件内移动到下一个或上一个差异处。使用gt
和gT
命令可以移动到下一个或上一个文件。