Sublime Text 本身不支持十六进制查看,需安装 facelessuser 版本 HexViewer 插件实现只读查看;必须通过命令面板执行 HexViewer: View in Hex 手动选文件,双击或 File → Open 会因 UTF-8 解码失败而空白或乱码。

Sublime Text 本身不支持十六进制查看,所谓“黑科技”其实是靠 HexViewer 插件实现只读解析——它不能编辑、不能双击打开、也不能自动识别二进制文件,所有功能都必须手动触发命令。
怎么确认 HexViewer 真装对了
很多人装完插件,在命令面板搜 HexViewer 却什么也不显示,其实根本没生效:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入HexViewer,必须看到带冒号的完整命令,比如HexViewer: View in Hex或HexViewer: Toggle Hex Mode;只出现 “Hex View” 或小写hexviewer都是错的 - 必须安装 facelessuser 维护的官方版本,GitHub 仓库名就是
HexViewer(驼峰、无空格、无下划线),别选HexEditor、HexView这类名字近似的替代品 - 安装后立刻执行
Package Control: Satisfy Dependencies,否则依赖缺失会导致插件静默失效(不报错、不注册命令) - 如果命令仍不出现,可试
Package Control: Reload Package强制重载插件环境
HexViewer: View in Hex 和 HexViewer: Toggle Hex Mode 的区别
这两个命令看着像,但适用场景完全不同,混用必失败:
-
HexViewer: View in Hex:弹出系统文件选择框,支持任意路径的.bin、.elf、.png等原始二进制文件,是唯一可靠入口;必须先有空白页或文本页再触发,不可在乱码标签页上直接运行 -
HexViewer: Toggle Hex Mode:仅作用于当前已成功加载为文本的文件(比如你用xxd转过的.hex文本),对刚双击打开的firmware.bin基本无效——因为 Sublime 根本没把它当字节流加载,而是强行 UTF-8 解码失败后留下的残缺文本 - 右下角状态栏若显示
Hex Viewer (read-only),说明进入了正确视图;若显示UTF-8或Plain Text,那只是乱码,不是 hex 视图
为什么双击 .bin 文件打不开,以及怎么绕过
双击或通过 File → Open 打开二进制文件,99% 会失败,这不是文件问题,是 Sublime 底层策略:
- 遇到
\x00、\xff或非法 UTF-8 字节时,Sublime 直接中断加载,显示空白页、报Error loading file: invalid start byte,或静默失败 - 正确流程是:
Ctrl+N新建空白页 →Ctrl+Shift+P→ 输入并执行HexViewer: View in Hex→ 手动选中你的firmware.bin - 如果目标文件已被 Sublime 认定为“文本”(比如扩展名是
.log),插件可能跳过解析逻辑;临时重命名为test.bin可绕过扩展名白名单限制 - 大文件(>10MB)默认加载失败?可在
Preferences → Package Settings → HexViewer → Settings中加一行:"max_file_size": 104857600(单位字节,此处设为 100MB)
真正想改 hex 怎么办
别在 HexViewer 里改——它输出的是字符串形式的十六进制表示,不是原始字节。你在里面把 48656C6C6F 改成 48656C6C6F00,保存后得到的是 10 个 ASCII 字符,不是 6 字节的 0x48 0x65 0x6C 0x6C 0x6F 0x00,文件必然损坏。
需要编辑二进制内容,必须走外部工具闭环:
- Linux/macOS:用
xxd -g1 yourfile.bin > yourfile.hex转成文本 → 在 Sublime 里编辑 hex 文本 → 用xxd -r yourfile.hex > yourfile_restored.bin还原 - Windows:用
HxD直接编辑,或配合certutil -encodehex做轻量 inspect - 只看前几十字节?终端跑
head -c 64 yourfile.bin | xxd更快,也避开了 Sublime 的加载限制
最易被忽略的一点:HexViewer 的“十六进制视图”本质是渲染层转换,底层文件从未以二进制方式加载过——所以它永远无法支持编辑、也无法处理非标准头部的嵌入式固件(比如开头是 \x00\x00\x9f 的镜像),这时候只能换工具。


















