有人可以向我解释,简单来说,编码,文件编码和文件编码设置做什么,我怎么能
a)查看当前文件的编码?
b)更改当前文件的编码?
c)做一些经常使用的其他东西,但现在我的头脑?
你不应该真的修改这个设置;它应该默认为Unicodeish.否则,您无法读取和写入扩展字符集的文件.
Put:如果您不确定,请在vimrc的开头设置编码= utf-8,并且不要再次播放该设置,除非必须使用1字节编码读取一个会话的巨大文件.
fileencoding存储当前缓冲区的编码.
你可以读写这个变量,它会做你想要的.
当您修改它时,该文件将被标记为已修改,并将其保存(:w或:up)到磁盘时,将使用您指定的编码进行写入.
> fileencodings告诉Vim如何检测您读取的每个文件的编码(以确定fileencoding的值).它是按顺序尝试的编码列表,并且与文件的二进制内容一致的第一个编码被假定为正在读取的文件的编码.
设置一次然后忘记它.如果您知道要打开大量文件,并且使用相同的编码,您可能需要更改它,并且您不想失去尝试检查其他编码的时间.默认是ucs-bom,utf8,latin1是不错的IMO,如果你在西欧,因为几乎任何文件将以正确的编码打开.但是,使用此设置,当您打开纯ASCII文件(即,UTF8中的哪个字节表示和任何基于拉丁语的代码页编码中的字节表示相同)时,该文件将被假定为UTF8,并按原样保存.
示例:如果将fileencodings设置为latin1,则打开的每个文件将被读取为latin1,因为尝试使用latin1编码读取文件永远不会失败:256个可能的字节值与字符中的单个字符之间存在双向组.
相反,如果您尝试使用fileencodings = ucs-bom,则latin1 Vim将首先检查字节顺序标记并使用BOM解码Unicode文件,如果失败(无BOM)尝试以UTF-8读取文件,如果它失败(因为UTF8中的某些字节序列无效)在latin1中打开你的文件.
>为了重新加载一个具有正确编码的文件(fileencodings不能正常工作的情况),你可以这样做:e! ENC = LT; the_encoding取代.
TL;博士:
>查看当前文件的编码::echo& fileencoding(short::echo& fenc or:set fenc?or:verb set fenc?)>更改当前文件的编码::set fenc = ……,然后调用:w,根据需要多次.>用正确的编码重新加载你的文件::e! ENC = …