rip*_*234 116 vim clipboard x-server
我正在尝试从 vim 复制粘贴一些文本。我正在做v进入视觉模式,然后y一旦我选择了我的块。
它似乎是将文本复制到 vim 的剪贴板中,因为 p 会粘贴它。但是在另一个程序(例如 Chrome)中,右键单击->粘贴不会粘贴正确的文本。如何将文本复制到正确的剪贴板?
Ham*_*ner 92
以下仅当vim --version
表明您具有+xterm_clipboard
功能时才有效。如果没有,您将不得不安装额外的软件包或重新编译添加了该功能的 vim。
这实际上有两种选择:
"+y
Run Code Online (Sandbox Code Playgroud)
复制到“通常的”剪贴板缓冲区(因此您可以使用 Ctrl+V 粘贴,右键单击并选择“粘贴”等),同时
"*y
Run Code Online (Sandbox Code Playgroud)
复制到 X11 选择 - 您可以使用鼠标中键从该缓冲区粘贴。
请注意,"*
并"+
双向工作。因此,如果您在另一个应用程序中选择了一些文本,则可以使用将其粘贴到 vim 中"*p
,如果您复制了一些文本(例如,使用 Ctrl-C),则可以使用"+p
.
And*_*cey 51
按住 shift键并用鼠标光标选择文本。
文本将被复制到剪贴板。
这也适用于从剪贴板粘贴到 vim。
需要明确的是,这适用于vim
在终端中运行,例如xterm
.
Rei*_*eid 41
如果你使用 vim >=7.3.74,那么你实际上可以把它放在你的 vimrc 中:
set clipboard=unnamedplus
Run Code Online (Sandbox Code Playgroud)
+
默认情况下将自动使用缓冲区(系统剪贴板)。然后要猛拉(复制),您只需使用常规y
命令等。
但是,我发现这种行为相当烦人,因为诸如d
将它们操作的文本放入默认缓冲区之类的命令,例如,这意味着我无法快速dd
粘贴来自互联网的一行。
Ber*_*tek 15
我发现标准"+gP
和"+y
命令很难使用。所以我重新映射Ctrl-Y
到剪贴板并Ctrl-P
从剪贴板粘贴。将此添加到.vimrc
nnoremap <C-y> "+y
vnoremap <C-y> "+y
nnoremap <C-p> "+gP
vnoremap <C-p> "+gP
Run Code Online (Sandbox Code Playgroud)
然后粘贴到其他程序中CTRL + v
。
在我的 Ubuntu 16.04 上的终端中工作。不确定gvim
和其他系统。
小智 7
当我检查我的 vim 不支持剪贴板时:
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Run Code Online (Sandbox Code Playgroud)
我安装了 vim-gnome 然后再次检查
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Run Code Online (Sandbox Code Playgroud)
现在我可以分别使用 "+y 和 "+p 进行复制和粘贴。
只是添加一个非 vim 特定的答案:您可以使用Ctrl+Shift+C
复制到 Ubuntu 中的系统剪贴板(如果该功能由您的终端模拟器提供,则 gnome-terminal for one 提供)。Ctrl+Shift+V
粘贴到另一个终端窗口,常规Ctrl+V
粘贴到 GUI 应用程序。
此外,如果您在终端中选择文本,然后单击鼠标中键,它将从 X11 剪贴板粘贴。