【问题标题】:Changing default encoding of vim to utf-8 not working将 vim 的默认编码更改为 utf-8 不起作用
【发布时间】:2017-06-01 21:18:48
【问题描述】:

我一直在尝试通过在 $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。为什么它不起作用?

【问题讨论】:

    标签: linux ubuntu vim encoding utf-8


    【解决方案1】:

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

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

    当然,如果您在该文件中添加 UTF-8 字符,file 会发现它们并采取相应措施。

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

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

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

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

    “理想的”encodingutf-8。有了这个,你会得到一个fileencodings:ucs-bom,utf-8,default,latin1 的合理列表,以及fileencoding:utf-8 的合理值,只要你留在 UTF-8 的范围内,这几乎可以保证流畅的体验。

    见:

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

    【讨论】:

      猜你喜欢
      • 2015-04-14
      • 2017-02-27
      • 2010-10-29
      • 2016-08-06
      • 1970-01-01
      • 2012-03-10
      • 2012-02-01
      • 2014-03-22
      相关资源
      最近更新 更多