使用 Vim 的同学都知道,p 键粘贴的是存放在 Vim 寄存器里面的内容,而寄存器并不一定是系统的剪切板。那么有办法可以让 p 键直接粘贴系统剪切板里的内容吗?
对 Vim 稍微熟悉点的同学应该知道,Vim 里有非常多的寄存器,其中系统剪切板在 Vim 中也是其中一个寄存器,只不过默认 p 是不使用这个寄存器,所以要显式指定(在浏览模式下输入 "*p,其中 " 告诉 Vim 要指定寄存器,* 是寄存器名称,有些系统是 +,p 就是粘贴)系统剪切板寄存器来复制剪切板内容。
而在 Vim 关于 clipboard
参数有一句话提到:如果给 clipboard
设置了 unnamed
,那么默认寄存器就变成了 *
!!
set clipboard+=unnamed
需要注意的问题
不是所有的 Vim 都支持系统剪切板,比如 OSX 自带的 Vim,如果你发现上面的设置无法生效,甚至报错,或者寄存器 *
(或者 +
)也无法从系统剪切板里复制内容,那么很有可能是因为当前 Vim 并没有把支持系统剪切板的功能编译进去,您可以尝试使用如下命令检查
$ vim --version|grep clipboard
以我的 Mac 自带的 Vim 执行结果为例子:
-clipboard +iconv +path_extra -toolbar
+eval -mouse_dec +startuptime -xterm_clipboard
可以看到 clipboard 选项并不支持。
Mac 下解决这个问题也非常简单,安装 MacVim,或者通过 homebrew 另外安装一个支持 clipboard 的 Vim 即可:
$ brew install vim
在 Vim 里直接使用 p 键粘贴剪切板里的内容 by Chris Yue is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

写作累,服务器还越来越贵
求分担,祝愿好人一生平安
天使打赏人