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

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


当前回答

还有一种方法是直接粘贴到'r'ead 'cat'输出:

:r!cat

这将在前台运行cat,所以你可以发送到终端你想要插入/在你的剪贴板。 完成后,发送ctrl+d以结束流。

这样做的好处是你不需要打乱缩进——文本就这样被插入。 注意,在cat位置可以有任何命令,比如fold(在发现gq之前我一直使用这个命令)或任何其他过滤工具。

虽然'+'寄存器似乎更vimic,但它并不适用于所有平台,而r!凯特只是在工作。

其他回答

复制到操作系统剪贴板

在可视模式下选择文本,按“*y”

从操作系统剪贴板粘贴

按“* p

有两种简单的方法。使您的文件处于插入模式和 1)按下鼠标中间的按钮(滚轮),或者 2) Ctrl + Shift + V

这些组合键适用于任何操作系统。

使用鼠标选择目标文本,并参考复制、剪切和粘贴的键序列。

复制:Ctrl +插入 粘贴:Shift +插入

剪切:Shift + Del 粘贴:Shift +插入

由于vim 8的右键单击默认启用可视模式。这可以防止“正常的”复制和粘贴(称之为“设计缺陷”https://github.com/vim/vim/issues/1326)。 解决方法:

回显“set mouse-=a”>> ~/。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.