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

问题描述 投票:82回答:2

这两个命令有什么区别?

  • set encoding=utf-8
  • set fileencoding=utf-8

当我想使用utf-8时,是否需要设置两者?

另外,我需要使用setsetglobal设置fileencoding吗?

vim encoding
2个回答
77
投票

TL;DR

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

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

正如@Dennis所说,如果你总是想在utf-8工作,可以在〜/ .vimrc中设置它们。

More details

来自wiki of VIM about working with unicode

encoding设置了vim如何在内部表示字符.Utf-8对于大多数Unicode版本都是必需的。”

fileencoding设置特定文件的编码(缓冲区本地);:setglobal设置默认值。也可以使用空值:默认与'encoding'相同。或者你可能想设置其中一个ucs编码,它可能会使相同的磁盘文件变大或变小,具体取决于你特定的字符组合。而且,IIUC,utf-8总是大端(高位优先),而ucs可以是big-endian或little-endian,所以如果你使用它,你可能需要设置'炸弹'(见下文)。“


78
投票
set encoding=utf-8  " The encoding displayed.
set fileencoding=utf-8  " The encoding written to file.

如果你总是想使用utf-8,你也可以在你的~/.vimrc中设置。

© www.soinside.com 2019 - 2024. All rights reserved.