这两个命令有什么区别?
set encoding=utf-8
set fileencoding=utf-8
当我想使用 utf-8 时,是否需要同时设置两者?
另外,我需要用set
or设置文件编码setglobal
吗?
在第一种情况下,您将更改终端中显示
set encoding=utf-8
的输出编码。在第二种情况下,您将更改所写入
set fileencoding=utf-8
文件的输出编码。
正如@Dennis 所说,如果您总是想在utf-8
.
"encoding
设置vim 如何在内部表示字符。Utf-8 对于大多数 Unicode 风格都是必需的。"
"fileencoding
设置特定文件的编码(本地到缓冲区); :setglobal 设置默认值。也可以使用空值:默认与 'encoding' 相同。或者您可能想要设置其中一种 ucs 编码,它可能会根据您的特定字符组合使相同的磁盘文件更大或更小。此外,IIUC, utf-8 始终是大端(高位优先),而 ucs 可以是大端或小端,所以如果你使用它,您可能需要设置“炸弹”(见下文)。”
set encoding=utf-8 " The encoding displayed.
set fileencoding=utf-8 " The encoding written to file.
~/.vimrc
如果你总是想使用 utf-8,你也可以在你的中设置两者。
您可以在 .vimrc 中设置变量 'fileencodings'。
这是开始编辑现有文件时考虑的字符编码列表。当一个文件被读取时,Vim 尝试使用第一个提到的字符编码。如果检测到错误,则尝试列表中的下一个错误。当找到一个有效的编码时,'fileencoding' 被设置为它。如果全部失败,'fileencoding' 设置为空字符串,这意味着使用 'encoding' 的值。
看:help filencodings
如果你经常使用例如 cp1252,你可以在那里添加它:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9