是否可以将文本从 vim 复制到系统缓冲区?

是否可以将文本从 vim 复制到系统缓冲区?

我想从 vim 复制文本,例如通过选择visual mode,然后ctrl+insert我希望将复制的文本放在系统缓冲区中,这样我就可以使用例如将其粘贴到我喜欢的任何位置ctrl+v。这可能吗?

当我需要将长文本从 vim 窗口复制到缓冲区时,问题出现了。我无法简单地用鼠标选择所有内容然后复制,因为文本不适合窗口。

答案1

是的。Vim 将系统剪贴板引用为寄存器,你可以像使用其他寄存器一样使用它。

主剪贴板是*,因此您可以在可视模式下突出显示,然后键入"*y。如果您使用的是 X11,则可以使用寄存器复制到 X11 缓冲区+。最后,您可以使用 将默认寄存器重新分配给剪贴板寄存器:set clipboard=unnamed。如果您这样做,则任何复制、复制或删除都将自动转到系统剪贴板,而无需您先手动指定寄存器。

答案2

视觉选择(vVCTRL+V)可以自动复制到 X11 选择 (* 缓冲区)。

在非 GUI 模式下,剪贴板选项控制此功能(仅当您键入时出现 +xterm_clipboard 时才支持vim --version)。在 GUI 模式下guioptions控制它。

这将使所有 Visual 模式选择自动转到 X11 主选择:

set clipboard+=autoselect<br>
set guioptions+=a

这将关闭它:

set clipboard-=autoselect<br>
set guioptions-=a

参见:(help 'clipboard' 需要单引号)。

答案3

在 OS X 上,您可以使用pbcopy/pbpaste命令行工具来实现这一点。

例如,要复制当前行,请运行:

:.!pbcopy "Copy current line clipboard

复制整个文件:

:!echo "%:p" | pbcopy

或者要复制选定的文本(使用可视模式通过:v/ V),!pbcopy选择文本后输入,这样它就变成::'<,'>!pbcopy,这样它会将文本复制到剪贴板中。

看:Mac OS X 剪贴板共享

对于 Linux,使用xclipgpm相似的东西

相关内容