Ubuntu Server下如何启用剪贴板支持以实现不同VIM会话间的跨终端复制粘贴
Ubuntu Server下如何启用剪贴板支持以实现不同VIM会话间的跨终端复制粘贴
我太懂你这种困扰了——明明Vim已经编译支持clipboard和xterm_clipboard特性,连到Ubuntu Server后*和"+寄存器就是死活用不了。毕竟Server版默认不带GUI,X11的PRIMARY选择区和CLIPBOARD机制根本没法正常工作,而且你要的不是依赖本地Windows Terminal的鼠标复制粘贴,是不同SSH终端里的Vim会话之间直接用寄存器互通,对吧?
一开始我也踩过坑:想着装xorg、xauth搞X11转发,但要么是装了一堆不必要的GUI组件太臃肿,要么解决的根本不是同服务器Vim之间的共享问题——X11转发是把剪贴板同步到本地PC,不是让服务器上的多个Vim共享内容。
后来终于找到了轻量又有效的解决办法,完全不需要装完整GUI套件,具体步骤如下:
操作步骤
- 先安装两个必要的轻量工具:
其中sudo apt install xvfb xclipxvfb是虚拟X服务器,能在无GUI的环境下模拟X11环境;xclip则用来对接剪贴板操作。 - 启动一个虚拟X服务器会话:
这个命令会新开一个bash终端,所有在这个终端里运行的程序都会处于虚拟X环境中。xvfb-run -a -s "-screen 0 1x1x16" bash - 确认DISPLAY环境变量(如果没自动设置的话):
export DISPLAY=:1 - 现在在这个会话里打开的Vim,就能正常使用
*和"+寄存器了!不管你在多少个SSH终端里打开Vim,只要都连接到这个虚拟X服务器,就能共享剪贴板内容。
举个例子:在第一个Vim里用"+y复制文本,切换到另一个终端的Vim里用"+p,就能直接粘贴刚才复制的内容,完全不需要依赖本地终端的鼠标操作,跟有GUI环境下的体验一样丝滑。
如果你觉得每次手动启动虚拟X会话麻烦,还可以把启动命令和DISPLAY设置加到~/.bashrc里,或者写个简单的启动脚本,下次登录就能直接用。
备注:内容来源于stack exchange,提问作者cpcopy
相关产品推荐
相关产品推荐

