VSCode的Hex Editor扩展需手动启用并显式调用,不自动关联文件后缀;右键无响应时应通过命令面板执行“Hex Editor: Reopen as Hex”,并确认已关闭只读模式、配置正确files.associations值为"hexeditor",大文件需调高memory limit且重启生效。

Hex Editor 扩展不是“查看源码”的工具,它查看的是原始字节流——二进制文件没有“源码”概念,只有结构、魔数、偏移和数据布局。直接双击 .bin、.elf、.png 等文件,VSCode 默认会报错或乱码,装了扩展也不自动生效。
为什么右键“Open With Hex Editor”没反应?
这不是插件没装好,而是 VSCode 的默认策略:它不会把任何文件后缀自动绑定到 hexeditor,哪怕你装的是 Microsoft 官方扩展。常见错误现象包括:
– 右键菜单里压根不显示 Open With Hex Editor
– 点了之后编辑器空白或闪退
– 文件以文本方式打开,还是报 Text file encoding not supported
- 先确认扩展已启用:按
Cmd+Shift+P→ 输入Extensions: Show Built-in Extensions→ 搜索Hex Editor,状态必须是“已启用” - 不要依赖右键菜单首次触发:用命令面板更可靠 —— 打开任意文件后,按
Cmd+Shift+P→ 输入Hex Editor: Reopen as Hex回车 -
files.associations配置值必须严格为"hexeditor"(不是hex、hex-editor或binary),例如:"files.associations": {"*.bin": "hexeditor", "*.fw": "hexeditor"} - 某些文件类型(如
.exe、.dll)会被 VSCode 内置安全机制拦截,即使配了关联也 fallback 到拒绝打开;此时需加白名单:"hexEditor.supportedLanguages": ["*"]
(慎用,影响启动性能)
编辑前必须关掉只读模式,否则 Ctrl+S 无效
很多人改完字节点保存,文件内容完全没变——因为 Hex Editor 默认只读。状态栏右下角显示 Readonly 就是铁证。这不是 bug,是防误写的设计。
- 点击状态栏的
Readonly标签,切换成Edit模式,状态栏变为Hex Editor (Edit) - 修改后窗口标题出现圆点标记,才是真改了;
Ctrl+S才会真正写入磁盘 - 别碰右下角那个
Save with Encoding按钮!选 UTF-8 或其他编码保存,会强制重解释二进制流,文件立即损坏 - 文件系统权限也要检查:如果文件在
/usr/bin或被其他进程占用(比如正在运行的固件),保存会静默失败,无提示
大文件(>50MB)打不开或卡死?调内存限制但得重启
VSCode 默认限制单文件加载上限为 50MB,超限提示 File is too large to open in the hex editor。这不是配置错了,是硬性保护。
- 打开设置(
Cmd+,),搜hex editor memory limit - 修改
Hex Editor: Memory Limit值(单位 MB),比如设为200 - 必须重启 VSCode 才生效 —— 改完不重启等于没改
- 实测:16GB 内存机器上,200MB 文件可操作;超过 500MB 强烈建议换
xxd + vim或HxD,VSCode 会明显卡顿甚至崩溃
搜索、跳转、批量修改这些功能怎么用才不翻车?
Hex Editor 的搜索和导航能力容易被低估,但参数不对就找不到目标字节,尤其是多字节序列。
- 按
Cmd+F打开搜索框,默认是文本搜索;点击右上角图标切换为Hex模式,输入FF D8 FF(空格分隔)才能搜 JPEG 头 - 跳转到偏移地址用
Cmd+G,输入十进制或十六进制都行(如0xA0或160),但注意地址从0x0开始计数 - 批量填充值:鼠标拖选多个字节 → 直接输入两位十六进制值(如
00)→ 所有选中位置统一写入 - 不支持正则、不解析结构(比如不会高亮 ELF header 字段)、没有撤销历史跨会话——关了再开,
Ctrl+Z就失效了
readelf 或 file 确认结构,拿纸笔标好偏移和原始值,再动手。


















