如何更改 VIM 中未命名缓冲区的编码?

如何更改 VIM 中未命名缓冲区的编码?

是否可以?

我只知道如何对命名缓冲区(文件)执行此操作。应该重新打开它

++enc=<encoding>选项。但未命名的缓冲区无法重新打开。

我执行了:set encoding=utf-8,但是VIM中显示的文本仍然无法读取。只有在我将缓冲区保存到文件中,打开它并重新打开它之后,:e ++enc=utf-8才能很好地读取它。但是我注意到有一个错误[ILLEGAL BYTE in line 37]。但我对此很满意。最主要的是内容可读。

我运行时没有错误:set encoding=utf-8,但似乎也没有发生任何事情。

虚拟机7.4

答案1

无需重新打开它 - 在命令模式下,您可以将编码设置为您喜欢的任何内容:

:set encoding=whatever

例如

:set encoding=utf-8

顺便说一句,输入:help encoding-names支持vim的编码列表。

答案2

'encoding'选项是关于 Vim 中文本的内部表示全部缓冲区。 Vim 启动后不应更改此值,并且它不会(至少不会直接)影响缓冲区的编码!

您正在寻找:help 'fileencoding'选项:

:setlocal fenc=...

总结一下:可以在新缓冲区中键入和表示什么类型的字符由该选项控制'encoding'。其“最佳”值是utf-8,因为只有它才能代表任何字符(Unicode 内)。现在,如果您创建了一个未命名的缓冲区并希望将其存储在不同的编码中,则可以在第一次和后续写入时'fileencoding'更改它(例如更改为)。 ucs-2le:w ++enc=...也有效,但仅适用于特定的写入!)

相比之下,对于检测打开的文件的数量,您宁愿配置该'fileencodings'选项。

相关内容