一次超崩溃的centos下vim中文乱码问题

来源:互联网 发布:linux mmap 共享内存 编辑:程序博客网 时间:2024/05/09 04:00

同事反映在一台服务器上用vim打开含有中文的文件,会出现乱码。按照之前的经验,这个乱码问题很好解决,只要修改.vimrc文件即可,就给同事说,稍等,马上搞定。结果崩溃的历程开始了。。。

1、首先确认文件的编码:

 [root@mullen tmp]$ file b.pyb.py: UTF-8 Unicode text

OK,编码正常。

2、确认ssh终端的编码,也为UTF8

3、确认服务器用户目录下是否有.vimrc文件,以及其中的配置

 [slide@mullen tmp]$ cat ~/.vimrc set fileencodings=utf-8,gb2312,gbk,cp936,big5,ucs-bomset encoding=utf-8set termencoding=utf-8set fileencoding=utf-8

OK,vim设置也正常

4、继续确认系统编码

 [slide@mullen tmp]$ cat /etc/sysconfig/i18nLANG="en_US.UTF-8:zh_CN.gbk:zh_CN.UTF-8"SUPPORTED="zh_CN.UTF-8:zh_CN.GB2312:zh_CN.gbk:zh_CN:en_US.UTF-8:en_US:en"SYSFONT="latarcyrheb-sun16"LC_ALL="en_US.UTF-8"export LC_ALL

也正常,这下傻眼了。。。问题到底出在哪呢?google,翻墙,均未发现任何有用的信息,翻来覆去就是修改vimrc,i18n的配置

5、俺就不信,继续寻求,查看vim的安装

 [slide@mullen tmp]$ rpm -qa | grep vimvim-minimal-7.0.109-6.el5vim-enhanced-7.0.109-6.el5vim-common-7.0.109-6.el5

也正常

6、系统的字体

 [slide@mullen tmp]$ rpm -qa | grep fontxorg-x11-font-utils-7.1-2libXfontcache-1.0.2-3.1fontconfig-2.4.1-7.el5xorg-x11-fonts-base-7.1-2.1.el5libfontenc-1.0.2-2.2.el5bitstream-vera-fonts-1.10-7bitmap-fonts-0.3-5.1.1xorg-x11-fonts-Type1-7.1-2.1.el5fontconfig-devel-2.4.1-7.el5chkfontpath-1.10.1-1.1fontconfig-devel-2.4.1-7.el5libXfont-1.2.2-1.0.3.el5_1fontconfig-2.4.1-7.el5fonts-chinese-3.02-12.el5urw-fonts-2.3-6.1.1

关键的几个都装了,连fonts-chinese都安装了。

7、查看系统locale

 [slide@mullen tmp]$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_MESSAGES to default locale: No such file or directorylocale: Cannot set LC_ALL to default locale: No such file or directory

咦?报错,难道是这里的问题?赶紧的google,有人说是缺少glibc-common这个库,

 [slide@mullen tmp]$ rpm -qa | grep glibc-commonglibc-common-2.5

明明有这个库啊,不过发现这个库的名字不正常,用yum install glibc-common更新一下

果然需要更新,更新完毕后再看

 [slide@mullen tmp]$ rpm -qa | grep glibc-commonglibc-common-2.5-81.el5_8.2

再执行locale

 [slide@mullen tmp]$ localeLANG=en_US.UTF-8:zh_CN.gbk:zh_CN.UTF-8LC_CTYPE="en_US.UTF-8"LC_NUMERIC="en_US.UTF-8"LC_TIME="en_US.UTF-8"LC_COLLATE="en_US.UTF-8"LC_MONETARY="en_US.UTF-8"LC_MESSAGES="en_US.UTF-8"LC_PAPER="en_US.UTF-8"LC_NAME="en_US.UTF-8"LC_ADDRESS="en_US.UTF-8"LC_TELEPHONE="en_US.UTF-8"LC_MEASUREMENT="en_US.UTF-8"LC_IDENTIFICATION="en_US.UTF-8"LC_ALL=en_US.UTF-8

这次locale正常了,喜滋滋的打开文件,还是乱码。。。不是吧,真的快要崩溃了。

8、折腾呀,折腾了2天,就快要放弃的时候

偶尔发现软件包的目录(我每台服务器上有个专门的目录来存放软件包)有个vim-7.3的文件夹和vim-7.3.tar.bz2的文件,莫非我手动安装过vim?

赶紧查看系统的vim命令

 [slide@mullen tmp]$ whereis vimvim: /usr/bin/vim /usr/local/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz [slide@mullen tmp]$ ls -al /usr/bin/vim-rwxr-xr-x 1 root root 2873984 Sep 20  2009 /usr/bin/vim[slide@mullen tmp]$ ls -al /usr/local/bin/vim-rwxr-xr-x 1 root root 1509016 Jul 14  2011 /usr/local/bin/vim

这2个vim的时间不对,分别执行一下发现/usr/bin/vim是7.0.237而/usr/local/bin/vim是7.3版本,看情形应该是7.3这个版本的vim对中文支持不是很好,移动到其他目录,然后做个软连接

 [slide@mullen tmp]mv /usr/local/bin/vim /usr/local/bin/vim73[slide@mullen tmp]ln -s /usr/bin/vim /usr/local/bin/vim
原创粉丝点击