Vim使用系统剪贴板

查看vim版本是否支持clipboard

1
2
3
vim --version | grep "clipboard"
-clipboard +insert_expand +path_extra +user_commands

-clipboard 显示 - 号,说明不支持,需要安装vim-gnome

1
2
3
sudo apt install vim-gnome
#再次查看,可以看到clipboard前面是+号
vim --version | grep "clipboard"

复制、粘贴

Vim 中的复制、删除的内容都会被存放到默认(未命名)寄存器中,之后可以通过粘贴操作读取默认寄存器中的内容。寄存器是完成这一过程的中转站,Vim 支持的寄存器非常多,其中常用的有 a-zA-Z0-9+“。其中:

  • 0-9:表示数字寄存器,是 Vim 用来保存最近复制、删除等操作的内容,其中 0 号寄存器保存的是最近一次的操作内容。
  • a-zA-Z:表示用户寄存器,Vim 不会读写这部分寄存器
  • "(单个双引号):未命名的寄存器,是 Vim 的默认寄存器,例如删除、复制等操作的内容都会被保存到这里。
  • +:剪切板寄存器,关联系统剪切板,保存在这个寄存器中的内容可以被系统其他程序访问,也可以通过这个寄存器访问其他程序保存到剪切板中的内容。
1
2
#查看所有寄存器中的内容,也可以只查看指定寄存器的内容(将寄存器名称作为参数)
:reg [register_name]
1
2
3
4
"+yy #复制当前行到剪切板
"+p #将剪切板内容粘贴到光标后面
"ayy #复制当前行到寄存器 a
"ap #将寄存器 a 中的内容粘贴到光标后面

参考: