当前位置: 首页 > 知识库问答 >
问题:

gVim错误地猜测文件编码

牧璞
2023-03-14

我在Windows 7上用俄语运行默认配置的gVim 8.2(因此所有系统文本和菜单项都是俄语)。当我打开包含俄语文本的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

解决这个问题的正确方法是什么?

共有1个答案

常自怡
2023-03-14

创建一个vimrc,其中设置编码=utf-8。这应该是Windows上更新版本的Vim中的默认设置,可以从帮助“编码”中看到。

'encoding' 'enc'    string (default for MS-Windows: "utf-8",
                    otherwise: value from $LANG or "latin1")

Windows上的默认值过去是latin1,但最近更改为utf-8。

这应该足以解决您的问题。

再次来自:帮助“编码”:

    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使用文件编码(复数)来尝试猜测您的文件的编码。文件编码(单数)是Vim为您的文件猜测(或您已设置)的编码。您可能不需要更改其中任何一个。

 类似资料:
  • 主要内容:如何实现错误猜测技术?,错误猜测的目的,错误猜测方法的示例错误猜测是一种技术,它没有用于识别错误的特定方法。它基于测试分析师的经验,测试人员使用该经验来猜测软件的有问题区域。它是一种黑盒测试技术,没有任何定义的结构来查找错误。 如何实现错误猜测技术? 该技术的实现取决于具有类似应用的先前经验的测试者或分析员的经验。它只需要经验丰富的测试人员快速猜错技术。这种技术用于查找正式黑盒测试技术可能无法轻易捕获的错误,它是在所有正式技术之后完成的。 错误猜测技术的

  • 我有一个编码问题。 我有数百万个文本文件需要为语言数据科学项目进行解析。每个文本文件都编码为UTF-8,但我刚刚发现其中一些源文件的编码不正确。 例如我有一个中文文本文件,编码为UTF-8,但文件中的文本如下所示: 当我使用Python检测此中文文本文件的编码时: Chardet告诉我文件编码为UTF-8: UnicodeDammit还告诉我该文件编码为UTF-8: 同时,我知道这不是UTF-8,

  • Vim 是 Linux 上的著名的文本编辑器,它是早年的 Vi 编辑器的加强版。这个 GVim 是 Windows 版的,并且有了标准的windows风格的图形界 面,所以叫g(graphical)Vim。这是一个国际版本,会根据安装的平台自动选择相应语言包,支持中文及其各种编码,连界面也是中文的,请放心使 用。这个极具Unix特色和风格(simple is the best)的编辑器相信会给您带来不同的感受。

  • My mechanic told me, I couldn’t repair your brakes, so I made your horn louder. — Steven Wright 通常,当出现问题时,我们会在继续运行前先停止它并修复错误。然而, 当以守护进程模式运行时,Puppet 会忽略配置清单的编译错误, 仅从缓存中应用最近一次已知可运行的版本。这个行为是由 usecacheonf

  • 问题内容: 我的日常工作涉及使用Perl进行编码。在家里,我玩Python和Erlang。对于Perl,我想将代码缩进两个空格。而对于Python,标准为4。此外,我还有一些用于打开函数声明的键绑定,我想与所有编程语言一起使用。如何在gVim中实现? 与之类似,是否有一种方法可以维护每种编程语言或类似语言的配置文件? 问题答案: 您应该能够通过利用文件类型来进行处理…例如,将其添加到vimrc中(

  • 问题内容: 在工作中,似乎没有一周没有编码相关的混乱,灾难或灾难。问题通常来自程序员,他们认为他们无需指定编码就可以可靠地处理“文本”文件。但是你不能。 因此,已决定从此以后禁止文件以或结尾的文件名。他们的想法是,这些扩展使临时程序员误以为对编码不满意,这会导致处理不当。根本没有扩展将是更好的选择,因为至少您 知道 自己不知道拥有什么。 但是,我们不会走那么远。相反,您将期望使用以编码结尾的文件名