LinuxSir.cn,穿越时空的Linuxsir!

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

utf8下如何用vi编辑gb2312编码的文件

[复制链接]
发表于 2005-7-17 17:54:07 | 显示全部楼层 |阅读模式
:set encoding=gb2312后还是乱码

在Gnome console下,调整为gb2312编码,后还是不行
发表于 2005-7-17 19:22:20 | 显示全部楼层
关于这个,很久以前就有帖子了
请你去看这个
http://www.linuxsir.cn/bbs/showt ... mp;highlight=gvimrc
让 vim/gvim 自动识别于处理编码

可以自动正确处理 gb2312 , gbk , gb18030 , big5 , jp , kr 编码


修改 ~/.vimrc

加入

[php]
" 自动补全命令时候使用菜单式匹配列表
set wildmenu

" 启用鼠标
set mouse=a

" 设置多编码文本
" 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
[/php]



另外, 请确保你的 vi 是 vim
而不是残废的 nvi 或什么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-20 17:10:25 | 显示全部楼层
谢谢了,以前用的都是gb2312或gbk第一次用utf8
回复 支持 反对

使用道具 举报

发表于 2005-7-20 22:39:49 | 显示全部楼层
有一个办法,
就是先用iconv转成UTF-8,编辑以后再转回去
:)
以前编辑fcitx配置文件的时候用的就是这个办法
:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-31 13:08:32 | 显示全部楼层
华华为什么用了下面这段代码后就不能在插入模式下通过鼠标右键进行粘贴操作了呢

" 启用鼠标
set mouse=a

这样再右键就会进入“插入(可视)”模式,无法插入内容,那在该情况下应如何把剪贴板里的内容粘贴到文档中去?还有启用鼠标有什么好处 ???
回复 支持 反对

使用道具 举报

发表于 2005-7-31 14:36:48 | 显示全部楼层
晕倒,干嘛这么复杂?
将这个写进~/.vimrc
set fileencodings=ucs-bom,utf8,GB18030,Big5,latin1
就全部搞定了
回复 支持 反对

使用道具 举报

发表于 2005-7-31 16:01:59 | 显示全部楼层
Post by pupilzeng
晕倒,干嘛这么复杂?
将这个写进~/.vimrc
set fileencodings=ucs-bom,utf8,GB18030,Big5,latin1
就全部搞定了


同意
回复 支持 反对

使用道具 举报

发表于 2005-7-31 16:22:32 | 显示全部楼层
homesp :
Linux 下一般是选中 即 复制
点鼠标中键(滚轮)粘贴

启用鼠标后 , 左键是选取开始 , 右键选取结束





pupilzeng:
只用一行 set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1 就可以支持多编码了
下面的其它行是设定不同 locale 下保存编码和终端编码的
回复 支持 反对

使用道具 举报

发表于 2005-7-31 17:20:46 | 显示全部楼层
leafpad可以在保存时选择编码格式,我的realplay只能识别gb*的记录电影地址的ram 而不能识别utf8的ram。简单的文本编辑可以用这个啊
回复 支持 反对

使用道具 举报

发表于 2006-1-13 12:32:47 | 显示全部楼层
Post by pupilzeng
晕倒,干嘛这么复杂?
将这个写进~/.vimrc
set fileencodings=ucs-bom,utf8,GB18030,Big5,latin1
就全部搞定了


:ask :ask :ask
不行的,我原来就是这样写的,还是很多文件打开来是乱码(大部分都没问题),写了这一大堆进去后就没问题了,我也没太看懂哪里起的作用。:)
回复 支持 反对

使用道具 举报

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

本版积分规则

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