最近在研究服务器CentOS系统,习惯了vim比较酷炫的语法高亮,自动缩进等配置。就在CentOS的用户目录下自定义了.vimrc。添加进在几个常用的配置,包括了set nu ,set autoindent,syntax on……但是当用root登陆后发现,用vi打开的文件没有语法高亮,且缩进令人无语。网上查资料,大都是告诉你怎么配置各个参数的。为什么root和其他非root用户会不一样?通常Linux下面都会设置alias vi=vim;然后发现问题出在一个脚本: /etc/profile.d/vim.sh(/etc/profile会自动调用/etc/profile.d下面的所有脚本)
1 if [ -n "$BASH_VERSION" -o -n "$KSH_VERSION" -o -n "$ZSH_VERSION" ]; then
2 [ -x /usr/bin/id ] || return
3 ID=`/usr/bin/id -u`
4 [ -n "$ID" -a "$ID" -le 200 ] && return
5 #for bash and zsh, only if no alias is already set
6 alias vi >/dev/null 2>&1 || alias vi=vim
7 fi
当你是root(id = 0)时,这一句会直接return,而不执行后面的alias操作:
[ -n "$ID" -a "$ID" -le 200 ] && return
只有用户 id > 200时,才会执行: alias vi >/dev/null 2>&1 || alias vi=vim。所以,直接用#注释掉第4行:
4 #[ -n "$ID" -a "$ID" -le 200 ] && return
或者在.bashrc里面增加一句: alias vi=vim,即可解决。