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

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


当前回答

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

:r!cat

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

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

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

其他回答

没有+剪贴板,所以我提出了这个替代方案使用xsel:

添加到~/.vimrc:

vnoremap <C-C>:w !xsel -b<CR><CR>

我在2017年年中的Macbook Pro上遇到了这个问题,我在iTerm2中运行vim作为我的主要开发环境。

正如其他答案所建议的那样,我运行vim——version并注意到它返回-clipboard,这意味着我的机器附带的vim版本没有使用clipboard选项进行编译。

vim的自制包似乎是用剪贴板选项编译的,所以对我的修复是:

运行brew install vim 添加set clipboard+= named到我的~/。vimrc文件 关闭并重新打开iTerm2

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

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

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

如果你在MAC OSX中使用vim,不幸的是它带有旧版本,并且不符合剪贴板选项。幸运的是,自制程序可以很容易地解决这个问题。

安装vim:

Brew install vim -with-lua -with-override-system-vim

安装vim的GUI版本:

Brew install macvim -with-lua -with-override-system-vim

重启终端生效。

将下面的行追加到~/.vimrc 设置剪贴板=不知名的

现在,您可以用yy在vim中复制该行,并在系统范围内粘贴它。

你可以通过gnome终端的快捷方式粘贴到vim中。 将文件置于插入模式并使用

Ctrl + Shift + v。

事先要记住

 :set paste 

避免弄乱缩进。