hexviewer插件需手动激活二进制关联或配置binary_file_patterns,其十六进制视图不解析编码、不可编辑,区别于内置hexadecimal语法,大文件建议用xxd等命令行工具。

HexViewer插件装完没反应?检查是否真正激活了二进制文件关联
装完 HexViewer 后直接双击 .bin 或 .exe 文件还是用文本方式打开,大概率是 Sublime 没把这类后缀识别为“二进制”——它默认只对明确标记为 binary 的文件类型触发 HexViewer。
- 手动触发:打开二进制文件后,按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入HexViewer: View in Hex回车 - 自动关联:在
Preferences → Settings – Syntax Specific里,为当前文件添加:"binary_file_patterns": ["*.bin", "*.exe", "*.dll", "*.so"]
,但注意这仅影响新打开的文件,已有标签页需重新加载 - 别依赖文件扩展名:Sublime 实际靠文件头(magic bytes)判断是否为二进制,
.txt文件如果开头是\x00\x01,也可能被当成 binary;反之,某些.bin若全是可打印 ASCII,HexViewer 就不会自动介入
为什么十六进制视图里中文显示成乱码或空格?
HexViewer 渲染的是原始字节流,不进行字符编码解码。所谓“乱码”,其实是你在用 UTF-8 眼光看 GBK/Shift-JIS/甚至纯 raw bytes 的结果——它没做错,只是没“翻译”。
- HexViewer 不解析编码,只分组显示字节(如
68 65 6c 6c 6f)和对应 ASCII 可见字符(hello),非 ASCII 字节一律显示为. - 想确认某段字节实际含义?复制十六进制值(如
e4 bd a0),粘贴到在线工具查 UTF-8 编码,或用 Python 快速验证:bytes.fromhex("e4 bd a0").decode("utf-8") # 输出"你" - 别试图在 HexViewer 里编辑中文:它不支持反向编码写入,强行修改字节可能导致文件损坏
HexViewer 和内置的 “Hexadecimal” 语法高亮有什么区别?
Sublime 自带的 Hexadecimal 语法只是把文件当纯文本着色(比如把 0x1A 标成常量),而 HexViewer 是独立视图模式,强制以固定列宽(通常 16 字节/行)呈现原始数据,且不可编辑。
-
HexViewer: View in Hex会新建只读标签页,左侧地址偏移、中间十六进制、右侧 ASCII 映射,三栏严格对齐 - 内置
Hexadecimal语法适用于源码中嵌入的 hex 字面量(如 C 的0xFF或 Python 的b"\x00\x01"),不是用来查看整个二进制文件的 - 性能上:大文件(>10MB)用 HexViewer 加载慢且卡顿,此时不如用命令行
xxd或hexdump -C配合less
Mac 上 HexViewer 报错 “No module named ‘subprocess32’” 怎么办?
这是老版本 HexViewer(v2.x)硬依赖 Python 2 的 subprocess32,而 Sublime Text 4 默认用 Python 3.8+,模块已废弃。
- 最稳方案:卸载旧版,改用社区维护的 HexViewer v3+(作者已重写,完全兼容 ST4)
- 手动修复风险高:不要 pip install subprocess32 到 Sublime 的 Python 环境——它的 site-packages 是只读沙盒,强行写入可能破坏更新机制
- 验证是否生效:重启 Sublime,打开任意二进制文件,调出命令面板搜
HexViewer,能看到View in Hex且无报错即成功
HexViewer 的核心价值不在“炫酷”,而在快速确认字节布局、校验魔数、比对 patch 前后差异——但它不处理编码逻辑,也不替代专业十六进制编辑器。真要改二进制,别在这儿点来点去。











