在 vim 中將整個剪下行貼到另一行的末尾

在 vim 中將整個剪下行貼到另一行的末尾

我用 剪了一條線dd,然後我想將整條線貼到另一條線的末端。但問題是,因為dd剪切了整行,所以它也可能包括換行符。

因此,當我貼上 via 時p,它會自動將其放在下一行。如果我這樣做Shift+ p,它會將其放在我要貼上的行之前。

那麼有沒有辦法將我剪下的整行貼到行尾呢?

答案1

要剪切一行而不換行,可以在遊標位置按d$或。D要將其貼到另一行的末尾,您可以轉到該行的末尾,然後按p。如果您無法按預期貼上該行,您可以轉到要貼上的行尾。然後,按i,然後按<C-R>(Control-R) 和"(雙引號)。您最近剪下或複製的文字將被貼上。

答案2

透過將行貼到目前行之後,p只需按前一行中的另一行j即可連接兩行,從而消除不需要的換行...

答案3

目前我能想到的最好的解決方案是:

A<C-r>+

意思是:在行尾啟用插入模式,貼上暫存器的內容+

它還會貼上換行符。dd只是在整行上運行(縮寫1dd)。

答案4

事實上,通常的用例如下:您想要刪除完整的行(包括換行符,所以d$/D不起作用,因為留下空行),但將其粘貼到末尾或某些現有行內,無需創建新的。

我的無條件貼上插件提供多種映射,可自動將暫存器內容轉換為所需的用例。你的例子是dd,移動到目標線,$gcpgcp是映射按字元貼上

相關內容