似乎将文本复制到vim的剪贴板中,因为p会将其粘贴。
但是在另一个程序中(例如Chrome),右键单击->粘贴不会粘贴正确的文本。如何将文本复制到正确的剪贴板?
#1 楼
仅当vim --version
指示您具有+xterm_clipboard
功能时,以下内容才有效。如果没有,您将必须安装额外的软件包或添加该功能重新编译vim。实际上有两个选择:
"+y
复制到“常规”剪贴板缓冲区(因此您可以使用Ctrl + V粘贴,右键单击并选择“粘贴”等),而
"*y
复制到X11选择-您可以使用中键单击从该缓冲区粘贴。
请注意,
"*
和"+
可以同时使用。因此,如果您在另一个应用程序中选择了一些文本,则可以使用"*p
将其粘贴到vim中;如果您复制了一些文本(使用Ctrl-C),则可以使用"+p
将其粘贴到vim中。#2 楼
如果您使用的vim> = 7.3.74,则可以将其实际放入vimrc中:set clipboard=unnamedplus
哪个会自动使用
+
缓冲区(系统剪贴板)默认。然后要拉动(复制),只需使用常规的y
命令,以此类推。我发现此行为相当令人讨厌,因为像
d
这样的命令会将其操作的文本放入默认缓冲区中,例如,这意味着我无法快速执行dd
并从互联网粘贴一条线路。 评论
+是剪贴板规例
– Kit Ho
13年8月8日在8:23
关于您的最后一点,dd的意思是“剪掉一条线”,因此这是预期的行为。在极少数情况下,当您想删除某行而被遗忘时,“ _ dd可以解决问题。
–user7089
2014年4月24日0:38在
也正如@HamishDowner在其答案中指出的那样:仅当vim --version指示您具有+ xterm_clipboard功能时,以下内容才有效。如果没有,您将必须安装额外的软件包或使用添加的功能重新编译vim。
–rudolph9
17 Mar 30 '17:15
#3 楼
按住Shift键并使用鼠标光标选择文本。文本将被复制到剪贴板。
这也适用于从剪贴板粘贴到vim中。
要清楚,这适用于在诸如
vim
之类的终端中运行的xterm
。 评论
@LoopSpace用于多行选择,当启用设置nu时,这也会复制行号。因此,您可能希望使用某些快捷方式切换行号,或在每次选择之前运行:set nonu命令
–史蒂芬·普里比林斯基(Steven Pribilinskiy)
18年1月24日在14:34
在MAC上,按住Option键并用鼠标光标选择文本
– Abreschi
19-10-4在21:26
使用vim 8.0 + gnome-terminal对我不起作用
– jchook
19-10-26在21:09
解决方案与tmux等多窗格术语不兼容。
– Adrian Lopez
20年7月11日在13:18
这不会复制到剪贴板,而是复制到主剪贴板。请参阅剪贴板Arch Wiki文章中的区别。
–Quasímodo
20年8月4日在17:15
#4 楼
我发现很难使用标准"+gP
和"+y
命令。因此,我重新映射了Ctrl-Y
以便拖入剪贴板,并重新映射了Ctrl-P
从剪贴板粘贴。将此添加到.vimrc
nnoremap <C-y> "+y
vnoremap <C-y> "+y
nnoremap <C-p> "+gP
vnoremap <C-p> "+gP
#5 楼
当我检查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”复制和粘贴了。
#6 楼
没关系,我找到了答案-它写在vim的菜单上。"+y
非常直观。
评论
您正在使用gvim吗?
– nozimica
2011年5月3日16:14
@ nozimica-是的
–ripper234
2011年5月3日17:09
在xterm或在X下的类似终端仿真器中运行的vim中也可以使用该功能(如果vim是使用+ xterm_clipboard功能编译的)。
–吉尔斯'所以-不再是邪恶的'
2011年5月3日在21:02
#7 楼
仅添加一个非特定于vim的答案:您可以使用Ctrl+Shift+C
复制到Ubuntu中的系统剪贴板(如果该功能是由终端仿真器提供的,则gnome-terminal提供该功能)。 Ctrl+Shift+V
粘贴到另一个终端窗口,常规Ctrl+V
粘贴到GUI应用。此外,如果在终端中选择文本,然后单击鼠标中键,将从X11剪贴板粘贴该文本。评论
由于某种原因,它不起作用。只需在可视模式下选择,使用ctrl-shift-C复制,然后使用Ctrl-shift-V粘贴到另一个应用程序中即可?文本不会为我复制。
–ripper234
2011年5月3日23:14
@ ripper234:如果您使用的是gvim,则此方法不起作用。正如crazy2be所说,此功能来自您的终端仿真器。
–里德
2011年5月3日23:20
@ ripper234:1)它是终端仿真器提供的功能(其中一个是gnome-terminal提供的),2)Ctrl + Shift + V粘贴到终端上,GUI应用程序仍然照常使用Ctrl + V。我将编辑答案以使其更加清晰。
–crazy2be
2011年5月4日在2:41
如果您使用shift-ctrl鼠标拖动-选择文本,则从一个缓冲区窗口复制粘贴变得容易。
–史蒂芬(Stephan)
2011年11月3日,10:33
#8 楼
按住SHIFT键并用鼠标选择要复制的文本。然后用
CTRL + v
粘贴到其他程序中。可在我的Ubuntu 16.04终端上运行。不确定
gvim
和其他系统。评论
那行不通。
–疯狂
17年6月14日在16:57
创造性的答案
–vidur punj
17年11月8日在12:00
#9 楼
默认情况下,如果安装vim的精简版本,则(+xterm_clipboard
)上将没有vim --version | grep xterm
功能,这是在vim外部使用*
和+
寄存器所必需的。要启用它,您必须自己编译vim或安装预启用的vim版本。我使用了vim-gnome:
sudo apt-get install vim-gnome
。如果执行vim --version | grep xterm
,将会看到现在是+xterm_clipboard
。现在,请尝试复制到
+
和*
,它应该可以工作。#10 楼
只是要添加一下,如果有任何效果,请尝试切换包装vim的终端(如果从终端使用vim)。例如,我发现guake无法访问剪贴板,而从gnome-terminal可以访问剪贴板。#11 楼
对于Ubuntu 14.04及更高版本:只需选择要复制的文本。然后用鼠标单击中心滚动按钮,然后转到剪贴板
也在那里做同样的事情(用鼠标单击中心滚动按钮)。
两者都可以100%工作Ubuntu上的
vim
和tail
。
评论
@Tshepang它不能从腻子中起作用。我该怎么办 ?
–拉胡尔·帕蒂尔(Rahul Patil)
13年4月10日在2:54
@RahulPatil我不知道;也许会问一个单独的问题,也许是在超级用户上(因为它是Windows工具,所以在那儿会受到更多欢迎)。
– tshepang
2013年10月10日下午5:19
@RahulPatil-如果您使用腻子,那么您是在远程服务器上而不是在本地计算机上编辑文件。通常,远程服务器不会知道本地计算机上的剪贴板。如果您使用的是Linux桌面,则可以使用X转发进行ssh(前提是您已在服务器上安装了X库),但是由于腻子在Windows上运行,因此您没有X运行,因此无法转发它。
–汉米·唐纳(Hamish Downer)
13年4月10日在11:32
大家好,如何键入“ + y?我应该在可视模式下还是在命令模式下键入它?这很愚蠢,但我无法弄清楚。
–艾琳·比洛(Alind Billore)
16 Jun 15'12:38
@AlindBillore:在命令模式下。从字面上看,先按shift键,然后按shift =键,然后按y键(当然不是一次,一次又一次,当然除了移位之外)。
–里德
17-3-30在18:39