命令行 文本编辑器 vi使用大全

vi是unix世界中最通用的全屏编辑器,linux中是用的是vi的加强版vim,vim同vi完全兼容,vi就是"visualinterface"的缩写。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其它编辑程序所没有的。

vi有三种状态:命令模式、文本输入模式、末行模式。键入vi回车后首先进入vi的命令模式。状态转变:

命令模式-->文本输入模式

在命令模式下,按一下"a"("A")键或者"i”("I")或者"o"("O")键,即进入插入状态文本输入模式。

按"a"键,插入到当前光标的后面;按"i"键,在当前光标处插入;

按"A"键,在当前光标所在行的最后插入;按"I"键,在当前光标所在行的开头插入。

文本输入模式-->命令模式

在文本输入模式下,按Esc键,即回到命令模式。

命令模式-->末行模式

末行模式也称ex转义模式。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。

在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。

末行模式-->命令模式

末行命令执行完后,Vi自动回到命令模式。

若在末行模式下输入命令过程中想转换的到命令模式,可按键,或用退格键将输入的命令全部删除之后,再按一下退格键,即可使Vi回到命令模式下。

1、插入(Insert)命令

(1)i命令

插入文本从光标所在位置前开始,并且插入过程中可以使用键删除错误的输入。

此时Vi处于插入状态,屏幕最下行显示“--INSERT--”(插入)字样。

(2)I命令

该命令是将光标移到当前行的行首,然后在其前插入文本。

2、光标移动操作在屏幕上移动

(1)在文本输入模式下

可直接使用键盘上的四个方向键移动光标。

(2)在命令模式下

不但可以使用四个方向键来移动光标,还可以用h、j、k、l这四个键代替四个方向键来移动光标,这样可以避免由于不同机器上的不同键盘定义所带来的矛盾,而且使用熟练后可以手不离开字母键盘位置就能完成所有操作,从而提高工作效率。

3、在屏幕上移动

(1)H命令

该命令将光标移至屏幕首行的行首(即左上角),也就是当前屏幕的第一行,而不是整个文件的第一行。利用此命令可以快速将光标移至屏幕顶部。若在H命令之前加上数字n,则将光标移至第n行的行首。值得一提的是,使用命令dH将会删除从光标当前所在行至所显示屏幕首行的全部内容。

(2)M命令

该命令将光标移至屏幕显示文件的中间行的行首。即如果当前屏幕已经充满,则移动到整个屏幕的中间行;如果并未充满,则移动到文本的那些行的中间行。利用此命令可以快速地将光标从屏幕的任意位置移至屏幕显示文件的中间行的行首。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式下,输入命令M之后,光标都将移到add这一行的字母a上。同样值得一提的是,使用命令dM将会删除从光标当前所在行至屏幕显示文件的中间行的全部内容。

(3)L命令

当文件显示内容超过一屏时,该命令将光标移至屏幕上的最底行的行首;当文件显示内容不足一屏时,该命令将光标移至文件的最后一行的行首。可见,利用此命令可以快速准确地将光标移至屏幕底部或文件的最后一行。若在L命令之前加上数字n,则将光标移至从屏幕底部算起第n行的行首。同样值得一提的是,使用命令dL将会删除从光标当前行至屏幕底行的全部内容。

4.编辑命令

(1)x--删除一个字符

删除文字的最简单的方式是用x。这个命令的结果是光标所处的字符的消失,后面的文字左移动。如果你删除的字符是一行最后的一个字符,那么光标将向左移动一个,这样光标就不会停留在不存在的字符的下面了。假如没有任何文字了,喇叭就叫。

(2)d--删除对象

这个命令的右边还要有一定的文字对象。文字对象就是一块文字。他右边接的就是在控制光标移动的那些字符。例如w表示向前一个单词,那么dw将删除下一个单词。5w表示前进5个单词,那么d5w将删除他们。

(3)dd--删除一行

最常用的d系列命令之一。和前面一样,5dd将删除5行

(4)D--整个删除

大写形式的D用来删除从光标到行尾。和d$一样效果。

(5)u--恢复

要后悔吗?他不仅仅撤消删除,还撤消你所有的编辑工作。

(6).--重复

重复编辑工作。

5.退出Vi

当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。

(1)在命令模式中,连按两次大写字母Z,“ZZ”

若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;

若当前编辑的文件没被修改过,则Vi直接退出,返回到shell。

(2)在末行模式下,输入命令:w

Vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。

在使用w命令时,可以再给编辑文件起一个新的文件名。

例如:wnewfile

此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息:Fileexists(use!tooverride)此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令:w!newfile否则可选择另外的文件名来保存当前文件。

(3)在末行模式下,输入命令:q 

系统退出Vi返回到shell。

若在用此命令退出Vi时,编辑文件没有被保存,则Vi在显示窗口的最末行显示如下信息:Nowritesincelastchange(use!tooverrides)提示用户该文件被修改后没有保存,然后Vi并不退出,继续等待用户命令。

若用户就是不想保存被修改后的文件而要强行退出Vi时,可使用命令:q!Vi放弃所作修改而直接退到shell下。

(4)在末行模式下,输入命令:wq

Vi将先保存文件,然后退出Vi返回到shell。

(5)在末行模式下,输入命令

该命令的功能同命令模式下的ZZ命令功能相同。

相关推荐