我知道如何将内容复制到剪贴板,但如何将内容添加到剪贴板中?
在我的代码中,我使用了以下代码:
let @+ = my_expression
但这会覆盖剪贴板。
我知道可以使用寄存器 a-z 来进行追加:
let @B = my_expression
我想将内容添加到寄存器b,但如果我想要添加到剪贴板,应该怎么做呢?
使用:
let @+ = @+ . my_expression
或更短:
let @+ .= my_expression
参考: :help :let.=
:help registers
非常惊人。a
开始,到z
。
通过按"键、命名寄存器(比如f
),然后键入所需选择文本的动作,在命令模式下向寄存器添加文本。
注意:这里使用了命名为 F 的寄存器是因为它可能在您的左手食指下。也就是说,选择 f
仅仅因为它方便,您可以在整个过程中将 f
替换成 a
或 u
或 z
等任何其他字符。
初始文件状态
This is my first line.
[T]his is my second line.
This is my third line.
在命令模式下输入"fyy
,可以将寄存器填充为一行(yy
)。
p
(*见下文)即可立即从默认寄存器中粘贴。"f
选择f
寄存器,然后输入p
从f
寄存器直接粘贴。现在f
和默认寄存器一样。因此,在输入"fyyp
与使用默认剪贴板输入yyp
的结果完全相同。
结果
This is my first line.
This is my second line.
[T]his is my second line.
This is my third line.
使用大写字母来追加到现有的寄存器。
在上面的示例中,在粘贴后,按j
向下移动一行,然后输入"Fyy
。然后键入p
进行粘贴。您已将“这是我的第三行。”追加到了f
的内容中。
结果
This is my first line.
This is my second line.
This is my second line.
This is my third line.
This is my second line.
[T]his is my third line.
(使用小写字母f
会清空f
的内容,最终只剩下"这是我的第三行。")
为什么在你复制到寄存器
f
后,p
会立即粘贴出来?因为你的默认寄存器保存了对上次选择的指针,并且显然不仅仅保存了你添加到f
中的内容,而是在附加时提取了f
中的一切。更加详细地说,在第一种情况下,“键入“fyy”fp
的结果与使用默认剪贴板键入yyp
完全相同。”但是如果现在你将一个新行复制到默认寄存器中,您可以按
"f
选择f
寄存器,然后按p
粘贴先前的值。
@+
是剪贴板寄存器,以防万一。 - ruffin