码迷,mamicode.com
首页 > Windows程序 > 详细

配置 .vimrc 解决 Vim / gVim 在中文 Windows 下的字符编码问题

时间:2015-12-17 00:32:31      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:

转载自:-杨博的日志 - 网易博客

Vim / gVim 在中文 Windows 下的字符编码有两个问题:

  1. 默认没有编码检测功能
  2. 如果一个文件本身采用的字符集比 GBK 大(如 UTF-8、UTF-16、GB18030),那么其中无法在 GBK 中对应的字符都会出现乱码,保存时会丢失。即使编辑文件时正确检测出文件格式也无济于事。

第一个问题的解决办法是在 ~/.vimrc 中加入以下配置:

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

第二个问题的解决办法是强制要求 Vim 的内部编码采用某种 UTF 编码。比如 UTF-8:

set encoding=utf-8

但是,把 Vim 的内部编码设为 UTF-8 会带来以下新问题

  1. 使用非 GUI 界面的 vim 时会乱码
  2. 提示信息(比如E492: 不是编辑器的命令: foo)会乱码

要解决非 GUI 界面的 vim 的乱码问题,需要设置终端编码为系统默认编码:

set termencoding=cp936

而要让提示信息不乱码则要需要使用 UTF-8 版本的提示信息:

language messages zh_CN.UTF-8

综上所述,在中文 Windows 下正确配置字符编码,需要把以下内容加入你的 ~/.vimrc 中

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set encoding=utf-8
set termencoding=cp936
language messages zh_CN.UTF-8

特别提醒,以上代码应该放在 .vimrc 的最顶端,因为 vim 运行过程中 set encoding=xxx 是很危险的,会导致各种乱码(参见这里)。我自己所用的完整 .vimrc 放在https://sites.google.com/site/popatry/etc/-vimrc,持续更新。

配置 .vimrc 解决 Vim / gVim 在中文 Windows 下的字符编码问题

标签:

原文地址:http://www.cnblogs.com/echorep/p/5052767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!