SSH+VIM 共享剪切板实现详解
共享剪切板介绍
Linux和Windows各有优势, 为了发挥他们各自的功能优势, 相信很多Linux服务器和Linux嵌入式开发的小伙伴和我一样在开发中使用最多方式是通过Windows上的SSH客户端(Putty/Xshell/ScureCRT/Mobaxterm, etc)通过SSH远程登陆到一个真实的服务器或者是一个本地Win10启动的virtualbox/vmware虚拟机。这种远程SSH的方式默认情况下有是个缺点就Windows和Linux开发主机的剪切板是不共享的。当然如果如果在Putty上通过鼠标选择+右键来粘贴也是能够实现简单的剪切板共享的。不过这种方式对vim就显得不怎么好用了,毕竟vim的全键盘操作方式和频繁的使用鼠标操作是格格不入的,如果我们希望远程登录的情况下vim的y、p操作也能正常和windows共享剪切板呢,则需要我们实现真正的剪切板共享功能。
共享剪切板的实现原理
想要实现真正的共享剪切,必须有借助大多数Linux发行版中图形界面提供Xwindow机制,这个Xwindow架构这就不详解了,希望了解更多的小伙伴可以自行百度一下,简单的总结一下Xwindow就是Linux下通过它实现了图形显示的请求和显示方法的分离。也就是指服务器上运行的图形程序的界面显示操作可以不局限在本地的显示器,通过Xwindow可以实现图形界面在在其他任何一台机器上显示的效果。Xwindow架构中将Linux本地运行的支持Xwindow的程序称之为Xclient,负责实现图形显示的程序称之为Xserver,程序的图形界面想要在另一个机器上显示的前提条件自然是这个显示机器上需要有完整的Xserver支持程序(Winodws上比较出名的Xserver实现程序有:Xming、Xmanager以及Mobaxterm)以及本地的Linux系统需要启动图形界面(如果你的linux开发主机没有启动图形界面,很不幸,下面的方法都不适用于你)。
Xwindow的这个效果还是挺牛逼的,不过这个功能实际个人感觉没什么太多用处了,毕竟通过完整的远程桌面登陆软件可以获得更加完整好用的远程桌面体验。不过幸运的是这个Xwindow在实现的时候顺便实现了一个系统级剪切板,我们在Ubuntu、CentOS上通过鼠标右键在图形界面上选择复制等操作实际上就将内容复制到Xwindow的这个系统剪切板上来。由于这个剪切板是Xwindow实现的,自然就带了Xwindow最牛逼的远程特性。因此只要我们在本地Win10上启动一个Xserver程序,然后再在Linux开发主机上配置Xwindow使用这个Win