Answers:
如果您正在编辑编码为latin1的文件,则会发现该缓冲区的'fileencoding'设置为latin1。因此,在保存文件之前,您需要手动设置文件编码。
:set fileencoding=utf8
:w myfilename
另请注意,UTF8文件通常以指示字节序的字节顺序标记(BOM)开头。该BOM是可选的,但有些程序使用独有的确定文件的编码。在某些情况下,Vim会编写BOM,但有时不会。要显式设置BOM,请执行以下操作:
:set bomb
欲了解更多信息:help mbyte-options
和:help utf8
和:help bomb
。
set fileencoding=utf-8
重新放置。如果您告诉BOM编写一个,Vim甚至不会注意到该BOM(并且确实会编写它)。要使utf-8正常工作,您需要set encoding=utf-8
在启动设置中进行设置。至少,这就是我系统上的故事。
:w ++enc=utf-8 %
将utf-8编码的文件写入磁盘。
fileencoding
,:w ++enc=utf-8
则一次有效,但下次运行时:w
,'fileencoding'
将使用的值,并且如果尚未更改(明确地在编辑时,或者通过重新加载文件,希望其'fencs'
被适当地设定和实际的编码是公检测的),旧的编码会回来。
fileencoding
也是对该问题的有效答案,这并不意味着IMO会导致不良习惯。好的,那只是我想的问题。