与其他编辑器不同,vim将复制的文本存储在自己的剪贴板中。所以,对我来说,从网页复制一些文本并将其粘贴到当前的工作文件中是非常困难的。碰巧我必须打开gedit或手动输入它。

我可以使vim粘贴从和系统的剪贴板?


当前回答

Linux

在我的Linux系统上,+和*寄存器映射到一个X11选择项,可以用鼠标中间按钮粘贴。当使用:set clipboard= named和:set clipboard=unnamedplus时,寄存器映射到剪贴板,可以用CTRL-V粘贴。

具体细节似乎取决于配置和系统,所以您的里程肯定会有所不同。不过,它肯定会给你指明正确的方向。

另请参阅

http://vim.wikia.com/wiki/Accessing_the_system_clipboard

其他回答

如果你在windows上,你想用p粘贴系统剪贴板的内容,然后输入这个命令。

:set clipboard = unnamed

这解决了我的问题。

如果你使用鼠标,首先做

 :set paste 

然后右击鼠标,缓冲区中的内容将被粘贴

对于一些国际键盘,您可能需要按“+空格获得a”。

所以在这种情况下,你必须按“空格+y”或“空格*y”来复制。

空格+p或者空格*p来粘贴。

基于@lis2的答案,我使用了一个更简单的配置,将不会强制插入模式结束:

" Copy and paste
if has('clipboard') && !has('gui_running')
  vnoremap <C-c> "+y
  vnoremap <C-x> "+d
  vnoremap <C-v> "+p
  inoremap <C-v> <C-r><C-o>+
endif

注意,所有这些都会覆盖默认的Vim映射:

v_CTRL-C:停止可视模式 v_CTRL-X:从number中减去[count] v_CTRL-V: blockwise可视化模式 i_CTRL-V:按字面插入下一个非数字,这也映射到i_CTRL-Q

作为一种替代方法,你可以使用“yank”,“delete”和“put”Vim动词中的键:分别为<C-y>, <C-d>和<C-p>。这些只会覆盖一个默认映射:

i_CTRL-P:反向完成搜索关键字

这适用于我:Ctrl+Shift+V