
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程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)