我希望能够运行在vim中打开git diff的命令,并为差异集中的每个文件分配一个选项卡。如何在vim中并排查看多个git差异
因此,如果例如我在我的工作树中更改了文件foo.txt和bar.txt,并且运行了命令,我会看到vim以两个选项卡打开。第一个选项卡将包含工作树中的foo.txt和存储库中的foo.txt之间的并排diff,第二个选项卡包含bar.txt的并排diff。
任何人有任何想法?
我希望能够运行在vim中打开git diff的命令,并为差异集中的每个文件分配一个选项卡。如何在vim中并排查看多个git差异
因此,如果例如我在我的工作树中更改了文件foo.txt和bar.txt,并且运行了命令,我会看到vim以两个选项卡打开。第一个选项卡将包含工作树中的foo.txt和存储库中的foo.txt之间的并排diff,第二个选项卡包含bar.txt的并排diff。
任何人有任何想法?
我会改变新vim
标签做到这一点(虽然它不是一个单一的命令)
打开文件的方式:
VIM -p $(git的差异--name - 只)
对于每一个缓冲区得到DIFF到您当前的HEAD与vcscommand vim plugin
:VCSVimDiff
这给出了一个很好的观点,但不是补丁形式。我想坚持git diff
。
编辑
像戴夫下面写道:步骤1和2可以通过使用
vim -p $(git diff --name-only) -c "tabdo VCSVimDiff"
虽然它不会做你想要什么,混帐difftool可能是你最好的选择相结合。 'git difftool --tool = vimdiff --no-prompt HEAD'的开箱即用行为是为工作目录中的每个文件按顺序启动vimdiff并进行更改。
改编Benjamin Bannier + Dave Kirby上面的逃犯用户的回答。
,因为我使用fugitive.vim,我适应了上面我最经常使用的情况下,看最后2个提交之间的差异:
vim -p $(git diff --name-only HEAD~1 HEAD) -c "tabdo :Gdiff HEAD~1"
加载所有变为标签是如此美好比顺序通过git difftool
。
这个简单的插件已经为我工作:TabMultiDiff。它基本上为传递给vim的每一对文件创建一个diff选项卡。该选项卡以每对中的第二个文件命名。
请注意,它不是plugin manager compatible,所以您需要通过将tab-multi-diff.vim
复制到.vim/plugin
来手动安装它。
下面是比较两对简单文件(aaa/aab和aac/aad)的截图。请注意,我也使用vim-scripts/diffchar.vim这就是个别字符突出显示的原因。
您可以将它组合成一个命令,该命令可以放入shell脚本或函数中。 (未经测试的代码): vim -p $(git diff --name-only)-c“tabdo VCSVimDiff” – 2010-03-11 20:39:47
我尝试了单行命令和2部分命令。它只会打开最后一个选项卡的差异。其他选项卡必须具有:VCSVimDiff调用它们。解决方案?..我很想让所有的选项卡运行差异。 – Scoobie 2010-07-29 17:55:29