如何让vim识别文件的编码?

Tho*_*zma 18 vim

我注意到大多数时候,当使用除"标准英语"之外的某些编码时,vim无法识别并且无法正确显示字符.
通过打开一些使用cp437代码页的网络上的ascii图形或类似文件,可以很容易地看到这一点.

有没有办法在打开文件时让vim检查编码,并用正确的文件打开它?

你使用什么编码,作为最"便携"的编码(那些用户最多的问题最少)?

Bri*_*new 20

Vim需要检测编码,这将是有问题的,因为文件通常不会明确地声明它们的编码(一个明显的例外是标题中带有编码属性的XML文件).

您可以强制Vim使用不同的编码重新加载文件:

:e ++enc=cp437
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以在.vimrc中设置默认编码.

此页面包含更多信息和链接,尤其是wrt.编辑Unicode.UTF-8是使用最广泛的编码,您可能应该使用默认编码.


Mic*_*per 6

您可以使用 vim 模型行来设置文件的编码。这只是文件前五行中的一条注释,以vi: set fileencoding=cp437.

您也可以以“vim:”开头,而不是“vi: set”,但后者使其与更多编辑器兼容。您肯定需要这些前缀和“文件编码”之间的空格,或者您想要设置的任何选项。不过,该fileencoding选项应该可以解决您的问题。

因此,在 Python 或 .rc 文件中,您可以将其放在文件的顶部:

# vi: set fileencoding=cp437
Run Code Online (Sandbox Code Playgroud)

在 Java、C、C++、JavaScript 等中,这样写:

// vi: set fileencoding=cp437
Run Code Online (Sandbox Code Playgroud)

要了解更多信息,请在 vim 中输入:help modeline