选择线的Vimdiff等价物

时间:2017-04-25 15:58:44

标签: vimdiff kdiff3

当用作mergetool for Git时,vimdiff对kdiff3""从A / B / C"中选择行的等价物是什么?在kdiff3中有 Ctrl + 1 / 2 / 3 的快捷方式吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

基于Vim Reference Manual section for vimdiff,没有内置命令具有 Ctrl + 1 / 2 的全部功能/ 3 在vimdiff中。我的意思是&#34;完整的功能&#34;就是在kdiff3中你可以执行命令 Ctrl + 2 Ctrl + 3 Ctrl < / kbd> + 1 按此顺序,在合并版本中,您最终得到缓冲区B中的diff行,后跟缓冲区C中的行,后跟缓冲区A中的行。

但是,有一个命令用于执行kdiff3中可用功能的更有限版本。如果您只想使用其中一个输入文件中的行,则可以使用命令[count] d o ,其中[count]通常为< kbd> 1 , 2 3 取决于您要从哪个vim缓冲区中提取线。 ( d o 代表&#34;差异获得&#34 ;.

例如,如果您有以下合并情况: vimdiff merge situation 然后你可以将光标移动到底部缓冲区中的合并冲突并键入 1 d o 如果你想要&#34; monkey&#34 ;, 2 d o 如果你想要&#34;猪&#34;或 3 d o 如果你想要&#34;鲸鱼&#34;。

如果你确实需要在与vimdiff合并时从多个缓冲区中获取行,那么我的建议是将Git配置选项merge.conflictstyle设置为diff3(git config merge.conflictstyle diff3),以便共同的祖先出现在合并中文件的缓冲区,如上面的屏幕截图所示。然后使用vim命令移动线条,并删除差异符号和任何未使用的行。