可以在 Vim里通过转换程序 “xxd” 来进行二进制文件的编辑。
首先以二进制方式编辑这个文件:
vim -b binaryfile
然后用 xxd 把这个文件转换成十六进制:
在vim界面中输入如下命令:
:%!xxd
文本看起来像这样:
1 0000000: ceb0 d418 edf4 fc9c ea79 2632 4e02 45e1 .........y&2N.E.
2 0000010: 820a b23f 678e ee8a 314c d73a 20f7 100d ...?g...1L.: ...
3 0000020: af4b c1ec 3e17 ba50 b384 2f48 3b90 7cf0 .K..>..P../H;.|.
4 0000030: f8be eefe 7ed1 a84b a8fd e988 8095 106c ....~..K.......l
5 0000040: 67c2 6549 7fb8 2165 f846 b5b0 4e68 4a8c g.eI..!e.F..NhJ.
6 0000050: f5d9 ff9e 9a8c df0d ........
显示格式类似于wireshark显示包的格式,搞网络的同学肯定觉得很亲切。
Vim 把这些信息当作普通文本来对待。修改了十六进制部分并不导致可显示字符部分的改变,反之亦然。
最后,用下面的命令把它转换回来:
:%!xxd -r
修改只针对16进制显示部分的内容有效,其余部分修改都不会影响文件的内容。
但打开文件的时候,切记切记要加上-b选项,否则编辑内容会有问题