我已经在.gitconfig中将Vim配置为git difftool
[diff] tool = vimdiff
如果N个文件中有变化,我必须关闭vim(:qa)才能看到下一个差异。如何在不退出Vim的情况下导航到下一个/上一个diff?
pjngdqdw1#
没有办法告诉vimdiff转到下一个文件,因为git difftool会为每个diff文件调用vimdiff。因此,当你以qa结束vimdiff时,git diff会对下一个文件再次执行vimdiff,从vimdiff的Angular 来看,没有下一个diff文件。您可以取消启动vimdiff的提示,这样就不那么烦人了:git config --global difftool.prompt false但是,正如你自己已经发现的那样,vim插件vim-fugitive是一个不错的选择。这个优秀的插件提供了各种不同的命令来区分和合并。
git difftool
qa
git diff
git config --global difftool.prompt false
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可移动到文件中的下一个和上一个差异。gt、gT可移动到下一个和上一个文件。
git dt
]c
[c
gt
gT
2条答案
按热度按时间pjngdqdw1#
没有办法告诉vimdiff转到下一个文件,因为
git difftool
会为每个diff文件调用vimdiff。因此,当你以
qa
结束vimdiff时,git diff
会对下一个文件再次执行vimdiff,从vimdiff的Angular 来看,没有下一个diff文件。您可以取消启动vimdiff的提示,这样就不那么烦人了:
git config --global difftool.prompt false
但是,正如你自己已经发现的那样,vim插件vim-fugitive是一个不错的选择。这个优秀的插件提供了各种不同的命令来区分和合并。
3zwjbxry2#
发现这个助手脚本很有用(不是我的)。https://gist.github.com/Osse/4709787
下载脚本并设置可执行权限。
并设置别名
现在,具有差异的文件将分别在新选项卡中打开,并显示
git dt
]c
和[c
可移动到文件中的下一个和上一个差异。gt
、gT
可移动到下一个和上一个文件。