VSCode默认不解析二进制文件,需安装Microsoft官方Hex Editor扩展并启用,配置files.associations为"*.bin": "hexeditor",编辑前必须关闭只读模式,所有操作基于字节偏移。

VSCode 默认不解析二进制文件——它会用 UTF-8 强行解码 .bin、.elf、.png,失败后只显示乱码、空白或直接报错。真要看原始字节流,必须用 Microsoft 官方 Hex Editor 扩展,且所有操作都得手动触发,没有“双击即开”这回事。
怎么确认装的是真 Hex Editor?
扩展市场搜 Hex Editor 会出现一堆同名插件,但只有作者栏写着 Microsoft Corporation 的那个才支持编辑+保存+跳转+十六进制搜索。其他叫 Hex Viewer、Binary Preview、hexdump for VSCode 的基本只读,点了 Ctrl+S 也不写盘,图标是绿色方块或带 “Viewer” 字样就别装。
- 安装完必须点右下角弹出的 Reload Window,否则命令面板里搜不到
Hex Editor: Reopen as Hex - 按
Ctrl+Shift+P→ 输入Extensions: Show Built-in Extensions→ 搜Hex Editor,状态必须是 Enabled - 图标是蓝色六边形,不是灰色/绿色方块,也不是带 “Dump” 或 “Viewer” 后缀的变体
Hex Editor: Reopen as Hex 为什么比右键更可靠?
右键菜单里的 Open with Hex Editor 常失效:只要文件之前被 VSCode 缓存为文本模式(比如你双击过 firmware.bin 并选了“以文本方式打开”),右键菜单就压根不显示该选项。此时唯一稳路径是命令面板强制重载。
-
Ctrl+Shift+P→ 输入Hex Editor: Reopen as Hex→ 回车,绕过所有缓存和关联逻辑 - 对已打开的文件也生效,比关掉再重开快得多
- 拖拽文件到编辑区失败时,弹出“无法打开”提示后,点提示框里的
Open with下拉菜单再选Hex Editor
编辑前不关 [READONLY],等于没改
状态栏右下角显示 [READONLY] 不是提示,是硬锁:双击字节、粘贴、键盘输入全无效,Ctrl+S 也静默忽略。很多人改了半天没反应,卡在这一步。
- 在 Hex Editor 视图中右键空白处 →
Toggle Read-Only Mode,状态栏出现[READONLY]才算安全 - 只读模式下仍可
Ctrl+F搜字节序列(需切十六进制模式)、Ctrl+G跳偏移、悬停看 ASCII 解码 - 真要编辑,先手动备份:
cp firmware.bin firmware.bin.bak;改完一个字节,标题栏出现 ● 圆点才是未保存提示 -
Ctrl+S是直写磁盘,无确认弹窗、无自动 backup、无跨会话撤销——关掉标签页就丢历史
files.associations 配错了后缀也没用
想让 .bin 双击就进 Hex 视图,必须手动加配置,且值必须严格为 "hexeditor"(不是 "hex"、"binary" 或 "hex-editor")。配错就无效,双击还是走文本解码流程,报 Text file encoding not supported。
- 打开
settings.json,加这一行:"files.associations": {"*.bin": "hexeditor", "*.fw": "hexeditor"} - 某些类型(如
.exe、.dll)仍会被 VSCode 内置安全策略拦截,此时需额外加:"hexEditor.supportedLanguages": ["*"](慎用,可能拖慢启动) - 配完必须重启 VSCode 才生效;不重启,双击照样失败
- 大文件(>100MB)加载慢、滚动卡、搜索延迟高,这时别硬扛,切终端跑
xxd firmware.bin | less或用hexedit更靠谱
最易被忽略的一点:所有导航(Ctrl+G 跳偏移、Ctrl+F 搜字节序列)都基于**字节偏移地址**,不是行号也不是字符位置;十六进制搜索必须手动切换模式,否则默认按字符串搜,找不到 47 49 46 38 这类魔数。


















