如何在vimdiff中合并一个修订版的两行和另一个修订版的第三行?

如何在vimdiff中合并一个修订版的两行和另一个修订版的第三行?,vim,merge,vimdiff,Vim,Merge,Vimdiff,我正在合并两个git分支。我正在使用vimdiff来实现这一点,因此在我的终端中显示了三个vim窗格 在我的合并中,同样的冲突会出现数百次: 每次我遇到它,我都想做同样的事情:头上的两行保持粉红色,底行保持蓝色 我正在打字: 差异3 接受blue的更改,然后进入插入模式并手动将etc更改为var 我觉得必须有一个更快的方法来保持顶部的两行是粉色的,第三行是蓝色的。有?这将节省我大量的打字时间 谢谢。如果冲突总是一样的,也许您可以使用git Reere 如果不同冲突之间没有冲突,如文件中多次出现

我正在合并两个git分支。我正在使用vimdiff来实现这一点,因此在我的终端中显示了三个vim窗格

在我的合并中,同样的冲突会出现数百次:

每次我遇到它,我都想做同样的事情:头上的两行保持粉红色,底行保持蓝色

我正在打字: 差异3 接受blue的更改,然后进入插入模式并手动将etc更改为var

我觉得必须有一个更快的方法来保持顶部的两行是粉色的,第三行是蓝色的。有?这将节省我大量的打字时间


谢谢。

如果冲突总是一样的,也许您可以使用git Reere

如果不同冲突之间没有冲突,如文件中多次出现冲突,则可以创建宏:

qq
搜索冲突:

/<<<<<<<
/=======
/>>>>>>>
:%s/<<<<<<<//n
找到冲突的中间点:

/<<<<<<<
/=======
/>>>>>>>
:%s/<<<<<<<//n
联机视觉模式:

V
找到要保留的最后一条蓝线之前的线:

/plan-path
删除以下所有内容:

d
找到冲突的结尾:

/<<<<<<<
/=======
/>>>>>>>
:%s/<<<<<<<//n
删除它

dd
最后,停止宏:

q
创建宏后,计算冲突发生的次数:

/<<<<<<<
/=======
/>>>>>>>
:%s/<<<<<<<//n

如果存在其他类型的冲突,则可以根据需要调整宏。

如果冲突总是相同的,或许可以使用git Reere

如果不同冲突之间没有冲突,如文件中多次出现冲突,则可以创建宏:

qq
搜索冲突:

/<<<<<<<
/=======
/>>>>>>>
:%s/<<<<<<<//n
找到冲突的中间点:

/<<<<<<<
/=======
/>>>>>>>
:%s/<<<<<<<//n
联机视觉模式:

V
找到要保留的最后一条蓝线之前的线:

/plan-path
删除以下所有内容:

d
找到冲突的结尾:

/<<<<<<<
/=======
/>>>>>>>
:%s/<<<<<<<//n
删除它

dd
最后,停止宏:

q
创建宏后,计算冲突发生的次数:

/<<<<<<<
/=======
/>>>>>>>
:%s/<<<<<<<//n

如果您有其他类型的冲突,您可以根据需要调整宏。

您的宏将删除所有«蓝色»差异。。。OP希望保留第三行。您的宏将删除所有«蓝色»差异。。。OP想保持第三线