VIM:附加到剪贴板

时间:2011-06-10 08:33:19

标签: vim copy append clipboard

我知道如何复制到剪贴板但是如何附加到剪贴板?

体育专业。我在我的代码中使用它     let @+ = my_expression

但是会覆盖剪贴板。

我知道我可以使用寄存器a-z附加到
体育let @B = my_expression
附加注册b

但是当我想要附加到剪贴板时该怎么办?

2 个答案:

答案 0 :(得分:13)

使用:

let @+ = @+ . my_expression

或更短:

let @+ .= my_expression

参考::help :let.=

答案 1 :(得分:9)

如果你没有进行宏观调查,那么也可能需要查看registers:help registers令人兴奋。

简而言之,还有26个额外的“可自定义剪贴板”,称为寄存器,您可以在其中存储文本,从a开始并经过z。通过点击",命名寄存器(例如f),然后键入要选择文本的“动作”,可以在命令模式下向寄存器添加文本。

使用寄存器复制(光标位于[T]):

初始档案状态

This is my first line.
[T]his is my second line. 
This is my third line.

在命令模式下键入"fyy以使用一行(yy)填充寄存器。输入p(*见下文)即可立即粘贴。因此,键入"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的内容,最后只保留“这是我的第三行。”

我还没有找到一种附加到默认寄存器的方法,所以你会遇到一些额外的键击访问“命名”寄存器,但是稍微有点工作,这是一种简单的方法来附加到“剪贴板”上苍蝇。

  • 为什么p在您进入f后立即粘贴注册f中的内容?因为您的默认寄存器包含最后一个选择,并且显然不仅仅保留您添加到f的内容,而是在追加时将f中的所有内容拉出来。可能更容易说,在第一种情况下,“键入"fyy"fp的结果与使用默认剪贴板键入yyp完全相同。”