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,在配置文件中加入下面的配置:
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8
----------------- 遇到的一个问题 一个文件里边有utf-8与gbk两种格式,vim判断不出格式,fileencoding=latin1,导致两种格式显示都不正确

更多精彩