vim 16进制显示

发布时间 2023-09-28 11:30:40作者: zxiaocheng

你可以在vim中可以把文件转换为16进制来显示:
:%!xxd
解释:把所有的行(%)用本地(!)的xxd程序打开。
xxd本是linux下一个显示、编辑、转换二进制的命令。
返回正常显示:
:%!xxd -r
注意:vim的-b选项是告诉vim打开的是一个二进制文件,不指定的话,会在后面加上 0x0a ,即一个换行符。
首先以二进制方式编辑这个文件: 
vim -b datafile
现在用 xxd 把这个文件转换成十六进制: 
:%!xxd
文本看起来像这样: 
0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49 ....9..;..tt.+NI
0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30 K,.`.....b..4^.0
0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9 7;'1.".....i.59.
现在你可以随心所欲地阅读和编辑这些文本了。 
Vim 把这些信息当作普通文本来对待。
修改了十六进制部分并不导致可打印字符部分的改变,反之亦然。

:%!xxd -g 1 表示每1个字节为1组
:%!xxd -g 2 表示每2个字节为1组(默认)
:%!xxd -g 4 表示每4个字节为1组
:%!xxd -r 将vim恢复成原来的显示
man xxd可以获得xxd的帮助文件

最后, 用下面的命令把它转换回来:

:%!xxd -r

只有十六进制部分的修改才会被采用。右边可打印文本部分的修改忽略不计