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

gui*_*ooo 39 vim encoding

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

从文档中我了解到我不应该触及该encoding选项.

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

Nik*_*chi 41

使用

set fileencodings=utf-8
Run Code Online (Sandbox Code Playgroud)

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

此外,将它添加到您的vimrc可能是有意义的,因此您不会经常这样做.


sth*_*sth 22

你应该设置fileencodingsvim打开文件时应该尝试的不同编码,例如:

set fileencodings=ucs-bom,utf-8,latin1
Run Code Online (Sandbox Code Playgroud)

来自:help fileencodings:

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

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


Ric*_*dle 11

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

# vim: set fileencoding=<encoding name> :
Run Code Online (Sandbox Code Playgroud)

  • 我相信“-*-”语法适用于Emacs吗? (2认同)

dmi*_*tri 10

如果vim在打开时未正确显示文件,请使用以下命令指定编码 :set encoding = utf8