So8*_*res 7 diff vim git vimdiff
我使用 vimdiff 作为我的 git difftool。
假设我已经更改了十二个文件。问题是有时我会在运行git diff
第四个或第五个文件时看到一些我想编辑/更改的内容。有时我需要在此之外再做一些改变。问题是我不能只是:qa
回到黑客攻击,因为在 vimdiff 中弹出了六到七个不同的差异。:qa
每次我想中止 git diff 时都不查看所有这些文件,这真的很乏味。
有什么方法可以将 vimdiff 设置为 git 的 difftool,以便所有差异都在同一个 vim 实例中打开,例如在单独的选项卡中?
您可以使用此处发布的 vim 插件。然后你只需要设置 difftool:
[multidiff]
tool = vd -f
Run Code Online (Sandbox Code Playgroud)
作为替代应用程序,我建议meld
,它将向您显示修改后的文件 - 然后您可以仅选择您想要查看的差异的文件。
请参阅此处的屏幕截图作为示例。
除了 Marcos 有用的评论之外,如果您想使用第三种(手动替代方案),vimdiff
我会建议meld
在脚本中使用以下策略(可能python
):
git diff-files --name-status
并git diff-index --name-status --cached HEAD
识别需要检查的文件。/tmp/
vimdiff
尽管在您需要的意义上很可能是不可能的 - 请参见下文。然而,由于vimdiff
它本身似乎无法原生处理多个差异选项卡,所以我推荐上面的其他建议之一。