我想在寄存器中放一行:"{register}y
但不会覆盖寄存器中的内容。我经常需要在寄存器中复制非连续的行,我有时会像堆栈一样使用寄存器。
示例:
line1
line2
line3
我想复制line1
,将光标放在"ay
上,然后输入line3
并执行"ay
。然后,当我执行"ap
时,将粘贴line1
和line3
。
没有插件可以吗?有插件吗?
答案 0 :(得分:118)
如果要附加到命名寄存器,请使用相应的大写字符。 即在你的例子中:
"ayy "Ayy "ap
答案 1 :(得分:11)
为了扩展MarkB的回复,您是否知道您还可以使用标记为您的抽搐选择一个文本块?
在选择字母作为标记后,转到要拉出的块的第一行并输入mark命令,例如
ma (entered in command mode, i.e. no colon)
然后转到要拉出的块的底部并输入命令:
:'a,.ya A
这个命令意味着从包含我的标记的行中取出文本块,称为a到当前行并将其拉入缓冲区a。与MarkB提到的规则相同,使用小写缓冲区名称来覆盖缓冲区。使用大写缓冲区名称附加到缓冲区。所以在这种情况下,这将附加到缓冲区a。
的内容N.B。用于标记的“a”与用于选择注册的“a”无关。 (AFAIK但是YMMV)
BTW'a(撇号a)是指含有标记a的品系。 `a(反引号a)是指输入ma时光标下的字符。`ad`b (also entered in command mode)
非常有用,因为它会删除标有标记a的字符到之前字符之间的文字您用标记b标记的字符。