与其他编辑器不同,vim将复制的文本存储在自己的剪贴板中。所以,对我来说,从网页复制一些文本并将其粘贴到当前的工作文件中是非常困难的。碰巧我必须打开gedit或手动输入它。
我可以使vim粘贴从和系统的剪贴板?
与其他编辑器不同,vim将复制的文本存储在自己的剪贴板中。所以,对我来说,从网页复制一些文本并将其粘贴到当前的工作文件中是非常困难的。碰巧我必须打开gedit或手动输入它。
我可以使vim粘贴从和系统的剪贴板?
当前回答
在Linux或Mac上使用Vim 8+,你现在可以简单地使用操作系统的本机粘贴(在Linux上ctrl+shift+V,在Mac上cmd+V)。插入模式时不要按i键。
它将粘贴操作系统剪贴板的内容,保留空格和制表符,而不添加自动缩进。它相当于旧的:set paste, i, ctrl+shift+V, esc,:set nopaste方法。
你甚至不再需要安装+clipboard或+xterm_clipboard vim特性。这个功能被称为“括号粘贴”。有关更多详细信息,请参见在将文本粘贴到vim时关闭自动缩进
其他回答
最简单的解决方案,也可以通过ssh在不同的Linux机器之间工作:
查看vim是否支持X-11 clipboard: vim——version | grep clipboard。如果它报告回-clipboard和-xterm_clipboard,你应该安装vim-gtk或vim-gnome(在arch linux上的gvim) 在你的.vimrc中添加以下代码行:
设置剪贴板= unnamedplus 设置粘贴
如果您通过ssh在另一台机器上登录,请使用选项-Y: ssh -Y machine
现在,复制和粘贴在一台机器上和在不同的机器上都可以正常工作,只需要用y表示yank,用p表示粘贴。注意:在想要使用该特性的所有机器上修改.vimrc。
剪贴板
有一个特殊的寄存器用于存储这些选择,它是“*” 登记。这里什么都没有,除非是关于文本是什么的信息 所选项即将更改(例如,用鼠标左键单击某处),或当更改时 另一个应用程序想要粘贴所选文本。然后将文本放入 在*寄存器中。例如,切断一条线并使其成为电流 选择/把它放在剪贴板上:
"*dd
类似地,当您想要粘贴来自另一个应用程序的选择时,例如, 通过单击鼠标中间按钮,所选内容被放入“*寄存器” 首先,然后像其他寄存器一样“放”。例如,把 选择(剪贴板的内容):
"*p
寄存器E354
> There are nine types of registers:
> 1. The unnamed register ""
> 2. 10 numbered registers "0 to "9
> 3. The small delete register "-
> 4. 26 named registers "a to "z or "A to "Z
> 5. four read-only registers ":, "., "% and "#
> 6. the expression register "=
> 7. The selection and drop registers "*, "+ and "~
> 8. The black hole register "_
> 9. Last search pattern register "/
从剪贴板粘贴
1. Clipboard: Copy
2. Vim insertmode, middle mouse key
检查终端是否支持x11剪贴板
当你想在终端上运行Vim时,你需要寻找一个带有剪贴板支持的Vim版本。 检查x11剪贴板支持,从控制台,键入:
% vim --version
如果看到“+xterm_clipboard”,就可以开始了。
http://vim.wikia.com/wiki/Accessing_the_system_clipboard
X服务器维护三个选择,称为: 主要,次要和剪贴板 PRIMARY选择通常用于实现复制和 通过鼠标中间按钮粘贴。次要和剪贴板 应用程序较少使用选择。
http://linux.die.net/man/1/xsel
还有一种方法是直接粘贴到'r'ead 'cat'输出:
:r!cat
这将在前台运行cat,所以你可以发送到终端你想要插入/在你的剪贴板。 完成后,发送ctrl+d以结束流。
这样做的好处是你不需要打乱缩进——文本就这样被插入。 注意,在cat位置可以有任何命令,比如fold(在发现gq之前我一直使用这个命令)或任何其他过滤工具。
虽然'+'寄存器似乎更vimic,但它并不适用于所有平台,而r!凯特只是在工作。
在设置:set clipboard= named之上,你应该使用mvim -v,如果你在终端上使用vim,你可以通过brew install macvim获得。应用程序在Mac OS X 10.9。默认vim不支持剪贴板选项。
如果你使用鼠标,首先做
:set paste
然后右击鼠标,缓冲区中的内容将被粘贴