Vim 如何将多字节字符简单地视为一个字节序列?

Vim 如何将多字节字符简单地视为一个字节序列?,vim,multibyte-characters,Vim,Multibyte Characters,我想用vim处理二进制文件。我用-b运行vim,我有isprint=和display+=uhex。我正在使用以下状态行: %我不知道为什么我的isprint被忽略了仔细阅读:h'isprint'。“从空格(ASCII 32)到“~”(ASCII 126)的字符总是直接显示,即使它们没有包含在“isprint”中或被排除在外。”@Matt我一定是表达错了。我对可打印字符显示为它们自己很满意。我说的是超出范围的“Ô。如果是“A”,我希望看到“A”。%o和isprint都使用Vim缓冲区(不是磁盘上

我想用vim处理二进制文件。我用
-b
运行vim,我有
isprint=
display+=uhex
。我正在使用以下
状态行


%
我不知道为什么我的isprint被忽略了
仔细阅读
:h'isprint'
。“从空格(ASCII 32)到“~”(ASCII 126)的字符总是直接显示,即使它们没有包含在“isprint”中或被排除在外。”@Matt我一定是表达错了。我对可打印字符显示为它们自己很满意。我说的是超出范围的“Ô。如果是“A”,我希望看到“A”。
%o
isprint
都使用Vim缓冲区(不是磁盘上的文件!),该缓冲区根据
encoding
设置进行编码,即UTF-8。在UTF-8中,代码变成了两个多字节字符。现在
:h'isprint'
说:“总是包括256个及以上的多字节字符”。@Matt谢谢,我错过了那个位!所以唯一的方法就是我最终得到的结果,强制
编码
为8位,然后为终端重新编码?啊,这太糟糕了,因为
编码
只是全局的,所以它会影响其他窗口、菜单、消息等,而
二进制
是本地缓冲区,所以,事实上,甚至不需要启动专用的
vim-b
实例。但我没有看到更好的。