今天虽然是愚人节,也得写点有用的东西,不能忽悠大家当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一下。但是用的时候确实容易弄糊涂——会误以为它一会儿变色,一会儿不变色了。