gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:57 25 4
gpt4 key购买 nike

我一直在尝试通过在 $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,即使文件没有特殊字符。为什么它不起作用?

最佳答案

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

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

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

那么……“问题”的 Vim 方面。

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

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

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

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

参见:

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

关于linux - 将 vim 的默认编码更改为 utf-8 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44317240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com