sublime text 无内置十六进制查看功能,必须通过 package control 安装第三方插件 hexviewer;安装后需手动触发命令“hexviewer: toggle hex view”或“view in hex”,且仅支持只读查看,不支持编辑二进制文件。

Sublime 本身不支持十六进制查看,HexViewer 是第三方插件,不是内置功能
很多人搜“Sublime 内置 HexViewer”,结果装了也打不开——因为根本不存在。sublime text 是文本编辑器,底层不解析二进制字节流,所有十六进制视图都依赖 HexViewer 这个由 facelessuser 维护的第三方插件。
- 必须通过
Package Control安装,不能手动丢文件或改配置 - 安装后不会自动生效:打开一个文件 →
Ctrl+Shift+P→ 输入HexViewer: Toggle Hex View才触发 - 如果命令面板里搜不到
HexViewer,说明没装成功,常见原因是拼错成Hex View或HexEditor - 安装完不用重启 Sublime,但建议执行一次
Package Control: Satisfy Dependencies防止插件加载失败
为什么双击打开 .bin/.exe 文件没反应?必须用命令触发
Sublime 默认拒绝加载二进制文件,直接双击会显示空标签页、报错 Error loading file,或静默失败。这不是文件损坏,是编辑器策略——它只对“被识别为文本”的文件做常规加载。
- 正确流程:
Ctrl+N新建空白页 →Ctrl+Shift+P→HexViewer: View in Hex→ 弹出系统文件选择框 → 选中你的firmware.bin或test.exe - 若已打开一个文本文件,先
Ctrl+S保存为.bin后缀,再执行HexViewer: Toggle Hex View,否则右键菜单里压根不显示该选项 - 某些扩展名(如
.log、.txt)哪怕内容全是乱码,Sublime 仍当文本处理,插件会跳过;临时重命名为xxx.bin再试
大文件打不开或卡死?调整 max_file_size 并确认编码边界
默认情况下,HexViewer 对超过约 10MB 的文件启用流式加载,但嵌入式固件、加密 blob 等常含非法 UTF-8 前缀(比如开头是 x00x00x9f),导致解析中断,现象是界面空白或报 invalid start byte。
- 修改配置:
Preferences → Package Settings → HexViewer → Settings,加入:"max_file_size": 104857600(单位字节,此处设为 100MB)
- 若仍失败,用终端预处理:
xxd -g1 yourfile.bin | subl -(linux/macos),或 windows 上用certutil -encodehex -f yourfile.bin stdout 4 | head -n 16查前几行 - 不要指望
File → Reopen with Encoding → Hexadecimal—— Sublime 没这个内置编码选项,那是误传
能复制、能看、不能改:HexViewer 是只读分析工具,不是编辑器
你在 HexViewer 窗口里把 48656C6C6F 改成 48656C6C6F00,保存后得到的是一个文本文件,内容是这串 ASCII 字符,不是追加了一个 x00 字节。这是根本性限制,不是设置问题。
- 状态栏左下角会明确显示
Hex Viewer (read-only),没有保存按钮,也没有“Apply to original”选项 - 真正要 patch 二进制:用
HxD(Windows)、010 Editor(跨平台)直接操作;或走命令流:xxd -g1 file.bin > file.hex→ Sublime 编辑 →xxd -r -g1 file.hex > file_new.bin - 临时查 Magic number?终端更稳:
head -c 8 yourfile.bin | xxd,一眼看到x7fELF或PKx03x04
最容易被忽略的一点:HexViewer 不处理内存映射、不解析结构体、不校验 CRC——它只是把字节转成两列文本。需要逆向、固件分析、协议调试时,别卡在 Sublime 里硬扛。