vim与系统粘贴板的互通简单介绍

最近经常遇到这个问题,在这里记录下。

我的环境

  • 系统 Archlinux
  • vim NVIM v0.2.2 / vim 8.0.1297

前提

需要 vim 支持 +clipboard

  • 检查方法 vim --version | grep clipboard
  • 如果你用的是 vim-minimal 不支持,安装 gvim 可解,安装后命令行版也会支持的
  • 至于 nvim, 我也不太清楚, 好像 vim 支持之后它也可以了???

开始

不再详细介绍 vim 的 复制粘贴缓存器系统了,只介绍方法,具体可参考各种详细介绍的博文

  1. 从 vim 复制到系统粘贴板

    • 跟使用普通的 y 命令类似,只需要 "+y 即可将内容复制到系统粘贴板
  2. 从系统粘贴板复制到 vim

    • 法1: 与 p 命令类似,只需要换成 "+p 即可
    • 法2: 首先 vim 输入 命令 :set paste (这样粘贴效果好,不会出现奇怪的缩进), 插入模式下使用终端的粘贴功能
  3. 多个 vim 之间的复制

    • 如果是同一个vim进程的不同buffer, 可以直接 p / y 没有问题
    • 如果是不同的进程,可以像上文提到的那样借助 +寄存器 来完成,也就是 之前的 "+y / "+p

最后说点

简单来说可以按照: <双引号><寄存器名><命令> 来使用不同的 vim 寄存器,查看寄存器的命令是:reg

我这里只是记录下简单做法,对 vim 寄存器的原理感兴趣就去看 vim 的文档还有各种博文吧~