这是关于在terminal中使用的vim的方法,gvim我一般不用,也没有测试。
测试系统是fedora37。
原生的裸vim是从这个包安装进系统的:vim-enhanced-9.0.2120-1.fc37.x86_64
这个裸vim在编译的时候没有加入对clipboard的支持
这就导致无法让vim与系统剪贴板进行通信。
在不愿意自己从源代码重新定制编译vim时,可以安装vim-x11-9.0.2120-1.fc37.x86_64这个安装包,在包里面有一个支持了x的vim版本,叫做vimx。
这两个版本的差别从各自的--version参数显示的说明可以看出来。
vim是:
huge version without gui.
vimx是:
huge version with gtk3 gui.
可以把vimx看作是gvim的terminal版。
然后将系统alias都改成vimx
alias vi=vimx
alias vim=vimx
在.vimrc中稍作配制,添加如下信息,将默认寄存器设置为系统寄存器
set clipboard=unnamedplus
完工。
现在不管是yy还是区域选择后再y还是各种y,都能直接进系统剪贴板了。
----------------------------------------------------------------------------------------------------
使用vimx还有一个意外的好处,现在具体原因还没有搞清楚。(理论上应该是,x11的拷贝协议被转发给了本机)
就是如果ssh(客户端)开了forward x11功能,也就是在~/.ssh/config中添加了
host *
forwardx11 yes
的情况下,
在服务器上面运行vimx的时候,可以直接拷贝(各种y)到本机的系统剪贴板上。
这样的话,比去折腾osc52可简单多了,oscyank也不需要了。
另外,我测试环境是xorg(服务器和本机都是xorg),没有使用xwayland,不知道在xwayland中会是什么情况。