Vim
如何使用目前的粘貼緩衝區在 Vim 中“更改單詞”?
我的粘貼緩衝區中有一些文本,例如我做了一個
yw
(抽出詞),現在我的緩衝區中有’foo’。我現在轉到“bar”這個詞,我想用我的粘貼緩衝區替換它。
要手動替換文本,我可以這樣做
cw
,然後輸入新單詞。如何進行“更改單詞”,但使用粘貼緩衝區的內容而不是手動輸入替換單詞?
我現在最好的選擇是轉到我要替換的單詞的開頭並執行
dw
(刪除單詞),然後轉到另一個地方,然後執行yw
(yank word)。然後回到替換區域並做p
(粘貼),這有點笨拙,特別是如果它們不在同一個螢幕上。
選項1
您可以使用寄存器來執行此操作並為該過程進行鍵綁定。
抽出要替換為 的單詞
yw
。抽出的詞在
0
您可以通過發出看到的寄存器中:registers
。轉到您要替換的單詞並執行
cw
。執行Ctrl
+r
後跟0
粘貼0
寄存器。地圖看起來像這樣(假設
Ctrl
+j
作為我們的鍵組合):
:map <C-j> cw<C-r>0<ESC>
選項 2(更簡單)
將您的單詞拉出,將游標懸停在您要替換的單詞上並執行
v``i``w``p
。這是視覺選擇內部單詞並粘貼。在評論中感謝@tlo:你也可以這樣做
v``e``p
。短一個字元。缺點必須將游標定位在單詞的開頭並(與我的一樣)更改緩衝區。評論(來自邁克爾):
這很好。額外說明:第二種方法確實更簡單,但實際上只適用於 ONE 替換,因為在每次替換後,緩衝區都會更改為被替換的欄位(舊文本)。第一種方法使用起來有點困難,但它的優點是緩衝區 0 保持“原樣”,因此您可以使用該方法對同一文本進行多次替換。