我一直试图找出如何在vim / gvim的实例之间复制和粘贴,但却找不到答案。我在Linux中打开了两个不同的gvim窗口,我正在尝试在这两个窗口之间进行复制和粘贴。我知道你可以在一个gvim窗口的选项卡中执行此操作,但我在两个单独的窗口中找不到任何内容。
我试图将它从一个窗口中拉出并粘贴到另一个窗口中,使用ctrl+shift+c
复制它,类似ctrl+shift+v
,并使用鼠标进行复制和粘贴,但无济于事。有没有办法做到这一点?
答案 0 :(得分:7)
我使用系统范围的缓冲区。这是vim
中的“+”:"+yy
,然后是其他实例"+p
。
编辑:解释(有点)。
双引号后跟任何东西意味着“使用命名缓冲区而不是默认缓冲区用于下一次复制或粘贴操作”。 "+
表示use "+"
这是系统剪贴板(感谢其他答案,我现在知道*
也很方便。)
yy
表示“复制当前行” - 相当多的vim操作可以“加倍”,就像在当前行上工作一样。 dd
删除一行,>>
缩进一行等。
答案 1 :(得分:2)
如前面的答案所示,您可以使用链接到剪贴板的注册表,默认情况下为“*”或“+”。
另一方面,为什么需要运行多个gvim实例?您始终可以将要编辑的文件的名称“发送”到当前运行的gvim实例。在任何终端中只需键入vim --remote-silent fiename
并瞧,您可以使用gvim的一个实例及其所有寄存器。
答案 2 :(得分:1)
您可以将以下内容添加到vimrc文件中(如果尚未创建,请创建一个:vim ~/.vimrc
)
if has("gui_running")
vmap <C-S-x> "+x
vmap <C-S-c> "+y
imap <C-S-v> <Esc>"+gP
endif
现在当gvim正在运行时,当你处于插入模式时,control + shift + v将被粘贴,而control-shift-x和control-shift-c将在可视模式下剪切/复制(就像你在选择了一些文字)
答案 3 :(得分:0)
使用X11剪贴板之一:"*
(PRIMARY)或"+
(CLIPBOARD)。
以下是主剪贴板的示例:
要猛拉:"*y{motion}
要粘贴:"*p
有关详细说明::h quotestar
和:h quoteplus