vim读、显、存分析

 
 
(1)读文件 
    VIM打开文件时,并不知道文件的字符编码,所以不得不进行探测。探测是按照一定的优先顺序进行测试。
    依据的标准就是:fileencodings。VIM逐一测试fileencodings变量指定的字符编码方式,找到合适的将其设置为fileencoding变量。
    然后把文件中的编码转换成encoding指定的编码方式,存入文件缓冲区中。 
 
(2)显示文件 
    VIM把文件读取完毕并以encoding编码存放到缓冲区内存之后,会根据termencoding指定的终端编码方式,转换成termencoding编码后,写入到终端。
    此时,终端按照自身的编码属性识别出一个个的字符,调用渲染引擎绘制到屏幕上。
 
(3)保存文件 
    VIM把缓冲区中的encoding编码的字节集合转换成fileencoding编码后写入磁盘,完成文件保存。
 
可以看出,VIM涉及到的3种字符编码之间的转换: 
       读:fileencoding—–> encoding 
       显:encoding ——> termencoding 
       写:encoding ——-> fileencoding
 
设置VIM配置文件~/.vimrc,在配置文件中加入下面的配置:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

 

-----------------
遇到的一个问题
一个文件里边有utf-8与gbk两种格式,vim判断不出格式,fileencoding=latin1,导致两种格式显示都不正确

转载于:https://www.cnblogs.com/wanshuduner/p/10860329.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值