linux下终端,vim显示中文为乱码

这个问题,主要还是一些环境变量设置不对导致。


主要修改的文件包括:

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,之前的中文都能显示正确了。



你可能感兴趣的:(vim,乱码,终端)