与其他编辑器不同,vim将复制的文本存储在自己的剪贴板中。所以,对我来说,从网页复制一些文本并将其粘贴到当前的工作文件中是非常困难的。碰巧我必须打开gedit或手动输入它。
我可以使vim粘贴从和系统的剪贴板?
与其他编辑器不同,vim将复制的文本存储在自己的剪贴板中。所以,对我来说,从网页复制一些文本并将其粘贴到当前的工作文件中是非常困难的。碰巧我必须打开gedit或手动输入它。
我可以使vim粘贴从和系统的剪贴板?
当前回答
Mac OS X:
运行vim——version | grep clipboard检查是否启用了剪贴板(使用+) 添加set clipboard= named到.vimrc 重启终端和vim
其他回答
When I use my Debian vim that is not integrated with Gnome (vim --version | grep clip # shows no clipboard support), I can copy to the clipboard after holding the Shift key and selecting the text with the mouse, just like with any other curses program. As I figured from a comment by @Conner, it's the terminal (gnome-terminal in my case) that turns off its mouse event reporting when it senses my Shift press. I guess curses-based programs can receive mouse events after sending a certain Escape sequence to the terminal.
我使用了NM Pennypacker的答案,并通过自制程序为2011年初的MacBook Pro安装了vim:
brew install vim
现在我还可以使用“*寄存器”在vim中复制和粘贴文本。我甚至不需要在~/中更改任何内容。vimrc文件或$PATH。Homebrew在/usr/local/bin中增加了符号链接,例如vim -> ../Cellar/vim/8.1.2350/bin/vim。
之前工作的替代方法是在vim中通过用鼠标标记并在mac上使用复制和粘贴(cmd + c, cmd + v)来复制一些文本行。此选项仅在您想要复制和粘贴的文本小于vim的窗口大小时有效。如果你想通过标记整个窗口或使用cmd + a复制vim中的所有文本,这将复制启动vim之前编写的控制台的其他部分,这非常烦人。
所以,我很高兴找到了使用剪贴板寄存器的新方法。
如果你在windows上,你想用p粘贴系统剪贴板的内容,然后输入这个命令。
:set clipboard = unnamed
这解决了我的问题。
基于@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:反向完成搜索关键字
如果你想改变你的vimrc,其他的解决方案是很好的…然而,我想要一个简单的方法从vim复制到我的系统键盘。这是我想到的。
选择要复制的文本与可视模式v 按:(它会自动展开显示:'<,'>) 输入y *或y +(取决于您的系统)将所选文本拉到系统剪贴板