选择行的 Vimdiff 等价物

标签 vimdiff kdiff3

用作 mergetool for Git 时,vimdiff 中与 kdiff3 的“从 A/B/C 中选择行”等效的是什么? kdiff3 中是否有类似 Ctrl+1/2/3 的快捷方式?

enter image description here

最佳答案

基于Vim Reference Manual section for vimdiff , 在 vi​​mdiff 中没有内置命令具有 Ctrl+1/2/3 的全部功能.我所说的“完整功能”是指在 kdiff3 中你可以执行命令 Ctrl+2, Ctrl+3, Ctrl+1 按此顺序,在合并版本中,您最终得到来自缓冲区 B 的差异行,后跟来自缓冲区 C 的行,然后是缓冲区 C 中的行来自缓冲区 A.

但是,有一个命令可以执行 kdiff3 中可用功能的更有限版本。如果您只想使用一个输入文件中的行,则可以使用命令 [count]do,其中 [count] 通常是 123,具体取决于您要从哪个 vim 缓冲区中提取行。 (do 代表“差异获取”。)

例如,如果您有以下合并情况: vimdiff merge situation 然后你可以将光标移动到底部缓冲区中的合并冲突并键入 1do 如果你想要“猴子”, 2do 如果你想要“ pig ”,或者 3do 如果你想要“鲸鱼”。

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

关于选择行的 Vimdiff 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43615641/

相关文章:

vim - 使用 vimdiff 查看一对以上文件的差异

git - 使用 vim 作为 git difftool

emacs - ediff merge 可以同时显示祖先、A、B 和合并缓冲区吗?

mercurial - 在Mercurial上使用外部差异工具

git - Kdiff3 无法使用 mergetool 命令打开

Git merge 工具 : "No files need merging"

git、vimdiff 和 dirdiff

bash - 抑制 Vimdiff 消息