现在的位置: 首页 > 综合 > 正文

linux vim 16进制显示有错误, 查看编辑二进制文件时,务必加 -b 参数

2013年08月16日 ⁄ 综合 ⁄ 共 1783字 ⁄ 字号 评论关闭

linux vim  16进制显示有错误, 查看编辑二进制文件时,务必加 -b 参数

今天需要看16进制文件,调试中发现不对劲,经过多方对比,发现问题出 Vim 打开二进制文件时,需要加 -b 参数。

vim  test.bin

:%!xxd        //显示16进制

0000000: 0300 0800 3c0d 0000 0100 1c00 3f05 0000  ....<.......?...
0000010: 2700 0000 0000 0000 0000 0000 3f00 0000  '...........?...
0000020: 0000 0000 0000 0000 1a00 0000 3400 0000  ............4...
0000030: 4000 0000 4e00 0000 5a00 0000 6800 0000  @...N...Z...h...
0000040: 3f00 0000 3f00 0000 3f00 0000 3f00 0000  ?...?...?...?...
0000050: 0601 0000 1a01 0000 2e01 0000 5601 0000  ............V...
0000060: 7001 0000 3f01 0000 3f01 0000 3f01 0000  p...?...?...?...
0000070: 3f01 0000 0002 0000 1402 0000 5802 0000  ?...........X...
0000080: 3f02 0000 3f02 0000 3f02 0000 3f02 0000  ?...?...?...?...
0000090: 1603 0000 3803 0000 5a03 0000 7803 0000  ....8...Z...x...
00000a0: 3f03 0000 3f03 0000 3f03 0000 3f03 0000  ?...?...?...?...
00000b0: 1404 0000 3604 0000 7004 0000 3f04 0000  ....6...p...?...

vim -b test.bin

:%!xxd        //显示16进制

0000000: 0300 0800 3c0d 0000 0100 1c00 8805 0000  ....<...........
0000010: 2700 0000 0000 0000 0000 0000 b800 0000  '...............
0000020: 0000 0000 0000 0000 1a00 0000 3400 0000  ............4...
0000030: 4000 0000 4e00 0000 5a00 0000 6800 0000  @...N...Z...h...
0000040: 8600 0000 9800 0000 f000 0000 f400 0000  ................
0000050: 0601 0000 1a01 0000 2e01 0000 5601 0000  ............V...
0000060: 7001 0000 8401 0000 9a01 0000 b801 0000  p...............
0000070: c801 0000 0002 0000 1402 0000 5802 0000  ............X...
0000080: 8402 0000 b402 0000 d202 0000 f402 0000  ................
0000090: 1603 0000 3803 0000 5a03 0000 7803 0000  ....8...Z...x...
00000a0: 8c03 0000 a203 0000 e603 0000 fe03 0000  ................
00000b0: 1404 0000 3604 0000 7004 0000 ba04 0000  ....6...p.......

按 short 显示, 超过 7ffff的数据都会显示错误

如果需要编辑,只有十六进制部分的修改才会被采用。右边可显示文本部分的修改忽略不计。



================================================================
  编辑完了以后,我们需要还原为二进制文件:
  :%!xxd -r #参数-r是指将当前的十六进制转换为二进制
  
  好了,保存退出:
  :wq

一个真正的二进制编辑器用两种方式来显示文本: 二进制和十六进制格式。你可以在 Vim
里通过转换程序 "xxd" 来达到这效果。该程序是随 Vim 一起发布的。
首先以二进制方式编辑这个文件:

抱歉!评论已关闭.