LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 981|回复: 3

vim编辑的文件在RedHat和SuSe之间出现的编码问题?

[复制链接]
发表于 2007-3-26 09:34:10 | 显示全部楼层 |阅读模式
RedHat的LANG=zh_CN.gb18030, SuSe的LANG=zh_CN.Utf8。在RedHat下用vim写了个文件,包含中文,保存的编码也是gb18030。可在SuSe下打开该文件显示不了中文都是乱码,SuSe中的.vimrc里面的fileencodings=ucs-bom,utf-8,chinese。请教要怎么设置才能在SuSe中正常显示该文件的中文? 谢谢了
发表于 2007-3-26 11:14:34 | 显示全部楼层
我有一个支持多编码的.vimrc,内容如下:
" 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 utf8 to support GB, euc-cn == utf8
    set encoding=utf8
    set termencoding=utf8
    set fileencoding=utf8
  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

你可以试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-26 11:44:57 | 显示全部楼层
谢谢楼上的
问题有所解决,在Suse下的fileencodings用chinese好像不好,还是改成了gb18030,显示就正常了。而Suse下用utf-8保存的文件在上面的RetHat下打开时,还得把encoding设成gb2312或者是cp936才显示正常。
回复 支持 反对

使用道具 举报

发表于 2007-3-26 12:21:02 | 显示全部楼层
祝你好运吧,呵呵
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表