Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VIM中设置文件的字符编码_Vim_Encoding - Fatal编程技术网

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

如何在VIM中设置文件的字符编码,vim,encoding,Vim,Encoding,我使用的是:set fileencoding=utf-8,文件保存正确,但下一次打开它时,会出现乱码,并且:set fileencoding?表示未设置该选项 从文档中我了解到我不应该触摸编码选项 在VIM中为文件指定编码的正确方法是什么?使用 set fileencodings=utf-8 (结尾有一个s)可以包含不同编码的列表。Vim将尝试从左到右列出的编码,直到其中一个编码起作用,并将fileencoding设置为该编码。如果无工作,则fileencoding设置为空字符串,这将导致默认

我使用的是
:set fileencoding=utf-8
,文件保存正确,但下一次打开它时,会出现乱码,并且
:set fileencoding?
表示未设置该选项

从文档中我了解到我不应该触摸
编码
选项

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

使用

set fileencodings=utf-8
(结尾有一个s)可以包含不同编码的列表。Vim将尝试从左到右列出的编码,直到其中一个编码起作用,并将fileencoding设置为该编码。如果无工作,则fileencoding设置为空字符串,这将导致默认行为


另外,将该指令添加到vimrc中可能是有意义的,这样您就不会经常这样做。

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

# vim: set fileencoding=<encoding name> :
#vim:set fileencoding=:

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

set fileencodings=ucs-bom,utf-8,latin1
:帮助文件编码

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


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

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

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

要点包括:

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

    • 开放式:

      vim ~/.vimrc
    • 加:

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

      :wq

    Nice,这类似于“-*-”语法吗?@Jonas:恐怕我对此一无所知。我相信“-*-”语法适用于Emacs?它也适用于
    Python
    脚本,尽管我相信这个想法起源于Emacs。您可以使用:e++enc=(请参阅)重新加载已打开的文件.无需在不打开文件的情况下首先启动vim。