HexViewer 插件仅支持只读十六进制查看,不可编辑二进制文件;其“Toggle Hex Mode”命令仅对已成功加载为文本的文件生效,而二进制文件需通过“HexViewer: View in Hex”手动打开,编辑应使用 xxd、HxD 或 VS Code Hex Editor 等专用工具。

HexViewer 插件不能编辑二进制文件——它只提供只读十六进制视图。任何在该视图中“修改并保存”的操作,实际写入的是 ASCII 字符串(比如你改了 48656C6C6F,保存后得到的是 10 个字节的文本,不是 5 字节的 b"Hello"),原始文件结构必然损坏。
为什么 HexViewer: Toggle Hex Mode 经常不生效
这个命令只对「已成功加载为文本的文件」起作用。而二进制文件(尤其是含 \x00、非法 UTF-8 头部或 magic bytes 不匹配的)根本不会被 Sublime 加载成有效标签页——它要么报 invalid start byte,要么显示为空白或乱码。此时命令无目标可作用。
正确打开二进制文件的唯一方式是 HexViewer: View in Hex
它绕过 Sublime 的文本加载流程,直接读取原始字节流:
- 必须先按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入完整命令名
HexViewer: View in Hex并回车 - 手动选择目标文件(双击、右键“用 Sublime 打开”、拖入窗口全部无效)
- 若命令面板里没出现该条目,说明插件未装对、依赖缺失(如 macOS 上缺
subprocess32),或配置里禁用了 binary 支持
想改字节?别在 HexViewer 里硬改
它不可编辑,强行复制 hex 列 → 粘贴修改 → 保存,只会生成一个纯文本文件,和原二进制毫无关系。真正需要编辑时:
- Linux/macOS:用
xxd file.bin | vim -查看,编辑后用xxd -r还原(注意每行格式必须严格为00000000: 8950 4e47 0d0a ...,错一位就全崩) - Windows:用
HxD(免费、直观、支持搜索/跳转/结构化视图) - 跨平台开发场景:VS Code + 官方
Hex Editor扩展(v1.84+,支持编辑、比较、大文件优化) - 硬要用 Sublime?装
Hex Editor插件(非HexViewer),它支持直接点击修改字节、插入/删除、搜索字节序列——但需格外注意备份,且不处理编码映射(比如改中文字段极易偏移错位)
binary_file_patterns 配置只影响新打开的文件
即使你在 Preferences → Settings – Syntax Specific 里加了:
"binary_file_patterns": ["*.bin", "*.exe", "*.dll", "*.so"]
也只对后续新打开的文件生效;已打开的乱码标签页不会自动切换,必须关闭重开,或手动触发 HexViewer: View in Hex。更关键的是:Sublime 实际靠文件头(magic bytes)判断是否为 binary,不是单看扩展名——一个全是 ASCII 的 .bin 可能被当作文本,而一个开头是 \x00\x01 的 .txt 反而会被识别为 binary。
HexViewer 是查看工具,不是编辑器;它的设计边界很清晰:只读、不解析编码、不响应保存动作。越试图绕过这点去“编辑”,越容易把固件、PE 文件或游戏存档搞坏。


















