vim 本身不支持十六进制视图,需通过 xxd 工具配合实现:先以二进制模式打开文件,执行 :%!xxd 转为十六进制显示,编辑后用 :%!xxd -r 还原并保存,还可配置快捷键一键切换。

Linux 中 vim 本身不直接支持十六进制视图,但可以通过 xxd 工具配合 vim 实现二进制文件的十六进制查看与编辑。
用 xxd 将二进制转为可读的十六进制文本
vim 无法原生解析二进制字节,需借助 xxd(默认随 vim 安装)将文件转换为 ASCII+十六进制格式。执行以下命令打开:
- vim -b filename —— 以二进制模式打开(防止自动换行、编码转换等干扰)
- 在 vim 中输入命令::%!xxd —— 将当前缓冲区内容转为十六进制显示(每行显示偏移、16字节 hex、对应 ASCII)
编辑十六进制后还原为二进制
修改完十六进制内容后,必须还原才能保存为原始二进制格式,否则会保存成纯文本:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 在 vim 中输入::%!xxd -r —— 将当前十六进制文本反向转换回二进制
- 再执行 :w 保存(注意:若跳过这步直接保存,文件会被写成十六进制文本而非原始二进制)
一键切换十六进制/二进制视图(推荐)
为提升效率,可在 vim 中定义快捷键实现双向切换:
- 在 vim 中运行::command -nargs=0 HexToggle %!xxd | %!xxd -r(临时生效)
- 更常用的是添加到 ~/.vimrc:
- nnoremap
:%!xxd - nnoremap
:%!xxd -r - 之后按 F5 切换到十六进制,F6 还原,再 :w 保存即可
注意事项与常见问题
使用过程中需留意几个关键点:
- 确保系统已安装 xxd(多数 vim 包含,如缺失可安装 vim-enhanced 或 vim-common)
- 不要手动修改十六进制行首的偏移地址(如 00000000:),否则 xxd -r 会失败
- 修改 ASCII 列(右侧字符)不会影响二进制内容,只有 hex 列(中间 16 组两位十六进制数)才生效
- 大文件慎用 —— xxd 会把整个文件加载为文本,可能卡顿;超大文件建议用 hexdump -C filename 或 xxd -l 512 filename 预览前段










