VIM使用系列:二进制文件编辑

VIM使用系列:二进制文件编辑,第1张

VIM使用系列:二进制文件编辑vim一般是作为文本编辑工作,主要如代码编写,编辑二进制文件一般不再vim的功能范畴。不过在linux系统中偶尔也会碰到一些二进制文件,如二进制的数据文件等,在一定范围内也可以使用vim进行查看和修改。查看和定位打开一个二进制文件时,要保证

Vim

别把它那些聪明的窍门用错地方,启动

Vim

时加上

-b

参数:1vim

-b

datafile这个参数设定了

'binary'

选项。其作用是排除所有的意外副作用。例如,'textwidth'设为零,免得文本行给擅自排版了。并且,文件一律以

Unix

文件格式读取。二进制模式可以用来修改某程序的消息报文。小心别插入或删除任何字符,那会让程序运行出问题。用

R

命令进入替换模式。文件里的很多字符都是不可显示的。用

Hex

格式来显示它们的值:1:set

display=uhex另外,也可以用命令

ga

来显示光标下的字符值。当光标位于一个

字符上时,该命令的输出看起来就像这样:

27,

Hex

1b,

Octal

033

文件中也许没那么多换行符。你可以关闭

'wrap'

选项来获得总览的效果:

:set

nowrap要发现你在文件中的当前字节位置,请用这个命令:

g

CTRL-G其输出十分冗长:

Col

9-16

of

9-16;

Line

277

of

330;

Word

1806

of

2058;

Byte

10580

of

12206

最后两个数字就是文件中的当前字节位置和文件字节总数。这已经考虑了

'fileformat'选项导致换行符字节不同的影响。要移到文件中某个指定的字节,请用

go

命令。例如,要移到字节

2345:

2345go使

XXD一个真正的二进制编辑器用两种方式来显示文本:

二进制和十六进制格式。你可以在

Vim里通过转换程序

xxd

来达到这效果。该程序是随

Vim

一起发布的。首先以二进制方式编辑这个文件:

vim

-b

datafile现在用

xxd

把这个文件转换成十六进制:

:%!xxd文本看起来像这样:0000000:

1f8b

0808

39d7

173b

0203

7474

002b

4e49

9;tt+NI0000010:

4b2c

8660

eb9c

ecac

c462

eb94

345e

2e30

K,`b4^00000020:

373b

2731

0b22

0ca6

c1a2

d669

1035

39d9

7;'1i59现在你可以随心所欲地阅读和编辑这些文本了。

Vim

把这些信息当作普通文本来对待。修改了十六进制部分并不导致可显示字符部分的改变,反之亦然。最后,用下面的命令把它转换回来:

:%!xxd

-r只有十六进制部分的修改才会被采用。右边可显示文本部分的修改忽略不计。PS:当然对于二进制文件的查看linux系统中有多个更好的可用工具,常用的如:od工具:dump

files

in

octal

and

other

formatsxxd工具:make

a

hexdump

or

do

the

reversehexdump工具:ASCII,

decimal,

hexadecimal,

octal

dump

先在Vim的“一般模式”里将光标移动到需要修改的地方(进“一般模式”只需要按下键盘上的Esc键即可),移动光标可以用“一般模式”下的几个命令来完成,比如输入50G表示跳到第50行,数字20加向下移动光标的按键则表示从当前光标位置向下再移动20行。光标移动到需要修改的位置后,按下键盘上的i键就可以进行编辑了,还可以按下O键,表示在光标所在行下面新添加一行进行编辑。编辑完成后需要再次按下键盘上的Esc键到“一般模式”,才可以执行保存文件的命令。保存退出Vim一般是:wq命令,注意要先输入英文冒号(是英文冒号哦,如果错误的输成中文是没有反应的)。

先终端输入

vim testc

车进入vim编辑器再按a键进入编辑状态输入C语言语句:

#include

int main() {

printf("hello world!\n");

}

按esc键退编辑状态再输入冒号(shift + 冒号号键)紧跟着输入 wq 即 输入

:wq

按车即推vim编辑器终端命令窗口(类似xp命令提示符)

输入

gcc testc 步编译

/aout 执行输 hello world

结束前提已经安装gcc

命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。

输入模式:正常的文本录入。

末行模式:保存或退出文档,以及设置编辑环境。

在每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出 *** 作。在Vim中,无法直接从输入模式切换到末行模式。Vim编辑器中内置的命令有成百上千种用法,为了能够帮助读者更快地掌握Vim编辑器,表4-1总结了在命令模式中最常用的一些命令。

表4-1                                                      Vim中常用的命令

编辑

命令    作用  

dd    删除(剪切)光标所在整行  

5dd    删除(剪切)从光标处开始的5行  

yy    复制光标所在整行  

5yy    复制从光标处开始的5行  

n    显示搜索命令定位到的下一个字符串  

N 显示搜索命令定位到的上一个字符串

u    撤销上一步的 *** 作  

p    将之前删除(dd)或复制(yy)过的数据粘贴到光标后面  

末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。Vim文本编辑器

命令    作用  

:w    保存  

:q    退出  

:q!    强制退出(放弃对文档的修改内容)  

:wq!    强制保存退出  

:set nu    显示行号  

:set nonu    不显示行号  

:命令    执行该命令  

:整数    跳转到该行  

:s/one/two    将当前光标所在行的第一个one替换成two  

:s/one/two/g    将当前光标所在行的所有one替换成two  

:%s/one/two/g    将全文中的所有one替换成two  

字符串    在文本中从下至上搜索该字符串  

/字符串  

一、首先要会使用vim编写一个c文件

1在linux终端下输入:

vi

testc

表示生成了一个testc的c语言文件

2此时时命令模式,按"a"键或者"i"进入输入模式,然后就是输入C语言代码

3保存文件,再次回到命令模式,按"ESC“键,然后按":"键再输入"wq”表示保存退出

二、然后在用gcc编译testc文件

直接输入

gcc

-o

mytest

testc即可

表示直接生成mytest执行文件

以上就是关于VIM使用系列:二进制文件编辑全部的内容,包括:VIM使用系列:二进制文件编辑、linux里面vim怎么编辑文件、怎么在linux下用vim编写一个C程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9765213.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存