使用 vimdiff 复制更改的推荐方法是什么?

使用 vimdiff 复制更改的推荐方法是什么?

在比较文件和更新源代码存储库时,我喜欢使用 vimdiff。要将一个文件所做的更改复制到另一个文件,我通常使用如下按键序列:-

Shift + V (select line)
k or j; { or }; Up or down arrow keys (select more lines)
y  (copy selected lines)
Ctrl + w, left/right arrow (move to other pane)
p (paste lines)

Vim 作为键盘快捷键的大师,肯定应该有一种更简单的方法来执行相同的任务。有吗?您使用什么来手动更新源代码更改?

答案1

do(diff acquire) 和dp(diff put) 是您所需要的。以下是在此上下文中其他有用的正常模式命令的一小部分列表。

]c               - advance to the next block with differences
[c               - reverse search for the previous block with differences
do (diff obtain) - bring changes from the other file to the current file
dp (diff put)    - send changes from the current file to the other file
zo               - unfold/unhide text
zc               - refold/rehide text
zr               - unfold both files completely
zm               - fold both files completely

笔记:
如果您在正常模式下位于块上或块下的一行上,但不在可视模式下,则 两者都do可以工作。dp在可视模式下选择文本行时,必须使用普通命令

  • :'<,'>diffget
  • :'<,'>diffput

也可以看看:h copy-diffs

:diffupdate将重新扫描文件以查找更改。

相关内容