Sublime Text 无法真正编辑十六进制——HexViewer 插件仅支持只读查看,修改后保存会将字符串当文本处理导致文件损坏;专业编辑应使用 HxD、Bless 或 010 Editor。

Sublime Text 无法实现真正的十六进制“编辑模式”,HexViewer 插件仅支持只读查看,任何在 hex 视图中直接修改并保存的行为都会破坏原始二进制结构——这不是配置问题,是底层设计限制。
怎么装对 HexViewer 并确认它真在运行
很多人卡在“明明搜了 HexViewer 却没命令”,本质是没装对或没加载成功:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package,回车后等列表加载完再搜HexViewer—— 认准作者facelessuser的版本,别选拼写近似的Hex Editor或HexView - 安装后不重启 Sublime 也能用,但建议立刻执行一次
Package Control: Satisfy Dependencies,避免插件因依赖未就绪而静默失效 - 再次调出命令面板,输入
HexViewer,必须看到至少一个带冒号的完整命令(如HexViewer: View in Hex),否则说明插件根本没进环境
为什么双击 .bin/.exe 文件打不开,以及正确打开流程
Sublime 默认拒绝加载含 \x00 或非 UTF-8 字节的文件,双击只会显示空标签页或报 Error loading file。它不会自动识别二进制类型,也没有“右键 → Open with Hex”这种入口:
- 先打开一个空白文件(
Ctrl+N),再按Ctrl+Shift+P→ 输入HexViewer: View in Hex→ 弹出系统文件选择框 → 手动选你的firmware.bin - 如果已打开一个文本文件(比如
log.txt),插件可能跳过解析——临时把文件重命名为test.bin再试,绕过 Sublime 的扩展名文本白名单 -
HexViewer: Toggle Hex View是切换当前已打开文件的视图,但前提是该文件已被 Sublime 成功加载为文本(对纯二进制无效),所以别指望它对刚双击打开的乱码标签页起作用
大文件打不开、显示空白或报 invalid start byte 怎么办
默认 max_file_size 是 10MB,且 HexViewer 对文件头部字节敏感:开头是 \x00\x00\x9f 这类非法 UTF-8 前缀时,流式解析会中断,导致界面空白或报错:
- 进
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先确认前几行可读 - 超过 50MB 的固件/镜像,HexViewer 会明显卡顿甚至崩溃——这时应放弃插件,改用
xxd file.bin > file.hex导出纯文本,再用 Sublime 编辑file.hex,最后用xxd -r file.hex > file_restored.bin还原
别碰“编辑 hex 并保存”这个念头
HexViewer 显示的是字符串形式的十六进制表示(比如 "48656C6C6F"),不是原始字节流。你在里面改了一个 66 成 67,Sublime 会把它当文本字符存进去,最终写入的是 ASCII 字符 '6'、'7' 两个字节,而非单个字节 0x67:
- 右下角永远显示
Hex Viewer (read-only),没有Save as Binary按钮,也没有任何 API 支持“反向写回” - 真要改二进制,Windows 用
HxD,Linux 用Bless,跨平台优先选010 Editor——它们能映射内存、校验 CRC、支持结构模板,Sublime 不具备这些能力 - 唯一安全的“协作编辑”路径是:用
xxd转成文本 → Sublime 做搜索/替换/注释 →xxd -r还原。中间任意一步保存错格式,文件就废了

















