Vim拉出行,然后粘贴它内联

说我有以下几行:

thing(); getStuff(); 

我想使用getStuff() ,前进到thing() ,将光标放在(然后点击p ,但是由于我抽出了整行, p将会把getStuff()粘贴回原来的位置。

我知道你可以^ D得到getStuff()的行然后p将做我想要的。 不过,我觉得这比yy更乏味。

有没有办法,但粘贴行内联

使用y w (“yank内心的单词”),而不是你yank只是你想要的:

y y是按行sorting的,并且会抓取包含回车符在内的整行,如果您查看寄存器中的未命名寄存器( "" ),则可以看到该:registers被用作粘贴源。 请参阅:help ""

Vim使用未命名寄存器的内容来执行任何不指定寄存器的put命令(p或P)。 另外你可以用'''来访问它,这意味着你必须input两个双引号,写入“”寄存器写入寄存器“0”。

我的另一个好处是,你不必在你所说的“单词”的前面!

问题是你正在复制包括换行符在内的整个行。 另一种方法是从行首开始复制,然后粘贴。

^ y $

  • ^转到该行的第一个字符。
  • y直到
  • $行结束。

/ /信用:testing人员和Idan Arye的VIM高尔夫改进。

简化对相同types文本操作的例程的一种方法是定义模仿文本对象select命令的映射。 下面的两对映射(一个用于Visual模式,另一个用于Operator-pending模式)提供了一种方法来select除了新行字符( al )之外的当前行上的所有内容,以及从第一个非空字符当前行到最后一个非空白字符包含( il )。

 :vnoremap <silent> al :<cu>norm!0v$h<cr> :vnoremap <silent> il :<cu>norm!^vg_<cr> :onoremap <silent> al :norm val<cr> :onoremap <silent> il :norm vil<cr> 

因此,与往常一样,可以使用yalyil命令来复制和粘贴要粘贴的行的内容,而不是使用yy来复制要粘贴的行的内容(而不是行式)。

效率较低但方法简单:

  • v突出显示单词(s),
  • ❖抽出突出显示的单词,
  • p (在行尾)你要粘贴