在Vim中将编码和文件编码设置为utf-8

在Vim中将编码和文件编码设置为utf-8,vim,encoding,Vim,Encoding,这两个命令之间有什么区别 set encoding=utf-8 set fileencoding=utf-8 当我想使用utf-8时,是否需要同时设置这两个参数 另外,是否需要使用set或setglobal设置文件编码?TL;博士 在第一种情况下,使用set encoding=utf-8,您将更改终端中显示的输出编码 在第二种情况下,使用set fileencoding=utf-8,您将更改写入的文件的输出编码 如@Dennis所述,如果您总是想在utf-8中工作,可以在~/.vimrc中设

这两个命令之间有什么区别

  • set encoding=utf-8
  • set fileencoding=utf-8
当我想使用utf-8时,是否需要同时设置这两个参数

另外,是否需要使用
set
setglobal
设置文件编码?

TL;博士 在第一种情况下,使用
set encoding=utf-8
,您将更改终端中显示的输出编码

在第二种情况下,使用
set fileencoding=utf-8
,您将更改写入的文件的输出编码

如@Dennis所述,如果您总是想在
utf-8
中工作,可以在~/.vimrc中设置这两个参数

更多细节 从

编码
设置vim在内部表示字符的方式。Utf-8对于大多数Unicode格式是必需的。”

fileencoding
设置特定文件的编码(本地到缓冲区);:setglobal设置默认值。也可以使用空值:它默认为与“encoding”相同。或者您可能希望设置一个ucs编码,它可能会使同一磁盘文件变大或变小,具体取决于您的特定字符组合。此外,IIUC、utf-8始终是大端(高位优先)虽然ucs可以是大端或小端,但如果使用它,可能需要设置“bomb”(见下文)


如果您总是想使用utf-8,那么您可以在
~/.vimrc
中设置这两个变量。

您可以在.vimrc中设置变量“fileencodings”

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

请参阅
:帮助文件编码

如果您经常使用例如cp1252,您可以将其添加到:

set fileencodings=ucs-bom,utf-8,cp1252,default,latin9

对不起,我不明白。fileencoding更确切地做什么?在第一种情况下,您将更改终端中显示的输出编码。在第二种情况下,您将更改写入的文件的输出编码。+1表示简短而甜蜜的回答,而不是仅仅重复官方文档!:)如果需要,直接从comm临时更改和line
vim-c“set encoding=utf-8”file.ext
。请注意,在您的区域设置编码比在vim中强制编码更安全,以防您编辑非unicode文件。您将得到与默认为区域设置相同的结果,并且如果遇到任何外来字符,您将不会弄乱任何外来字符。
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9