vim 编码方式配置

vim里面的字符编码主要跟三个参数有关:enc(encoding), fenc(fileencoding)和fencs(fileencodings)

fenc是当前文件(打开已有文件以及新建文件)的编码,你可以通过改变 fenc后再w来将此文件存成不同的编码。比如说,我:set fenc=utf-8然后:w就把文件存成utf-8的了,:set fenc=gbk再:w就把文件存成gbk的了。

这个值对于打开文件的时候是否能够正确地解码没有任何关系。

fencs就是在打开已有文件的时候进行解码的猜测列表,这个值是在vimrc中写死的,文件编码没有百分百正确的判断方法,所以vim只能猜测文件编码。比如我的vimrc里面这个的设置是
set fileencodings=utf-8,gbk

所以我的vim每打开一个文件,尝试fencs列表中的解码格式进行解码,如果中间的某次解码从头到尾都没有出错,那么 vim就认为这个文件是这个编码的,不会再进行后面的尝试了。

这个时候,fenc的值就会被设为vim最后采用的编码值,vim下进入命令行模式用set fenc来查看当前已有文件的编码格式。
当然这个也是有可能出错的,比如你的文件是gbk编码的,但是实际上只有一两个字符是中文,那么有可能他们正好也能被utf-8解码,那么这个文件就会被误认为是utf-8的导致错误解码。

enc,其作用是vim的显示编码格式。不管最后的文件是什么编码的,vim都会将其转换为当前系统编码来进行处理,这样才能在当前系统里面正确地显示出 来,enc就是干这个的。

这3个参数fencs fenc enc都可以在vim的命令行模式下set fencs/fenc/enc查看。

从打开一个已有文件的过程来看这3个参数的区别,首先vim或利用fencs列表去匹配解码文件,正确解码后就设置fenc为当前解码格式,解码完成呢,接着会做一个转码,将文件转为enc所指的编码格式来显示出来。

这就是这3个配置参数的作用!

将gbk格式文件用vim打开,默认编码格式utf8,打开时在vim下部会显示converted,表示编码格式已转换。

打开创建新文件,当然默认的编辑模式是在使用enc指定的编码格式,一般是utf8的,保存文件时我们可以使用fenc指定当前文件编码格式,如set fenc=gbk。就可以实现windows下的正确显示了。

显示编码格式是enc,当前文件编码格式是fenc,vim支持的编码格式是fenc,这中间牵扯到文件格式到显示格式的转换,这样就去分开了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值