我想在寄存器中拉出一行:"{register}y
但不覆盖寄存器中以前的内容。我经常需要在寄存器中复制不连续的行,有时我想像堆栈一样使用寄存器。
例子:
line1
line2
line3
我想复制line1
,把光标放在上面并输入"ay
,然后继续line3
做"ay
。然后,当我会做的时候"ap
, BOTH line1
ANDline3
将被粘贴。
没有插件这可能吗?用插件?
我想在寄存器中拉出一行:"{register}y
但不覆盖寄存器中以前的内容。我经常需要在寄存器中复制不连续的行,有时我想像堆栈一样使用寄存器。
例子:
line1
line2
line3
我想复制line1
,把光标放在上面并输入"ay
,然后继续line3
做"ay
。然后,当我会做的时候"ap
, BOTH line1
ANDline3
将被粘贴。
没有插件这可能吗?用插件?
如果要附加到命名寄存器,请使用它对应的大写字符。即在你的例子中:
“哎呀 “哎呀 “AP
只是为了扩展 MarkB 的响应,您是否知道您也可以使用标记来为您的 yank 选择一个文本块?
在选择一个字母作为标记后,转到您要抽出的块的第一行并输入标记命令,例如
ma (entered in command mode, i.e. no colon)
然后转到要拉出的块的底部并输入命令:
:'a,.ya A
此命令意味着从包含我的标记 a 的行中取出文本块,直到当前行并将其拉入缓冲区 a。与 MarkB 提到的规则相同,使用小写的缓冲区名称来覆盖缓冲区。使用大写的缓冲区名称附加到缓冲区。所以在这种情况下,这将附加到缓冲区 a 的内容中。
注意 用于标记的“a”与用于选择寄存器的“a”无关。(AFAIK 但 YMMV)
BTW 'a(撇号 a)指的是包含标记 a 的行。`a(反引号a)是指输入ma时光标下的字符。
d`a (also entered in command mode)
很有用,因为它会删除用标记 a 标记的字符到光标当前所在字符之前的字符之间的文本。