vim没有clipboard,没法复制到系统剪切板,通过xclip将复制、删除的内容放到系统剪切板

解决方法:在/etc/vim/vimrc 或者 ~/.vimrc 中添加下面的命令

au TextYankPost * exe system("xclip -selection clipboard", @")

一开始遇到这个问题,网上的解决方案都是安装一个超大的vim,这很不优雅,我喜欢小而高效的解决方案。

后来看到一个使用xclip的方案,这个方案用的是按键映射

vmap y y:call system("xclip -selection clipboard", @")
不知道为什么,这个方案的 并没有起到回车的作用,但是,这条命令起作用了。我就顺着这条命令继续搜索。
结果找到了使用windows自带的clip.exe命令来控制系统剪切板内容的方法,不过这是用自动命令来实现的。这种方法更优雅!
我将两者结合就是最终,在我看来比较好的解决方法。
话说回来,vim这个 autocommand 的作用非常大,我的解决方案里。TextYankPost是指文字被删除或复制,每次TextYankPost被触发,名字符合 * 的文件都会执行exe system("xclip -selection clipboard", @")
exe是vim执行命令,执行的内容是system这是使用shell命令的方法。("xclip -selection clipboard", @")这里面是(shell命令,传递给shell命令的参数),这里@"是指无名寄存器的内容,也可以用@0代替,0里面放的最新复制的内容,"里面放的是最新复制或删除的内容。

相关推荐
加勒比之杰克4 个月前
【Linux】Vim
linux·vim·excel·vim配置·vim基本概念·vim异常退出