星期日, 十月 15, 2006

vim encoding

今天安装 ALFS 时不小心改动了主系统 glibc 的 locale(localedef),导致一些程序出问题,比如 xfce4 我开的 fcitx,不行了。刚才使用 vim 发现竟然出现了乱码,于是手工指定 vim 的 encoding:
$ vi ~/.vimrc
set encoding=cp936
用 utf-8 却不行。

另资料:
支持多种编码的 vimrc
set tabstop=4
set number
" set encoding=cp936

" multi-encoding setting
if has("multi_byte")
"set bomb
set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
" CJK environment detection and corresponding setting
if v:lang =~ "^zh_CN"
" Use cp936 to support GBK, euc-cn == gb2312
set encoding=cp936
set termencoding=cp936
set fileencoding=cp936
elseif v:lang =~ "^zh_TW"
" cp950, big5 or euc-tw
" Are they equal to each other?
set encoding=big5
set termencoding=big5
set fileencoding=big5
elseif v:lang =~ "^ko"
" Copied from someone's dotfile, untested
set encoding=euc-kr
set termencoding=euc-kr
set fileencoding=euc-kr
elseif v:lang =~ "^ja_JP"
" Copied from someone's dotfile, untested
set encoding=euc-jp
set termencoding=euc-jp
set fileencoding=euc-jp
endif
" Detect UTF-8 locale, and replace CJK setting if needed
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with multi_byte"
endif

注意 vimrc 的注释!

没有评论: