日期:2014-05-16  浏览次数:20756 次

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



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的数据都会显示错误


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

1楼hpccn昨天 19:34
代码中不可以对文字加颜色,