将vim的默认编码更改为utf-8不起作用

时间:2017-06-01 21:18:49

标签: linux ubuntu vim encoding utf-8

我一直试图通过在$ HOME / .vimrc文件中写下以下行来更改vim的默认编码

set fileencodings=utf-8
set fileencoding=utf-8

据我所知,第一行使vim尝试使用utf-8编码读取文件,第二行使vim保存文件始终使用utf-8编码。但是当我写一个名为example.txt的文件并且没有写任何特殊字符时,我将其保存以验证

 file -i example.txt

输出:

example.txt: text/plain; charset=us-ascii

如果我在example.txt上写了特殊字符,那么它会正确显示

example.txt: text/plain; charset=utf-8

但即使文件没有特殊字符,我仍希望编码为utf-8。为什么不起作用?

1 个答案:

答案 0 :(得分:3)

file查看文件的内容以确定其编码。如果它只找到ASCII字符,则只能断定该文件是ASCII。

ASCII是UTF-8的子集(许多其他编码的基础),任何程序都无法判断123abc是否是除ASCII以外的任何内容。

当然,如果您向该文件添加UTF-8字符,file会发现它们并采取相应的行动。

所以...在“问题”的Vim方面。

fileencodings是Vim在阅读文件时考虑的编码列表。

fileencoding是Vim在编写特定文件时使用的编码。

两个选项的默认值取决于encoding的值,该值在启动时设置。

“理想”encodingutf-8。有了这个,你就可以获得fileencodingsucs-bom,utf-8,default,latin1的合理列表,以及fileencoding utf-8的合理值,只要你留在这里,它几乎可以保证顺畅的体验UTF-8的范围。

请参阅:

:help 'encoding'
:help 'fileencodings'
:help 'fileencoding'