vim:复制并粘贴文本而不查看行号

时间:2014-10-09 09:27:41

标签: linux vim

例如,我想复制5~15行并将其粘贴到另一个地方。我找到了几种方法:

  1. 将光标移至第5行,然后移至11yyp
  2. 命令:5,15yp
  3. Ctrl + V,选择第5~15行中的块,然后转到要粘贴的位置,留下足够的空行用于粘贴(或者它将与当前文本重叠),p
  4. 我对这些方法中的任何一种都不满意,对于方法1和方法2,我不得不费心去查看行号或计算我要复制的行数,当文本覆盖多行时,它变得非常棘手。对于方法3,我必须提前留出足够的空间,这也让我计算要粘贴的行数。那么有没有像方法3那样的方法,只是我不需要事先留下足够的空间?


    编辑:方法2,原始5,15yy错误。已经纠正。

2 个答案:

答案 0 :(得分:3)

如果要复制整行,请使用 linewise visual mode ,通过V输入。这样,寄存器内容将在粘贴时自动移动现有行,这与您通过<C-V>使用的 blockwise 选择不同。

您也可以使用:put粘贴整行(即使您(错误地)进行了块选择)。对于更多这样的技巧和方便的映射,我的UnconditionalPaste plugin

答案 1 :(得分:2)

类似于你的方法将是:

  1. 转到第5行,然后V15GyV10jyVjjj...jyV是可视模式的行。您可以看到所选的行而不是关于行号)

  2. 转到第40行(或其他地方)和p。这将把线条放在40号线之后。或者使用P将其放在Line-40之前。

  3. 或者您可以使用前命令:t(与:copy相同但更短)

    :5,15t 40