vim
中的复制和粘贴命令分别是y
和p
,在不需要和系统交互剪贴板数据时还好,一旦要复制外部数据到vim中或者将vim中的数据复制到外部,这两个命令就无效了,只能用鼠标选中再右键复制粘贴。虽然和windows下的Ctrl C
、Ctrl V
不同,但vim可以通过配置实现和系统剪贴板的“沟通”。
开始前需要先查看vim
是否已经支持clipboard
功能,使用vim --version | grep clipboard
命令查看,已经支持时其前有+
号
如果其前为-
号,执行sudo apt install vim-gtk
安装vim-gtk
即可,安装完成后再执行vim --version | grep clipboard
此时应该已经支持clipboard
功能。
此时如果在vim
外复制了文本,要粘贴到打开的vim
文件内,只需在normal模式下
(如果不知道当前在哪个模式就先按一次ESC
键)执行"*p
,注意是三个键连续输入,由于要输入双引号和星号,因此需要先按下Shift
键,再分别按下"
*
(过程中Shift不要放下),最后按下p(小写,此时不要按Shift),如果没问题应该可以将系统剪贴板数据粘贴到vim
中;
类似的,要将vim
中的数据复制到vim
外,需要回到normal
模式先按v
进入visual
模式,移动光标选中目标文本后,在visua模式下
执行"
+
y
即可将vim
数据复制到系统剪贴板,在vim
外执行Ctrl V
即可完成数据粘贴。
要是每次都按这么复杂的键估计十个人九个会疯掉,好在vim
支持自定义快捷键,使用vim
打开~/.vimrc
文件这是当前用户的vim
配置文件,vim
会读取配置文件中的内容完成相应的配置,在这个配置文件中添加(#号后只是注释)
vnoremap <C-y> "+y # 支持在Visual模式下,通过C-y复制到系统剪切板
nnoremap <C-p> "*p # 支持在normal模式下,通过C-p粘贴系统剪切板
添加完成后按ESC
回到normal
模式输入:wq
保存并退出,此后就可以像Ctrl C
、Ctrl V
那样愉快地使用Ctrl y
和Ctrl p
进行复制粘贴了,Nice????!