複製剪下和貼上

在 Vim 中,這些操作都是從什麼,你可能會在使用幾乎任何其他現代編輯器或字處理器(處理方式不同 Ctrl-C,Ctrl-X,Ctrl-V )。要理解,你需要了解一些關於暫存器和動作的知識。

注意:本節不包括視覺模式複製和剪下或範圍縮寫,因為這些超出了普通模式和基本編輯的範圍。

暫存器

Vim 使用暫存器的概念來處理程式本身內的文字移動。Windows 有一個用於此目的的剪貼簿,類似於 Vim 中的單個暫存器。在 Vim 中複製,剪下和貼上時,有一些方法可以使用類似的簡單編輯工作流程(你不必考慮暫存器),但也有更復雜的可能性。

暫存器的目標是命令的輸入/輸出,方法是在命令前加上 " 小寫字母和小寫字母名稱。

議案

Vim 中的動作是將游標位置移動到其他位置的任何命令。在普通模式下複製,剪下和貼上時,移動文字選擇的可能性僅受你對運動的瞭解。下面將舉例說明一些。

複製和剪下

基於複製和剪下操作的基本命令是 y (‘yank’,用於複製)和 d (‘delete’,用於剪下)。你將在下表中看到相似之處。

命令 : 描述
y{motion} 將動作指示的文字複製(‘yank’)到預設暫存器中
yy 當前行復制到預設的暫存器,面向行
Y 將當前行復制到預設暫存器(同義詞 yy )
“ayiw 將游標所在的單詞複製到暫存器’a’中
20"byy 從游標開始複製 20 行到暫存器’b’
d{motion} 將動作指示的文字剪下(‘刪除’)到預設暫存器中
dd 剪下當前行到預設暫存器,面向行
D 從游標切換到行尾到預設暫存器(不是同義詞 dd )
“adiw 將游標所在的字切入暫存器’a’
20"bdd 從游標開始剪下 20 行,進入暫存器’b’

注意:當複製或按切割某些內容時,下面顯示的貼上行為將在當前 (而不是游標) 之前或之後放置文字。以下示例澄清。

貼上

根據你要完成的任務,有幾種方法可以貼上到 Vim 中。

命令 : 描述
p 貼上游標預設暫存器中的內容
P 貼上游標預設暫存器中的內容
“ap 在游標後貼上暫存器’a’的內容
“cP 在游標前貼上暫存器’c’的內容

那麼,我如何執行一個真正簡單的剪下和貼上?

如果我有以下文字:

1 This line should be second
2 This line should be first

我可以通過將游標放在第 1 行並鍵入來進行最簡單的剪下和貼上 ddp。結果如下:

1 This line should be first
2 This line should be second

發生了什麼?dd ‘將第一行(行)剪下到預設暫存器中 - 一次只包含一個東西,比如 Windows 剪貼簿 - 並 p 在當前一行之後貼上該行,該行剛剛因 dd 命令而發生變化。

這是一個不太簡單的例子。我需要動一下幾句話。 (這是設計和不必要的,但你可以將此原則應用於更大的程式碼塊。)

1 These words order out are of

我可以重複 w 到’訂單’前面的’o’(或者 b 如果我輸入它並意識到我的錯誤)。

然後 “adaw 將’order’放在暫存器’a’中。

然後 w 到’是’進入’a’。

在此之後,我會輸入 “bdaw ‘are’到暫存器’b’。現在我顯示了這個:

1 These words out of

要清楚,現在’order’在暫存器’a’中,‘are’在暫存器’b’中,就像兩個單獨的剪貼簿一樣。

為了正確排列單詞,我輸入 b ‘out’中的’o’,然後 “bP 將’are’放在’out’前面的暫存器’b’中:

1 These words are out of

現在我輸入 A 到行的末尾,然後 Space Esc (假設’of’之後沒有空格) “ap 並將’order’放在它所屬的位置。

1 These words are out of order