搜索了很多关于vim中使用xxd二进制编辑的文章,有2个问题比较难找到(估计是度娘和必应没用好),耗费半天时间摸索,记录一下:
- 在Windows下,由于没有命令行,所以不能用以下大部分文章介绍的方法进行:
vim -b file
从而导致转换成二进制后面多了0x0a的字节。解决该问题的方法是,先打开文件后,通过如下命令设置为二进制文件:
:set bin
再转换,就没有多余的字节了。
- 如果直接用以下命令进行转换:
:%!xxd
转换后带有行数和打印字符,这时如果删除头部或中间数据后,再用如下命令转换回来:
:%!xxd -r
这时会发现文件大小并没有改变,被删除的字节自动用0补齐了。如果本意是想删除,那么就不能这么干了。应该用如下办法, 在转换时,转成不带行号和打印字符的方式,习惯16个字节一行,命令:
:%!xxd -p -c16
删除完后,用如下命令转回来:
:%!xxd -r -p
这样就达到效果了。
网友评论