用 vi 緩衝區中的行取代一行

用 vi 緩衝區中的行取代一行

ccdd將一行複製到我的貼上緩衝區。然後我去一個新地點。

我想替換我看到的一行。所以我輸入p Down dd.

有沒有更簡單的方法(更少的按鍵)?

答案1

您可以鍵入V以選擇該行,然後p替換它。

答案2

另一種方法是"_ddp

"_dd將目前行刪除到空緩衝區。這不會覆蓋您剛剛複製的內容,我發現這很多次很有幫助!貼上p您之前複製的行。

就擊鍵而言可能不會更短,但知道這是一個選項可能會非常有幫助!

答案3

安格斯和托爾已經給出了簡短的答案,所以這裡有一些額外的探索。

如果您因為某些原因想在貼上之前刪除,您可以利用編號暫存器。寄存器包含最後一次或"0拉出的文本,但不刪除。透過暫存器儲存您最近完成的 9 次刪除/剪切。所以:yY"1"9

  • 如果你猛拉 with yy,你可以替換為dd"0P
  • 如果用ddor剪切cc,則可以用 替換dd"2P。 (不是dd"1P因為dd填充"1。)

嘗試:help "0獲取更深入的資訊。

答案4

假設您想將第 1 行替換為第 3 行,但您無法做到:1m3|2d

這有效地將第 1 行移至第 3 行,並刪除第 2 行(即舊的第 3 行)

相關內容