使用vimdiff合并更改

dop*_*ime 40 vim diff

就我而言,我有两个文件file1和file2.使用vimdiff,我想合并更改如下:

  1. 在第一个区别中,从file2上方的第一行放置第一行.它表示不同,例如Listing 2在file2中,List 2应该在合并文件中List 2后跟Listing 2.
  2. 在另一个变化中反转案例.

快照如下所示.

在此输入图像描述

我们如何使用vimdiff实现这一目标?

F Y*_*oob 106

您可以使用以下基本命令进行合并:

do - 从其他窗口更改到当前窗口.

dp - 将当前窗口中的更改放入另一个窗口.

]c - 跳转到下一个更改.

[c - 跳转到上一个更改.

zo - 打开折叠线.

zc - 关闭折叠线.

Ctrlww - 改变窗口.

:only | wq - 退出其他窗口,写入并退出.

请参阅本文中的更多详细信息.

  • 这应该是答案!谢谢!! (6认同)
  • `:diffu [pdate]`将刷新更改和折叠.合并时,vim很容易混淆. (3认同)

Dav*_* W. 20

您可以在两个窗口之间来回切换Ctrlww.你可以从一个窗口复制一个Ctrlww,然后粘贴到另一个窗口.当您解决差异时,高光将会改变并消失.

vimdiff不是真正的合并工具.它会显示文件之间的差异,并手动执行合并.

看看这个视频.


Ing*_*kat 14

您可以在窗口之间切换只是复制并粘贴到解决分歧,如@大卫W.建议在他的回答,但Vim也一直致力于:diffput:diffget命令来简化这个.使用这些(或相应的正常模式dodp命令),您不必在窗口之间切换,范围默认为当前更改.

如果你需要添加而不是覆盖其他缓冲区的差异(这在经典的双向差异中是一个相当不寻常的情况),你仍然需要拉动原始线并将它们放在后面:diffget.

你在一个地方完成后,就可以使用]c,[c命令跳转到下一个差异.