让enca帮助vim正确显示中文

Vim、Emacs配置和使用
回复
头像
roylez
论坛版主
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海
送出感谢: 0
接收感谢: 1 次

让enca帮助vim正确显示中文

#1

帖子 roylez » 2007-08-04 16:38

这也许是终级解决方案了,不光简体繁体,其他任何编码应该都没问题。本来就知道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>'))
弄个dropbox空间来备份文件或者做私人代码服务器
配置:[url]git://github.com/roylez/dotfiles.git[/url]
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info
头像
madoldman
帖子: 599
注册时间: 2006-02-27 20:19
来自: works system
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 madoldman » 2007-08-07 17:47

直接在fencs里面把常用的编码都放进去,用逗号间隔就可以自动识别了吧?我一直这样用,好像没问题,如下
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,gb18030,gbk,gb2312,cp936
东西路,南北走
十字路口人咬狗
拿起狗来打砖头
砖头咬了狗一口
图片
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#3

帖子 eexpress » 2007-08-07 18:30

有研究意义
● 鸣学
头像
rhfcaesar
帖子: 2996
注册时间: 2005-11-17 15:45
来自: 湖北
送出感谢: 0
接收感谢: 1 次

#4

帖子 rhfcaesar » 2007-08-07 19:24

大力支持!
头像
roylez
论坛版主
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海
送出感谢: 0
接收感谢: 1 次

#5

帖子 roylez » 2007-08-08 9:29

madoldman 写了:直接在fencs里面把常用的编码都放进去,用逗号间隔就可以自动识别了吧?我一直这样用,好像没问题,如下
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,gb18030,gbk,gb2312,cp936
用enca的好处就是日文韩文阿拉伯文什么的都没有问题,只要字体是全的。
弄个dropbox空间来备份文件或者做私人代码服务器
配置:[url]git://github.com/roylez/dotfiles.git[/url]
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info
头像
madoldman
帖子: 599
注册时间: 2006-02-27 20:19
来自: works system
送出感谢: 0
接收感谢: 0
联系:

#6

帖子 madoldman » 2007-08-08 15:06

哦,这样阿
东西路,南北走
十字路口人咬狗
拿起狗来打砖头
砖头咬了狗一口
图片
vvvli
帖子: 441
注册时间: 2006-10-26 7:02
送出感谢: 0
接收感谢: 0

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

#7

帖子 vvvli » 2008-06-28 20:45

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。。 亚洲编码就是复杂阿。
头像
cnkilior
论坛版主
帖子: 4979
注册时间: 2007-08-05 17:40
送出感谢: 0
接收感谢: 5 次

#8

帖子 cnkilior » 2008-06-28 20:59

这个是什么脚本?是放在vimrc里面吗?


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


---------
头像
fortruth
帖子: 1795
注册时间: 2005-11-06 1:51
来自: 七彩云世界
送出感谢: 0
接收感谢: 0
联系:

#9

帖子 fortruth » 2008-06-28 22:24

不知道,可不可以用在Konqueror 与 kate 中,让其自动识别 编码。!!
佛出寺,求索真世界 For_Truth:Free_Open_Share
OPEN GPG KEY:03D18D95
wangtwo
帖子: 73
注册时间: 2007-05-07 9:42
送出感谢: 0
接收感谢: 0

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

#10

帖子 wangtwo » 2008-10-07 18:38

没看懂 :em06 还是用FencView.vim 感谢Ming Bai 的贡献
回复

回到 “Vim和Emacs”