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

解决方法:确定你有xclip,如果没有就sudo install xclip安装一个,然后在/etc/vim/vimrc 或者 ~/.vimrc 中添加下面的命令

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

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

posted @ 2024-03-13 21:00  惠灰灰  阅读(156)  评论(0编辑  收藏  举报