vim编辑16进制

你可以在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

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

posted on 2016-04-05 17:12  SYSTEM ADMINISTRATION  阅读(766)  评论(0编辑  收藏  举报

导航