sublime text 默认不支持十六进制查看二进制文件,需安装hexviewer插件并通过命令面板调用“hexviewer: view in hex”打开,视图只读且有文件大小限制,大文件可调配置或用xxd预处理;编辑十六进制应使用专业工具。

Sublime 本身不支持十六进制读取二进制文件
Sublime Text 是文本编辑器,不是十六进制编辑器——它默认用字符编码(如 UTF-8)解析文件内容,遇到 \x00、\xff 这类非打印字节时会直接报错、截断或显示为空白标签页。你双击打开 firmware.bin 或 test.exe 看不到任何内容?这不是 bug,是设计使然。
所谓“内置 HexViewer”是常见误解:Sublime 没有、也永远不会内置十六进制视图功能。所有能看 hex 的能力,都来自第三方插件,且仅限查看,不支持安全写入。
装 HexViewer 插件才能看十六进制,但必须走命令触发
直接双击二进制文件 → Sublime 拒绝加载 → 这是正常行为。正确流程是:
- 先打开一个空白文件(或任意文本文件)
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)调出命令面板 - 输入
HexViewer: View in Hex(注意不是 Toggle 或 Switch) - 在弹出的系统文件选择框中选中你的
.bin、.png等文件
成功后你会看到三列布局:左侧地址偏移(00000000:)、中间十六进制字节(ffd8 ffe0 ...)、右侧 ASCII 解码(不可见字符显示为 .)。这个视图是只读的,不能修改任何字节。
大文件打不开?别硬等,改配置或换命令行预处理
默认情况下,HexViewer 对超过 10MB 的文件启用流式加载,但某些固件头部含非法前缀(比如非标准 padding 字节),会导致解析中断并报错:Unable to open file: invalid start byte。
解决方法有两个方向:
- 改插件设置:进入
Preferences → Package Settings → HexViewer → Settings,添加:"max_file_size": 104857600
(单位字节,即 100MB) - 绕过插件限制:终端执行
xxd -g1 yourfile.bin | subl -(需已安装xxd),把十六进制文本流直接送进 Sublime 新建窗口——虽然失去地址跳转和同步 ASCII 视图,但能快速确认 Magic Number 或头部结构
想编辑十六进制?Sublime 不是合适工具
HexViewer 不允许编辑;另一个常被提到的 hex editor 插件虽支持修改、保存,但它本质是把原始文件转成可编辑的文本格式再映射回二进制,存在编码歧义风险(比如把 0a 当作换行符处理)。真实场景下,误改一个校验和字节就可能让固件变砖。
如果你真需要编辑:
- 小范围改几个字节:用
HxD(Windows)、Bless(Linux)或010 Editor(跨平台)更稳妥 - 批量替换 hex 字符串:可用
xxd -r配合 Sublime 做文本层操作,但务必先备份原始文件 - 调试嵌入式协议时:Sublime + HexViewer 更适合对照协议文档查字段位置,而不是动数据
真正关键的不是“能不能看”,而是“看的时候是否意识到自己没在操作原始字节流”——这点容易被忽略,却决定了后续分析是否可信。










