是否可以?
我只知道如何对命名缓冲区(文件)执行此操作。应该重新打开它
++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'
选项。