如何在VIM中设置文件的字符编码

时间:2009-07-23 22:30:47

标签: vim encoding

我正在使用:set fileencoding=utf-8并且文件已正确保存,但下次打开时,我会收到乱码,:set fileencoding?表示该选项未设置。

从我理解的文档中,我不应该触及encoding选项。

在VIM中为文件指定编码的正确方法是什么?

6 个答案:

答案 0 :(得分:41)

使用

set fileencodings=utf-8

(最后带有s),其中可以包含不同编码的列表。 Vim会尝试从左到右列出的编码,直到一个工作,它会将fileencoding设置为该编码。如果没有工作,则fileencoding设置为空字符串,这将导致默认行为。

另外,将它添加到你的vimrc可能是有意义的,所以你不会经常这样做。

答案 1 :(得分:22)

您应该将fileencodings设置为vim在打开文件时应尝试的不同编码,例如:

set fileencodings=ucs-bom,utf-8,latin1

来自:help fileencodings

  

这是一个字符编码列表   在开始编辑时考虑   现有文件。读取文件时,Vim会尝试使用第一个文件   提到的字符编码。如果检测到错误,则检测下一个错误   在列表中尝试。当找到有效的编码时,   fileencoding设置为它。

您最好将这些设置放在.vimrc文件中,这样每次启动vim时都不必手动输入它们。

答案 2 :(得分:11)

您可以将该指令放入文件中的注释中:

# vim: set fileencoding=<encoding name> :

答案 3 :(得分:9)

如果vim在打开时没有正确显示您的文件,请指定编码 :set encoding = utf8

答案 4 :(得分:3)

  • 开:

    vim ~/.vimrc
  • 添加:

    set fileencodings=utf-8
    set encoding=utf-8
    
  • 输入以下内容保存并关闭:

    :wq

答案 5 :(得分:2)

我读了很多关于VIM编码的帖子。我发现最重要的诀窍是: 在打开文件之前,您应该首先打开VIM,然后使用命令: 编辑++ enc = filename.ext 它可以处理大多数有关编码和文件编码的问题。

关键点包括:

  1. 您必须正确显示字符集!如果没有正确显示,任何其他操作都可能导致无法恢复的问题。
  2. 文件正确显示后,如果需要,您可以 “:设置fileencoding = UTF-8”
    :写“ 让VIM始终可以正确显示它。
  3. 因为我不是英语母语用户,所以我认为我的方式可以验证。