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>
因此,与往常一样,可以使用yal
或yil
命令来复制和粘贴要粘贴的行的内容,而不是使用yy
来复制要粘贴的行的内容(而不是行式)。
效率较低但方法简单:
- v突出显示单词(s),
- ❖抽出突出显示的单词,
- p (在行尾)你要粘贴