我已经知道你可以使用以下命令复制一些内容到寄存器中:(加上复制、删除等命令)
"a
我还了解您可以使用以下命令将其附加到寄存器:
"A
此外,我还了解如何使用以下命令将某些内容复制到剪贴板寄存器:
"+
问题是我应该输入什么内容来附加到剪贴板寄存器?
编辑: 这可能不是必需的,但我的 VIM 版本是:
Vi IMproved 7.4(2013 年 8 月 10 日,编译于 2014 年 1 月 2 日 19:39:59)带有 GTK2 GUI 的大型版本。
答案1
你必须使用
:let @+ .= your_expression
看堆栈溢出。正如您所理解的,问题在于您无法将字符大写+
。
例如,要将缓冲区中的一行添加到剪贴板,请将光标放在该行上,然后使用 将其拉出yy
。然后键入:let @+ .= @0
运行 ( :
) 命令let
以将 ( .=
) 寄存器 ( @
) 0(始终保存最后一次拉出的内容)附加到寄存器+
(代表剪贴板)中。
例如,要将字符串“abc”添加到剪贴板,请键入:let @+ .= 'abc'
。
(要更改 X11 选择而不是剪贴板寄存器,+
请使用寄存器*
)。
vim 有一个巨大的命令集。如果您打算将其作为您最喜欢的编辑器,那么值得花些精力去了解其中的一些命令,至少是表面上的命令。大多数 vim 用户可能只使用大约十几个命令,并且对其真正的潜力不感兴趣。这很遗憾,因为这样的工具可以大大减少他们的工作量。
你可能会喜欢艰难学习 Vimscript. 内置 vim 帮助也可以在网上查看源码,此页面Vim 脚本语言。
答案2
只能向 26 个命名寄存器a to z
附加数据。但“未命名”寄存器"
始终指向最后使用的寄存器。我们可以利用这一点,因为这也意味着附加到命名寄存器的数据也是附加到“未命名”的登记册。
以下是一个例子:
1| Line 1
2| Line 2
3| Line 3
- 扬克1号线。
"+yy
。- 用 检查寄存器
:reg + "
。 - 你会注意到它们都包含1号线。
- 用 检查寄存器
- 附加2号线通过键入来注册“a”
"Ayy
。 (或者使用您希望的任何命名寄存器)。- 用 检查寄存器
:reg a + "
。 - 注册
+
仍然与预期相同。 - 注册
a
有2号线附加到之前的内容中。 - 注册
"
同时具有1号线和2号线。
- 用 检查寄存器
:help 引用引用
附注:考虑将“未命名”寄存器设置为剪贴板,这样您就不必"+yy
每次都输入。如果设置了,您只需yy
将其拉到剪贴板即可。
:help clipboard
:help 'clipboard'
:help clipboard-unnamedplus
:help clipboard-unnamed