我不希望 vim 以任何编码特定的方式解释我的数据。换句话说,当我在 vim 中时,我希望光标所在的字符对应于实际的byte,而不是那个字节的 utf* (等)表示。
我需要使用 vim 来分析由其他人(使用其他软件)造成的 Unicode 转换错误引起的问题,所以重要的是我看到了实际存在的内容。
例如,在 Cygwin 的 vim 中,我已经能够将 UTF-8 BOM 视为
 [开始文件数据]
太棒了。我认为这是一个 UTF-8 BOM,如果我想知道每个字符的十六进制是什么,我可以将光标放在字符上并使用“ga”。
我最近有一台合适的 Linux 机器(Fedora)。在 /etc/vimrc 中,存在这一行
设置文件编码=ucs-bom,utf-8,latin1
当我查看这台机器上的 UTF-8 BOM 时,BOM 完全隐藏。
当我将以下行添加到 ~/.vimrc
设置文件编码=latin1
我懂了

前 3 个字符是 BOM(当对它们使用 ga 时)。我不知道最后三个字符是什么。
有一次,我什至看到 UTF-8 BOM 表示为“feff”——UTF-16 BOM。
无论如何,你看到了我的问题。我需要准确查看文件中的内容,而无需 vim 为我解释字节。我知道我可以使用 xxd、od 等,但 vim 作为分析工具一直非常方便。另外,我希望能够编辑文件并保存它们而不会出现任何转换问题。
谢谢你的帮助。