分页: 1 / 1

让enca帮助vim正确显示中文

发表于 : 2007-08-04 16:38
roylez
这也许是终级解决方案了,不光简体繁体,其他任何编码应该都没问题。本来就知道enca可以判断文件编码,突然心血来潮想要让它帮vim选择编码。为了避免自己浪费力气,先google了一下,已经有人做好了。http://trific.ath.cx/software/enca/misc/

代码: 全选

function GetEncoding(f)
  let e = system('enca -Pe "' . a:f . '"')
  let e = substitute(e, '/.*', '', '')
  if e =~ 'unknown'
    return 'ascii'
  endif
  return e
endfunc
au BufReadPre * exec "set fencs=" . GetEncoding(expand('<afile>'))

发表于 : 2007-08-07 17:47
madoldman
直接在fencs里面把常用的编码都放进去,用逗号间隔就可以自动识别了吧?我一直这样用,好像没问题,如下
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,gb18030,gbk,gb2312,cp936

发表于 : 2007-08-07 18:30
eexpress
有研究意义

发表于 : 2007-08-07 19:24
rhfcaesar
大力支持!

发表于 : 2007-08-08 9:29
roylez
madoldman 写了:直接在fencs里面把常用的编码都放进去,用逗号间隔就可以自动识别了吧?我一直这样用,好像没问题,如下
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,gb18030,gbk,gb2312,cp936
用enca的好处就是日文韩文阿拉伯文什么的都没有问题,只要字体是全的。

发表于 : 2007-08-08 15:06
madoldman
哦,这样阿

Re: 让enca帮助vim正确显示中文

发表于 : 2008-06-28 20:45
vvvli
roylez 写了:这也许是终级解决方案了,不光简体繁体,其他任何编码应该都没问题。本来就知道enca可以判断文件编码,突然心血来潮想要让它帮vim选择编码。为了避免自己浪费力气,先google了一下,已经有人做好了。http://trific.ath.cx/software/enca/misc/

代码: 全选

function GetEncoding(f)
  let e = system('enca -Pe "' . a:f . '"')
  let e = substitute(e, '/.*', '', '')
  if e =~ 'unknown'
    return 'ascii'
  endif
  return e
endfunc
au BufReadPre * exec "set fencs=" . GetEncoding(expand('<afile>'))
终极做不到, 发现如果是日文的 sjis 会被错误判断为 gbk。。 亚洲编码就是复杂阿。

发表于 : 2008-06-28 20:59
cnkilior
这个是什么脚本?是放在vimrc里面吗?


---------
找了这个很久了。但看了半天不知道他在说什么,苦啊!


---------

发表于 : 2008-06-28 22:24
fortruth
不知道,可不可以用在Konqueror 与 kate 中,让其自动识别 编码。!!

Re: 让enca帮助vim正确显示中文

发表于 : 2008-10-07 18:38
wangtwo
没看懂 :em06 还是用FencView.vim 感谢Ming Bai 的贡献