追加到剪贴板的一个如何在vim中注册?


21

我已经知道您可以使用以下命令将某些内容复制到寄存器中:(加上抽出,删除等命令)

"a

我也了解您可以使用以下方法将其附加到寄存器中:

"A

另外,我了解如何使用以下方法将内容复制到剪贴板寄存器:

"+

我键入什么来附加到剪贴板寄存器?

我的vim版本:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:39:59) Huge version with GTK2 GUI.

Answers:


10

没有正常模式的命令,但是您可以简单地追加到另一个寄存器,然后:let将剪贴板寄存器追加到该寄存器的内容:

"Ay
"Ay
"Ay
:let @+ = @A

1
我可以把它放到我的.vimrc文件中吗?
杰森·巴桑尼斯

3
请注意,let @+ = @A将丢弃寄存器的类型a。复制寄存器的正确方法如下:call setreg('+', getreg('a', 1, 1), getregtype('a'))
佐藤桂2015年

//,但实际上是否会追加
弥敦道(Nathan Basanese)2015年

//,为什么列出三个"Ay命令?
弥敦道(Nathan Basanese)2015年

可能是四个或十二个。只是一个例子。
romainl 2015年

7

您可以致电setreg('+', lines, 'a'),但据我所知,使用普通模式命令无法执行此操作。为此,您必须使用大写字母寄存器之一。


只是使用:let @+ .= 'XXX'似乎有效?
马丁·图尔诺伊

7
@Carpetsmoker是和否。最近在vim_dev上对此进行了讨论,即使在某些情况下它似乎可以工作,显然您也不应该这样做。我认为这与类型(字符/行/块)的寄存器内容和字符串连接没有进行必要的簿记有关。无论如何,它没有任何区别,它仍然不是普通模式命令。
lcd047
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.