HTML5 微软 java Ubuntu mysql php 程序员 google Android 开源 apache nginx linux wordpress Python Windows Firefox linux命令 centos shell

vi文本编辑器的工作方式

用户往往需要建立自己的文件,无论是一般文本文件、数据文件、数据库文件,还是程序源文件。建立和修改文本文件要利用编辑器Linux系统上常用的文本编辑器,如ed,ex,edit,vi,按功能可以分为两类:行编辑器(如ed,ex,edit)和屏幕编辑器(如vi)。vi是“visual interface”的简称,它汇集了行编辑和全屏幕编辑的特点,成为UNIX/Linux系统中最常用的编辑器,几乎每UNIX/Linux系统都提供vi。

vi编辑器有三种工作方式:命令方式、输入方式和ex转义方式。通过相应的命令或操作,在这三种工作方式之间可以进行转换。

命令方式

Shell提示符后输入命令vi,进入vi编辑器,并处于vi的命令方式。此时,从键盘上输入的任何字符都被作为编辑命令来解释,例如,a(append)表示附加命令,i(insert)表示插入命令,x表示删除字符命令等。如果输入的字符不是vi的合法命令,则机器发出“报警声”,光标不移动。另外,在命令方式下输入的字符(即vi命令)并不在屏幕上显示出来,例如,输入i,屏幕上并无变化,但通过执行i命令,编辑器的工作方式却发生变化:由命令方式变为输入方式。

输入方式

通过输入vi的插入命令(i)、附加命令(a)、打开命令(o)、替换命令(s)、修改命令(c)或取代命令(r)可以从命令方式进入输入方式。在输入方式下,从键盘上输入的所有字符都被插入到正在编辑的缓冲区中,被当做该文件的正文。进入输入方式后,输入的可见字符都在屏幕上显示出来,而编辑命令不再起作用,仅作为普通字母出现。例如,在命令方式下输入字母i,进到输入方式,然后再输入i,就在屏幕上相应光标处添加一个字母i,相应情况如下所述。
 

设原来屏幕显示的情况如下:

/*this is an example*/
main()
{
prntf("ok!");
}

光标在字符串prntf的字母n处。输入i命令,屏幕显示没有变化。接着再输入i,屏

幕显示为:

/*this is an example*/
main()
{
prntf("ok!");
}

即在字母n之前加入了一个字母i。

由输入方式回到命令方式的办法是按下Esc键。如果已在命令方式下,那么按下Esc键就会发出“嘟嘟”声。为了确保用户想执行的vi命令是在命令方式下输入的,不妨多按几下Esc键,听到嘟声后再输入命令。

ex转义方式

vi和ex编辑器的功能是相同的,二者的主要区别是用户界面。在vi中,命令通常是单个字母,如a,x,r等。而在ex中,命令是以Enter;键结束的命令行。vi有一个专门的“转义”命令,可访问很多面向行的ex命令。为使用ex转义方式,可输入一个冒号(:)。作为ex命令提示符,冒号出现在状态行(通常在屏幕最下一行)。按下中断键(通常是Del键),可终止正在执行的命令。多数文件管理命令都是在ex转义方式下执行的(例如,读取文件,把编辑缓冲区的内容写到文件中等)。转义命令执行后,自动回到命令方式。例如:
:1,$s/I/i/g 按Enter键
则从文件第一行至文件末尾($)将大写I全部替换成小写i。vi编辑器的三种工作方式之间的转换如图所示。

vi编辑器的工作方式

延伸阅读

评论