如何将文本从vim复制到外部程序?

如何将文本从vim复制到外部程序?

我正在尝试从 vim 复制粘贴一些文本。我正在做v进入可视模式,然后y一旦我选择了我的区块。

它似乎将文本复制到 vim 的剪贴板中,因为 p 会将其粘贴。但在另一个程序(例如Chrome)中,右键单击->粘贴不会粘贴正确的文本。如何将文本复制到正确的剪贴板?

答案1

vim --version仅当表明您具有该功能时,以下内容才有效+xterm_clipboard。如果没有,您将必须安装额外的软件包或重新编译 vim 添加该功能。


实际上有两种选择:

"+y

复制到“常用”剪贴板缓冲区(因此您可以使用 Ctrl+V 进行粘贴,右键单击并选择“粘贴”等),而

"*y

复制到 X11 选择 - 您可以使用中键单击从此缓冲区粘贴。

请注意这一点,"*并且"+双向工作。因此,如果您在另一个应用程序中选择了某些文本,则可以使用将其粘贴到 vim 中"*p,如果您复制了一些文本(例如使用 Ctrl-C),则可以使用 将其粘贴到 vim 中"+p

答案2

按住 Shift 键键并用鼠标光标选择文本。
文本将被复制到剪贴板。

这也适用于粘贴将剪贴板导入到 vim 中。

需要明确的是,这适用于vim在终端(例如xterm.

答案3

如果您使用的是 vim >=7.3.74,那么您实际上可以将其放入 vimrc 中:

set clipboard=unnamedplus

默认情况下,它将自动使用+缓冲区(系统剪贴板)。然后要复制(复制),您只需使用常规y命令等。

不过,我发现这种行为相当烦人,因为像d将它们操作的文本放入默认缓冲区之类的命令,这意味着我无法快速dd粘贴来自互联网的一行。

答案4

当我检查我的 vim 不支持剪贴板时:

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

我安装了 vim-gnome 然后再次检查

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

现在我可以分别使用“+y”和“+p”进行复制和粘贴。

相关内容