vi编辑器进阶功能(一)
原创
©著作权归作者所有:来自51CTO博客作者bjiango的原创作品,请联系作者获取转载授权,否则将追究法律责任
vi编辑器进阶功能
在linux下有三个主要的编辑器:vi、vim 、emacs。这三个都可以用来编辑文件,今天就和大家一起来共同学习一下vi的用法。
用vi可以打开一个已经存在的文件,而且如果文件不存在则创建此文件并打开一个空的新的文件,可以在里边进行编辑。
vi有三种模式:
1、命令模式(command mode) 在命令模式下可以进行光标的移动,
删除字符和整行删除,以及复制操作。
下面是一些在命令行下的一些用法:
G:用vi打开一个文件后,在键盘摁下大写的G后,光标可以直接进入最后一行。1G:同样的,在键盘上摁下1G后光标可以跳到文件的第一行。
ctrl-d:光标能跳到屏幕的中间,ctrl-u光标也能跳返回到刚才切换回来的位置;
在命令模式下快速切换光标的位置:
H(HIGH)可以快速切换到屏幕的顶部,
M(Middle)可以快速切换到屏幕的中间,
L(Low)可以快速切换到屏幕的底部。
在屏幕上输入小写的z然后按enter可以使光标所在的行换到文件的第一行,
在屏幕上输入小写的z然后在摁 - 可以使光标所在的行切换到文件的最后。
在命令模式下可以把命令的输入插入到正在编辑的文件中,也可以把文件里的资料当做输入来使用,以下是几个范例:比如正在vi编辑一个新的文件myfile
编辑过程中想要把root的输入插入到这个文件中,可以用!!ls -l命令把root下的内容插入到myfile文件中
在输入两个!!后会变成是:,!这是正常的,不要惊讶,接着输入ls -l就可以把root里边的内容输入到myfile里边了。如上图所示。
第二个例子是!!date命令,假如想把想要把正在编辑的myfile文件加上一个时间戳记,那么就有!!date,如下图所示:
这样就把现在编辑的时间插入到这个文件里边了。
下边在来看一个例子!}sort,看下边的图片:
输入完!}之后又会看到一些乱七八槽的符号,不要管它,然后接着输入sort可以看到文件被重新排列了,这就是将输入的文件做排列,如下图所示:
接着看最后一个例子:!}fmt -w60 .先输入!},会出现下图那样一些奇怪的符号,先不用考虑:然后再接着输入fmt -w60(这个命令的方式是将段落的宽度限定在60个字,超过60个自动换行)会显示如下画面:超过60个字的行都自动换了行。
在执行模式下(excutable mode)可以进行插入,修改文件内容的操作,下边学习一下查找替代关键字的操作。sed命令可以进行查找和替换。例如从新打开并编辑一个文件testvi打开,里边有30行的内容,可以用:s/This/That把光标所在行的This变成That。
可以看到This已经变成了That了,不过本行的第二个This还是没有改变,没有关系,可以用这个命令可以把整行的关键字进行替换:s/This/That/g ,看下这个命令的效果哈:
整行的This已经用That代替了。
接着看下边的例子:如果想要把第一行到某行的某个关键字都改变了怎么办呢?哈哈,咱就用1,10(比如说到第十行,也可以到20行,30行都可以)逗号是区间的意思。1,10s/This/That/g这个命令:
下边是这个命令的效果哈:
那么如果想要对整个文件作搜寻和替代呢,那么就有1,$或者是%都可以,接着后面输入要替代的内容。比如先用1,$s/This/That/g,其中','表示间隔的范围,$表示是文件的最后面:
按下enter看看效果:
上面出现提示30行,60个关键字被替换。
顺便看看%的作用哦
输入%s/This/That/g后,然后摁下回车键看看效果哈:
看到了和1,$s/This/That/g一样的效果。
接着看看一个比较灵活的查询和替代的方法:.,.+n,点(.)表示是光标所在的行,点加n表示是光标所在的行及以下的n行,比如说我们现在在第4行,想要改变4到7行的内容就可以用 .,.+3s/This/That/g
按下enter看下效果:
看到4到7行的内容已经改变了吧,那么我们可以想到有减号也可以逆向改变,在这里就不做示例了。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
vi编辑器(一)
vi编辑器常用命令总结
职场 休闲 vi编辑器 -
掌握VI编辑器(一)
的内容与VI的惯用者有
终端 shell unix command hp -
功能最强在的编辑器——vi
vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人, 或多或
Unix Linux F# J# 字符串