除了将第:91,96y a(y91)行至第(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。