这个问题,主要还是一些环境变量设置不对导致。
主要修改的文件包括:
1./var/lib/locales/supported.d/local
2./etc/environment
3.~/.vimrc
首先,
sudo vim /var/lib/locales/supported.d/local
en_HK.UTF-8 UTF-8 en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 zh_CN.GBK GBK #增加 zh_CN.GB2312 GB2312 #增加 zh_CN.GB18030 GB18030 #增加
sudo dpkg-reconfigure locales
然后,编辑/etc/environment
sudo vim /etc/environment 1 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" 2 LANGUAGE="zh_CN:zh:en_US:en" 3 LANG="zh_CN.UTF-8" 4 LC_NUMERIC="zh_CN.UTF-8" 5 LC_TIME="zh_CN.UTF-8" 6 LC_MONETARY="zh_CN.UTF-8" 7 LC_PAPER="zh_CN.UTF-8" 8 LC_IDENTIFICATION="zh_CN.UTF-8" 9 LC_NAME="zh_CN.UTF-8" 10 LC_ADDRESS="zh_CN.UTF-8" 11 LC_TELEPHONE="zh_CN.UTF-8" 12 LC_MEASUREMENT="zh_CN.UTF-8" 13 LC_CTYPE="zh_CN.UTF-8"
其实主要是检查LANGUAGE,LANG,LC_* 这些是不是正确。如果,默认打开的配置文件少了什么项的,给它加上就好了。我之前的就少了LC_CTYPE这一项。这些配置都是系统locale的具体配置,至于它们具体含义,可以自行google。
最后,编辑用户主目录下的.vimrc文件
sudo vim ~/.vimrc
增加:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8
encoding:大约是Vim的内部使用编码,会影响Vim内部的Buffer、消息文字等。
termencoding:大概是在终端环境下使用vim时,通过它告诉vim所使用的编码。
fileencodings:vim在打开文件时,会根据它的配置来猜测文件使用的编码。当vim保存文件时,vim会根据fileencoding来对文件编码,fileencodings可以设置多个,如果fileencoding没有配置,则vim根据fileencondings来编码文件。
最后,重新登录,打开终端,vim,之前的中文都能显示正确了。
原文地址:http://hellocjq.blog.51cto.com/11336969/1771933