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

Kir*_*tan 89 vim encoding

这两个命令有什么区别?

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

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

另外,我是否需要使用set或设置fileencoding setglobal

Adr*_*oix 84

TL; DR

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

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

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

更多细节

来自VIMwiki关于使用unicode

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

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

  • 在第一种情况下,您将更改终端中显示的输出编码.在第二种情况下,您将更改所写文件的输出编码. (25认同)
  • 对不起,我不明白.fileencoding做得更准确? (3认同)

Den*_*nis 83

set encoding=utf-8  " The encoding displayed.
set fileencoding=utf-8  " The encoding written to file.
Run Code Online (Sandbox Code Playgroud)

~/.vimrc如果你总是想使用utf-8,你可以设置两个.