在比较文件和更新源代码存储库时,我喜欢使用 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
将重新扫描文件以查找更改。