VIM复制粘贴的那些事
说起vim的复制粘贴一直是个比较困扰我的问题,之前一直用gvim,跟系统剪贴板之间的复制粘贴都没有问题,gvim毕竟还需要再开个窗口,麻烦,而且不如vim那样快捷,但vim里面最让我头痛的是复制粘贴问题,想把vim里面的内容复制到其它的地方貌似怎么也不行,粘贴进来的话免强可以,但格式可能会很乱,折腾来折腾去,今天先是发现了个往外复制比较蹩脚的办法:
:set mouse=v
这样鼠标就可以变成文本选择指针的样子,可以选择选择字体,然后点右键选复制,或者CTRL+SHIFT+C,但如果mouse=a这种模式下的话选择之后,右键的复制是灰色的,当然这种情况复制如果有行号的话行号也会被复制进去,所以在复制前先把行号关了,复制完再打开,这办法貌似也能凑合,但着实太不专业,而且太麻烦,远不如用gvim的“+y这种来得方便,“+y这个很多推友表示是可以的,但在我这里不可以,刚经@multiple1902指点,有可能是vim编译的问题。
查看了一下vim版本相关信息:
vim --version
发现clipboard和xterm_clipboard这些选项都是不可使用的功能,这样看来果然是编译问题了,slackware讲求KISS,编译的时候没有加入该选项也可以理解,于是从vim官网svn上check下来源码(话说我为啥check下来的是7.2呢,难道7.3还没有stable…),重新编译。
编译的时候必须要选上的选项一个是–enable-multibyte,如果没加这个选项的话,中文应该就会乱码了。
另外关于剪贴板相关的选项,具体我也不清楚是哪一个,看了下几个相关的选项觉得最有可能是的是–enable-xim,只加了这两个选项之后编译完测试发现vim已经可以和系统剪贴板之间共享数据了,“+y可以使用了,世界一下子就清爽了很多,于是重新加完整选项编译:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-tclinterp \ --enable-pythoninterp \ --enable-perlinterp \ --enable-rubyinterp \ --enable-cscope \ --enable-multibyte \ --enable-xim \ --enable-gtk2-check \ --enable-fontset \ --with-x
OK,编译完成之后removepkg vim删掉之前slackware安装包中提供的vim,然后用makepkg打包安装,哎呀,说起包管理方式我还是最喜欢slackware的tgz包,虽然没有debian的apt那么华丽,但简洁就是美啊。
vim安装完之后已经可以用了,但存在一个问题,vim退出之后终端便会乱码,到网上搜了半天各种关于ubuntu下的解法,拿到slackware上来完全不适用,命令啦路径啦什么的根本找不到,最后搜到一个非常简单的解决办法,说是这个问题是因为gnome-terminal标题名称的不标准,我矁了一眼标题写着“终端”两个字,给出的解决办法是在前后各加一个空格,让系统让为它是英文,我直接把它改成了Terminal,然后再启动vim然后退出就没有问题了。
总算解决了我对于vim的怨念,一直以为是vim的问题,没想到竟然是slackware打包的问题。