Vim

使用 vimdiff 複製更改的推薦方法是什麼?

  • August 25, 2017

在比較文件和更新原始碼儲存庫時,我喜歡使用 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 作為鍵盤快捷鍵的大師,當然應該有更簡單的方法來執行相同的任務。有嗎?您使用什麼來手動更新原始碼更改?

do(diff gain) 和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將重新掃描文件以進行更改。

引用自:https://unix.stackexchange.com/questions/52754