我正在尝试从 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”进行复制和粘贴。