我的Vim为什么不变色了

今天虽然是愚人节,也得写点有用的东西,不能忽悠大家当April fool。最近用的机器有点多,换来换去的,发现有个机器的Vim竟然不会变色了。试了几次,发现了一个细节的区别:这台机器的vim的可执行文件名是vi,不是vim,而且它不是个符号链接。以下是详细的过程:

$ vi –version | grep syntax -ex_extra        -mouse_jsbterm   -syntax

“-syntax” 说明语法变色这个特性默认就是没有编译进去的,所以它不变色了。仔细查看“vi –version”的输出,会发现这是一个阉割版:

Small version without GUI.  Features included (+) or not (-): 最自然的想法是找到那个不Small的版本,给它安装上。 $ sudo yum install vim-enhanced Transaction check error:   file /usr/share/man/man1/vim.1.gz from install of vim-common-2:7.4.179-1.fc20.x86_64 conflicts with file from package vim-minimal-2:7.4.027-2.fc20.x86_64 看来今天的运气不太好,安装个包都要报错。卸载vi吧,它又说sudo依赖它。估计是二者的版本有点区别,先更新下vi再说。 $ sudo yum update vim-minimal 果然,这回好了。 $ sudo yum install vim-enhanced 再来确认一下版本信息: $ vim --version | grep syntax +acl             +farsi           +mouse_netterm   +syntax 多了一堆的特性。而且输出中有一行: Huge version without GUI.  Features included (+) or not (-): 需要注意的是,vi和vim二者都存在,而且前者没有link到后者。这导致用vi启动的时候还是不会变色的。处理这个虽然简单,例如,可以alias一下或者mv掉那个vi,重新link一下。但是用的时候确实容易弄糊涂——会误以为它一会儿变色,一会儿不变色了。
Written on April 1, 2014