2014-10-09 238 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