与其他编辑器不同,vim将复制的文本存储在自己的剪贴板中。所以,对我来说,从网页复制一些文本并将其粘贴到当前的工作文件中是非常困难的。碰巧我必须打开gedit或手动输入它。
我可以使vim粘贴从和系统的剪贴板?
与其他编辑器不同,vim将复制的文本存储在自己的剪贴板中。所以,对我来说,从网页复制一些文本并将其粘贴到当前的工作文件中是非常困难的。碰巧我必须打开gedit或手动输入它。
我可以使vim粘贴从和系统的剪贴板?
当前回答
在设置:set clipboard= named之上,你应该使用mvim -v,如果你在终端上使用vim,你可以通过brew install macvim获得。应用程序在Mac OS X 10.9。默认vim不支持剪贴板选项。
其他回答
基于@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:反向完成搜索关键字
没有+剪贴板,所以我提出了这个替代方案使用xsel:
添加到~/.vimrc:
vnoremap <C-C>:w !xsel -b<CR><CR>
如果你想改变你的vimrc,其他的解决方案是很好的…然而,我想要一个简单的方法从vim复制到我的系统键盘。这是我想到的。
选择要复制的文本与可视模式v 按:(它会自动展开显示:'<,'>) 输入y *或y +(取决于您的系统)将所选文本拉到系统剪贴板
我在Linux (Ubuntu 20.04)中最简单的工作方式
复制到系统剪贴板: 选择要在可视模式下复制的内容。 输入“+ y 按回车键 从系统的剪贴板粘贴一些东西: 移动到要在vim中粘贴复制文本的位置。 只要输入 "+P粘贴到光标OR前 "+p粘贴在光标后。
要了解更多这是如何工作的:复制和粘贴到/从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时关闭自动缩进