VIM使用系列:二进制文件编辑vim一般是作为文本编辑工作,主要如代码编写,编辑二进制文件一般不再vim的功能范畴。不过在linux系统中偶尔也会碰到一些二进制文件,如二进制的数据文件等,在一定范围内也可以使用vim进行查看和修改。查看和定位打开一个二进制文件时,要保证Vim别把它那些聪明的窍门用错地方,启动Vim时加上-b参数:1vim-bdatafile这个参数设定了'binary'选项。其作用是排除所有的意外副作用。例如,'textwidth'设为零,免得文本行给擅自排版了。并且,文件一律以Unix文件格式读取。二进制模式可以用来修改某程序的消息报文。小心别插入或删除任何字符,那会让程序运行出问题。用R命令进入替换模式。文件里的很多字符都是不可显示的。用Hex格式来显示它们的值:1:setdisplay=uhex另外,也可以用命令ga来显示光标下的字符值。当光标位于一个字符上时,该命令的输出看起来就像这样:27,Hex1b,Octal033文件中也许没那么多换行符。你可以关闭'wrap'选项来获得总览的效果::setnowrap要发现你在文件中的当前字节位置,请用这个命令:gCTRL-G其输出十分冗长:Col9-16of9-16;Line277of330;Word1806of2058;Byte10580of12206最后两个数字就是文件中的当前字节位置和文件字节总数。这已经考虑了'fileformat'选项导致换行符字节不同的影响。要移到文件中某个指定的字节,请用go命令。例如,要移到字节2345:2345go使用XXD一个真正的二进制编辑器用两种方式来显示文本:二进制和十六进制格式。你可以在Vim里通过转换程序xxd来达到这效果。该程序是随Vim一起发布的。首先以二进制方式编辑这个文件:vim-bdatafile现在用xxd把这个文件转换成十六进制::%!xxd文本看起来像这样:0000000:;+NI0000010:4b2c8660eb9cecacc462eb94345e2e30K,`4^00000020:373b27310b220ca6c1a2d669103539d97;'现在你可以随心所欲地阅读和编辑这些文本了。Vim把这些信息当作普通文本来对待。修改了十六进制部分并不导致可显示字符部分的改变,反之亦然。最后,用下面的命令把它转换回来::%!xxd-r只有十六进制部分的修改才会被采用。右边可显示文本部分的修改忽略不计。PS:当然对于二进制文件的查看linux系统中有多个更好的可用工具,常用的如:od工具:dumpfilesinoctalandotherformatsxxd工具:hexdump工具:ASCII,decimal,hexadecimal,