gVim 错误地猜测文件编码
gVim incorrectly guesses file encoding
我正在 运行ning gVim 8.2,默认配置为 Windows 7,使用俄语(所以所有系统文本和菜单项都是俄语)。当我打开一个包含俄文文本的 utf8 文件时,出于某种原因,它在 cp1251 中显示不正确:
:set encoding?
encoding=cp1251
手动设置 :set encoding=utf8
修复它。
其他与编码相关的选项具有以下值:
:set fileencoding?
fileencoding=
:set fileencodings?
fileencodings=ucs-bom
我发现 vim 在这里帮助混淆,因为它似乎没有解释它是如何猜测编码的。出于某种原因,我尝试过的其他应用程序(Notepad++、Sublime Text 4,甚至 Windows Notepad)都正确地猜测了文件编码。正如我在开头提到的,我 运行 gVim 使用默认配置,所以没有自定义 vimrc 任何地方:
:echo $MYVIMRC
D:\Program Files (x86)\Vim\_vimrc
解决这个问题的正确方法是什么?
创建一个包含 set encoding=utf-8
的 vimrc。这应该是 Windows 上较新版本 Vim 的默认值,从 :help 'encoding'
.
可以看出
'encoding' 'enc' string (default for MS-Windows: "utf-8",
otherwise: value from $LANG or "latin1")
Windows 上的默认值以前是 latin1,但最近更改为 utf-8。
这应该足以解决您的问题。
再次来自 :help 'encoding'
:
Sets the character encoding used inside Vim. It applies to text in
the buffers, registers, Strings in expressions, text stored in the
viminfo file, etc. It sets the kind of characters which Vim can work
with.
Vim 使用 fileencodings
(复数)来尝试猜测文件的编码。 fileencoding
(单数)是 Vim 为您的文件猜测的(或您设置的)编码。您可能不需要更改其中任何一项。
我正在 运行ning gVim 8.2,默认配置为 Windows 7,使用俄语(所以所有系统文本和菜单项都是俄语)。当我打开一个包含俄文文本的 utf8 文件时,出于某种原因,它在 cp1251 中显示不正确:
:set encoding?
encoding=cp1251
手动设置 :set encoding=utf8
修复它。
其他与编码相关的选项具有以下值:
:set fileencoding?
fileencoding=
:set fileencodings?
fileencodings=ucs-bom
我发现 vim 在这里帮助混淆,因为它似乎没有解释它是如何猜测编码的。出于某种原因,我尝试过的其他应用程序(Notepad++、Sublime Text 4,甚至 Windows Notepad)都正确地猜测了文件编码。正如我在开头提到的,我 运行 gVim 使用默认配置,所以没有自定义 vimrc 任何地方:
:echo $MYVIMRC
D:\Program Files (x86)\Vim\_vimrc
解决这个问题的正确方法是什么?
创建一个包含 set encoding=utf-8
的 vimrc。这应该是 Windows 上较新版本 Vim 的默认值,从 :help 'encoding'
.
'encoding' 'enc' string (default for MS-Windows: "utf-8",
otherwise: value from $LANG or "latin1")
Windows 上的默认值以前是 latin1,但最近更改为 utf-8。
这应该足以解决您的问题。
再次来自 :help 'encoding'
:
Sets the character encoding used inside Vim. It applies to text in
the buffers, registers, Strings in expressions, text stored in the
viminfo file, etc. It sets the kind of characters which Vim can work
with.
Vim 使用 fileencodings
(复数)来尝试猜测文件的编码。 fileencoding
(单数)是 Vim 为您的文件猜测的(或您设置的)编码。您可能不需要更改其中任何一项。