网上的资料比较乱,自己整理了一份,正确与否有待查证!
简介
encoding(enc) 该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等.你可以
把 'encoding' 选项当作是对 vim 内部运行机制的设定.
fileencoding(fenc) 该选项是vim写入文件时采用的编码类型.
fileencodings(fencs) 打开文件时进行编码猜测的编码列表,最后把选择的编码赋值给fenc.
termencoding(tenc) 该选项代表输出到客户终端(Term)采用的编码类型.
默认值
encoding 与系统当前locale相同.修改enc不会转换文件本身的编码,该值只是vim内部处理的编码.
fileencoding vim打开文件时自动辨认其编码,fileencoding就为辨认的值.为空则保存文件时采用
encoding的编码.
termencoding 默认空值,也就是输出到终端不进行编码转换,即为encoding.(应该设置该值与终端使用的
编码一样,Secure CRT为ASCII,Putty为unicode)
强制编码
:edit ++enc=utf8 该条命令表示把utf8作为文件的识别编码重新打开文件,并设置fenc为相同编码.
注:该命令不是修改enc,这点很容易误解.此处的enc不是encoding的缩写.
它只是强制vim把文件识别为该编码,只修改fenc为该编码,并没有修改enc.
我认为的流程:
1,vim根据fencs列表自动识别文件编码,并设置fenc为识别的编码.(自动识别易出错,可通过上述命令强制编码)
2.vim把文件识别的编码(同fenc)转换为enc编码进行内部处理.
3.vim把enc编码转换为tenc编码传送给终端进行显示.
4.vim把enc编码转换为fenc编码进行文件保存.
5.vim把终端输入的值识别为tenc编码并转换为enc编码进行内部编辑处理.
编码的转换都通过调用 iconv库 来完成.
阅读(1562) | 评论(0) | 转发(0) |