除了将第:91,96y a
(y
91)行至第(96)行插入a
(粘贴"ap
)之外,还可以通过以下方式将这些替换的行添加到寄存器:
:91,96y A
即A
寄存器的大写会导致对寄存器的追加操作,a
而不是覆盖。寄存器的大写总是这样,例如:let @A=';'
将a追加;
到register a
。
使用加号(+)或减号(-)引用相对于当前光标位置的行:
:-10,+10y b
也就是说,它将y
在当前光标位置周围拉动(21)行并将其放入register b
。
缺少输入实际上也代表当前光标位置,这意味着:
:-5,y a
将文本从上面5行拉到当前光标位置到具名buffer中a
,然后:
:,+5y a
将当前光标位置之后的5行插入缓冲区a
。
注意:如果缓冲区中有宏,则该宏a
只是被前一个yank覆盖,因为yank寄存器和宏寄存器实际上是同一件事。碰巧的是,这就是为什么您可以粘贴宏,对其进行编辑,然后将其重新拉回到其寄存器中的原因。我个人将左手到达的字母用于拉动,而将右手到达的字母用于宏。
左右移动文本块,如下所示:
:+10,+13m.
这意味着将位于当前光标前10行的四行移动到当前行下方。
附录
我先前混淆ya
在:91,95ya a
以与某种方式同义ya{motion}
其中运动被供给91,95
。这是不正确的,并且ya
完全不需要输入“ a” 。为辩护,我help yank
没有传达这ya
可能是的别名yank
。