2014-10-09 250 views
2

例如,我想複製5〜15行並粘貼到另一個地方。我發現幾個方法:vim:複製並粘貼文本時不看行號

  1. 將光標移動到第5行,然後11yyp
  2. 命令:5,15yp
  3. 按Ctrl + V,線5〜15中選擇塊,然後去要粘貼的地方,離開粘貼足夠的空白行(或者將它與目前的文本不重複),並p

我有任何不滿意的這些方法,方法1和2 , 我會 不得不費力地查看行號或計算我想複製的行數,當文本覆蓋很多行時,它變得非常棘手。對於方法3,我必須提前留出足夠的空間,這也使我能夠計算出我要粘貼的行數。那麼有什麼方法就像方法3一樣,只是我不需要事先留出足夠的空間?


編輯:方法2,原始5,15yy是錯誤的。已更正。

+0

你可能想澄清號2.不正常或命令模式下工作。 – echristopherson 2014-10-10 17:47:06

+0

@echristopherson對不起,這是錯誤的。我糾正了它。 – Searene 2014-10-11 06:49:19

回答

2

類似於您3.一種方法是:

  1. 前往路線-5,然後V15GyV10jyVjjj...jyV是視覺模式面向行你可以看到你選擇的線路不bodhering有關。行號)

  2. 轉到第40行(或其他地方)和p。那將會在40號線之後放置被抽出的線。或者使用P將它放在Line-40之前。

或者你也可以使用防爆指令:t(同:copy但短)

:5,15t 40

3

如果要複製整行,請使用linewise可視模式,通過V輸入。藉此,寄存器內容將在粘貼時自動移動現有行,不像通過<C-V>以塊爲單位選擇。

您也可以使用:put作爲整行粘貼(即使您已經(錯誤地)進行塊選擇)。對於更多這樣的技巧和方便的映射,我的UnconditionalPaste plugin