vim 来编辑二进制文件。vim 本非为此而设计的,因而有若干局限。但你能读 取一个文件,改动一个字符,然后把它存盘。结果是你的文件就只有那一个字符给改了, 其它的就跟原来那个一模一样。 要保证 vim 别把它那些聪明的窍门用错地方,启动 vim 时加上 "-b" 参数: vim -b datafile 这个参数设定了 'binary' 选项。其作用是排除所有的意外副作用。例如,'textwidth' 设为零,免得文本行给擅自排版了。并且,文件一律...
by chenwenming - Linux文档专区 - 2008-11-19 15:27:18 阅读(685) 回复(0)
转自 http://www.chinaitpower.com/2005September/2005-09-13/205464.html 编辑二进制不是vim的强项, 但也并非不可能, 长期与打印机语言打交道逼着我要经常处理各种不同格式的二进制文件. 想象一下用vim就可以让一个可打印的二进制文件某个色面消失, 变换, 甚至, 将它转换回一个图象文件. 老的方案: 最早出于DEBUG的需要, 曾经用C语言写过打印机文件(以下简称PRT文件)的Parser, 就是要从PRT文件中把数据部分提取出来, 观察RIP生...
vim 中的 xdd 命令,进入二进制编辑。但是,好像只能修改一个一个的字符,不能插入或者删除。我在16进制表示的部分,试着插入、删除字节,然后使用 ':%!xxd -r' 将文件转换回字符模式,但是得到的是错乱的文件 :( 请问:vim 中如何在二进制模式下插入、修改字符呢? 谢谢 :)
一个源文件,cpp,拿过来之后,在windows下用vim打开,发现N多的 "^M" 符号 用二进制方式查看,发现多了一个0d 所以,我这样弄: :s/\0x0d\0x0d\0x0a/\0x0d\0x0a/g 我这样用,一回车就提示: 找不到模式:\0x0d\0x0d\0x0a 不知道要替换二进制数据应该怎么弄? 我用perl也没能处理? perl -p -i.bak -e "s/\0x0d{2}\0x0a/\0x0d\0x0a/g" main.cpp 谢谢!
已经被人写烂了的话题,可每次用到的时候我都要google一遍,真郁闷。索性记到自己这儿,再忘的时候,就不用到处翻了: :%!xxd ---->切换到十六进制显示 :%!xxd -r ---->切回文本方式显示 对了,还有一个替换命令,也常忘: :[range]s/src/dst/g range表示查找的范围,range 是命令执行范围的指定,可以使用百分号(%)表示所有行,使用点(.)表示当前行,使用美元符号($)表示最后一行。还可以使用行号来指定范围,如10,30,...
已经被人写烂了的话题,可每次用到的时候我都要google一遍,真郁闷。索性记到自己这儿,再忘的时候,就不用到处翻了: :%!xxd ---->切换到十六进制显示 :%!xxd -r ---->切回文本方式显示 对了,还有一个替换命令,也常忘: :[range]s/src/dst/g range表示查找的范围,range 是命令执行范围的指定,可以使用百分号(%)表示所有行,使用点(.)表示当前行,使用美元符号($)表示最后一行。还可以使用行号来指定范围,如10,3...
:%!xxd ---->切换到十六进制显示 :%!xxd -r ---->切回文本方式显示 对了,还有一个替换命令,也常忘: :[range]s/src/dst/g range表示查找的范围,range 是命令执行范围的指定,可以使用百分号(%)表示所有行,使用点(.)表示当前行,使用美元符号($)表示最后一行。还可以使用行号来指定范围,如10,30,表示第10到30行之间。 src、dst是查找与替换的两个字符串,可以使用正则表达式代替。 g或i是修饰符,g表示对范围内所有的...
已经被人写烂了的话题,可每次用到的时候我都要google一遍,真郁闷。索性记到自己这儿,再忘的时候,就不用到处翻了: :%!xxd ---->切换到十六进制显示 :%!xxd -r ---->切回文本方式显示 对了,还有一个替换命令,也常忘: :[range]s/src/dst/g range表示查找的范围,range 是命令执行范围的指定,可以使用百分号(%)表示所有行,使用点(.)表示当前行,使用美元符号($)表示最后一行。还可以使用行号来指定范围,如10,30,表...
" 设置字符编码。参考:http://www.rainux.org/blog/index.php/2005/10/20/106" encoding: vim 内部使用的字符编码方式,包括 vim 的 buffer (缓冲区)、菜单文" 本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有" 在 .vimrc 中改变它的值才有意义。"" 由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式" 又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encod...
今天在图书馆看到今年8月份的LinuxMagazin(大概只在德国发行)上有vim的消息,某hacker写了几个script,说是可以查看tar , zip, gz 之类的压缩/归档文件了。 回来尝试了一下,果然可以!! 这个特性是新添加的吗? 以前不知道,一直用 urxvtc + tar -t + vim + tar 来查看归档文件的内容(没有用ark之类的gui软件是因为想利用vim的编辑和查找特性),新发现这个功能感到比较意外。
* fileencoding 当 vim 从磁盘上读取文件的时候,会对文件的编码进行探测。如果文件的编码方式和 vim 的内部编码方式不同,vim 就会对编码进行转换。转换完毕后,vim 会将 ''fileencoding'' 选项设置为文件的编码。 当 vim 存盘的时候,如果 ''encoding'' 和 ''fileencoding'' 不一样,vim 就会进行编码转换。 因此,通过打开文件后设置 ''fileencoding'',我们可以将文件由一种编码转换为另一种编码。 但是,由前面的介绍...