首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不覆盖vim寄存器的情况下向其添加行

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

Stack Overflow用户
提问于 2008-12-19 08:38:52
回答 1查看 16.8K关注 0票数 93

我想在寄存器中保留一行:"{register}y,但不覆盖以前在寄存器中的内容。我经常需要复制寄存器中不相邻的行,有时我喜欢像使用堆栈一样使用寄存器。

示例:

代码语言:javascript
复制
line1
line2
line3

我想复制line1,方法是将光标放在上面并输入"ay,然后转到line3并执行"ay。然后,当我要执行"ap时,line1line3都将被粘贴。

如果没有插件,这是可能的吗?有插件吗?

EN

回答 1

Stack Overflow用户

发布于 2008-12-19 20:58:35

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

选择一个字母作为标记后,转到要拖拽的块的第一行,然后输入标记命令,例如

代码语言:javascript
复制
ma  (entered in command mode, i.e. no colon)

然后转到您想要拖拽的块的底部,并输入命令:

代码语言:javascript
复制
:'a,.ya A

此命令意味着从包含我的标记a的行取文本块到当前行,并将其拖入缓冲区a。与前面提到的MarkB规则相同,使用小写的缓冲区名称覆盖缓冲区。使用大写的缓冲区名称附加到缓冲区。因此,在这种情况下,这将附加到缓冲区a的内容中。

注:用于您的标记的'a‘与用于选择您的寄存器的'a’无关。(AFAIK但YMMV)

顺便说一句,'a (撇号a)指的是包含标记a的行。‘a(反引号a)指的是您输入ma时光标下的字符。

代码语言:javascript
复制
d`a (also entered in command mode)

非常有用,因为它将删除标记为a的字符之间的文本,直到光标当前所在的字符之前的字符

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/380379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档