当前位置:  开发笔记 > 开发工具 > 正文

如何在不覆盖vim寄存器的情况下添加行

如何解决《如何在不覆盖vim寄存器的情况下添加行》经验,为你挑选了2个好方法。

我想在寄存器中划一条线:"{register}y但是不要覆盖寄存器中先前的内容.我经常需要在寄存器中复制非连续的行,我有时会像堆栈一样使用寄存器.

例:

line1
line2
line3

我想复制line1,通过把光标放在它并输入"ay,然后事情line3"ay.然后,当我会做"ap,既line1line3将被粘贴.

这可能没有插件吗?有插件吗?



1> MarkB..:

如果要附加到命名寄存器,请使用相应的大写字符.即在你的例子中:

"ayy
"Ayy
"ap


有没有可能的方法附加到未命名的注册表?(主要的一个)
@Zaffy http://stackoverflow.com/questions/18536511/vim-how-to-append-yanked-text-to-unnamed-register

2> Rob Wells..:

只是为了扩展MarkB的响应,你知道你也可以使用标记为你的猛拉选择一个文本块吗?

转到要拉出的块的第一行,并在选择一个字母作为标记后输入标记命令,例如

ma  (entered in command mode, i.e. no colon)

然后转到要阻塞的块的底部并输入命令:

:'a,.ya A

这个命令意味着从包含我的标记的行中取出文本块,称为一个直到当前行并将其拉入缓冲区a.与MarkB提到的规则相同,使用小写缓冲区名称来覆盖缓冲区.使用大写缓冲区名称附加到缓冲区.所以在这种情况下,这将附加到缓冲区a的内容.

注意用于标记的"a"与用于选择注册的"a"无关.(AFAIK但是YMMV)

BTW'a(撇号a)是指含有标记a的线.`a(反引号a)是指输入ma时光标下的字符.

`ad`b (also entered in command mode)

是有用的,因为它会删除标记为标记的字符之间的文本,直到您用标记b标记的字符之前的字符.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有