零点起飞学LinuxC之文本编辑器课件.ppt
第4章文本编辑器,文本编辑器是在编程过程中必不可少的工具。在Linux下著名的文本编辑器有很多,例如图形界面下的gedit、kwrite等,文本模式下的vi、vim、emacs等。图形界面下的工具有操作直观简单界面友好等特点。而vi和emacs以其超高执行效率的特点,成为编程人员钟爱的两大编辑器。同时他们也是Linux系统中最常用的两个编辑器。但是由于他们与图形界面下的编辑器有较大的差别,因此我们有必要用一章的内容来对这两个编辑器进行介绍。,4.1 vi编辑器的基本使用,vi编辑器是Linux系统下的标准编辑器。它有着其他图形界面编辑器无法比拟的功能和效率,虽然它命令繁多,学习起来比较慢,但是只要学会基础的使用方法,工作效率就会有非常明显的提升。下面我们就来学习vi编辑器的基本使用。,4.1.1 vi的启动,vi编辑器只要在Shell命令窗口下输入vi即可启动,还可以在后面跟想要创建或编辑的文件名。例如使用vi打开example.c这个文件的命令如下:$vi example.c如果vi命令后面所跟的文件不存在,则系统会自动创建一个以该字符串命名的文本文件。vi命令打开文件时还可以带一些参数,这些参数用于修正vi的打开方式,主要包括:-R以只读方式打开文件;当用户只需阅读文件内容而不想对其进行修改时,可以使用这个参数,以防止对文件的误操作,如下所示:$vi-R example.c-x对文件进行加密。使用该参数后,文件在保存时将被加密,以后每次打开时都需要输入密钥,否则将出现乱码。如果在打开vi编辑器时,即没有给出文件名,也没有给出任何参数。此时,vi编辑器中所有行都为空行。窗口中央给出的是vi编辑器的使用帮助,当用户在vi中输入文本或执行命令时,该帮助信息会自动消失。另外,如果以这种方式打开vi编辑器,在保存文件时,需要指定文件名。,4.1.2 vi的工作模式,vi有3种工作模式:普通模式、编辑模式和命令模式,3种模式之间可以相互切换。在不同状态下编辑器有不同的行为模式。在介绍vi编辑器的各种命令之前,我们必须要了解vi的工作模式。,1普通模式,vi编辑器默认启动时在普通模式,在普通模式下,从键盘输入的任何字符都被当作命令来解释。普通模式下没有任何提示符,当输入命令时立即执行,不需要按回车,而且输入的字符不会在屏幕上显示出来。普通模式下可以输入命令进行光标的移动,字符、单词、行的复制、粘贴以及删除等操作。例如命令l表示将光标向前移动一个字符,命令x表示删除光标所在处的字符。,2编辑模式,编辑模式主要用于文本的输入。在该模式下,用户输入的任何字符都被作为文件的内容保存起来,并在屏幕上显示出来。在普通模式下,输入a(附加命令)、c(修改命令)、i(插入命令)、o(另起新行)、r(取代命今)以及s(替换命令)都将进入编辑模式,此时vi窗口的最后一行会显示“插入”。输入i命令时屏幕上并无变化,但通过执行i命令,编辑器由普通模式切换为了编辑模式。要返回到普通模式,只需按键Esc即可。如果当前已经在普通模式下,那么按Esc键系统会发出提示音。对于初学者,为了确保执行的命令是在普通模式或命令模式之下,不妨多按几下Esc键,直到听到提示音为止。,3命令模式,在命令模式下,用户可以对文本进行一些附加处理,如字符串查找、替换、显示行号等操作。在普通模式下键入冒号即可进入命令模式,此时vi窗口的状态行会显示出冒号,等待用户输入命令。用户输入完成命令后,按回车执行,之后vi编辑器便又返回到普通模式下。如果在命令输入过程中,已经输入了命令的一部分但又不想继续时,只需按Backspace键删除已输入的命令或按两次键Esc即可返回到普通模式。技巧:如果初学者不清楚自己当前处于什么模式时,可以多按几次Esc键,直到系统发出提示音为止,此时便处于普通模式下。经过上面工作模式的介绍,下面我们可以将工作模式以及其切换方式总结为如图所示的内容。,3命令模式,4.1.3 文件的保存和退出,当用户完成文件之后就可以保存文件和退出编辑器。在vi下有多种保存和退出的命令,下面我们就来学习他们。,1保存退出,保存退出是指将缓冲区中的内容写入文件并且退出vi编辑器。我们可以使用的命令wq和x来完成。说明:这些命令都需要在命令模式下执行。,2强行退出,强行退出是指不把缓冲区中的内容写入文件直接退出编辑器,所使用的命令为q!。其中感叹号“!”表示不管文件是否被修改,放弃所修改内容强行退出。,3直接退出,直接退出和强行退出的区别是如果文件内容有修改则给出提示,否则直接退出。直接退出所使用的命令为q。应该强调是,vi编辑器编辑文件时,用户的操作都是基于缓冲区中的副本进行的。如果退出时没有保存到磁盘,则缓冲区中的内容就会被丢失。所以,在退出vi编辑器时应该考虑是否需要保存所编辑的内容,然后再执行合适的退出命令。保存命令为w,如果打开vi时没有给出文件名,这时还需要给出文件名。,4.1.4 光标移动,光标移动是编辑器最基本的功能,与大多数的编辑器不同的是vi编辑器通常不使用鼠标来移动光标。而是完全通过键盘来精确操作的,下面就来介绍这些内容。,1向前移动一个字符,将光标向前移动一个字符有3种方式:l、Space键或方向键。如果在命令的前面加一个数字n,就将光标向前移动n个字符。这里需要注意的是:光标的移动不能超过当前行的末尾。如果给定的数字超过光标当前位置至行尾的字符个数,那么也只能移到行尾。,2向后移动一个字符,将光标向后移动一个字符有3种方式:h、空格键或方向键。同上面的命令类似,如果在命令的前面加一个数字n,就将光标向后移动n个字符,而且光标移动不能超出行首。,3移到下一行,将光标移到下一行有5种方式:+、Enter键、j、Ctr1+n或方向键。这些命令之间是有差别的,+和Enter键是将光标移到下一行的行首,其余几个命令则仅将光标下移一行,所在的列不变。如果下一行比当前光标所在位置还短,则下移到行尾。,4移到上一行,将光标移到上一行有4种方式:-、k、Ctrl+p或方向键。同上面的命令类似,-命令将光标移到上一行的行首,而另外三个命令则保持光标在同一列。将光标向前、向后、向上以及向下移动是编辑器中十分常用的操作,下面对这些命令进行总结,如图所示。,4移到上一行,上面讲述了很多个命令,但图中只列出了其中的一部分,这是我们推荐使用的几个命令。尽管方向键可以用来移动光标,但这样做会大大降低工作效率,因为使用这些键时需要在键盘的字母区和箭头键之间不停地进行转换。推荐使用的这些字符都是精心挑选的,因为这些字符在键盘上都分布在右手周围,这样的安排可以使你快速方便地使用它们,尤其是对于那些用十个手指来使用键盘的用户,而不是二指禅用户而言。说明:学习这些命令的最好办法不是记忆,而是大量练习,使之成为习惯。,5移至行首,将光标移至行首有2种方式:0和。这两个命令之间是有差别的,命令0是将光标移到当前行的第一个字符,不管它是否为空白符;而命令将光标移到当前行的第一个非空白符,即非制表符或非空格符。,6移至行尾,将光标移至行尾使用的命令为$。光标移至行尾后,停留在最后一个字符上。如果在该命令前加数字n,则光标将下移到n-1行的行尾。,7按词前移,将光标按词向前移动的命令为w和W。这两个命令都是将光标向前移至下一个单词的开头,但他们对词的定义是有区别的,命令w搜索的词被定义为以标点符号或空白符(制表符、换行符或空格等)分隔的字母数字串;而命令W搜索的词被定义为非空白字符串。,8按词后移,将光标按词向后移动的命令为b和B。这两个命令都是将光标向后移至上一个单词的开头。同样,他们对词的定义是有区别的,这里就不举例说明了。,9移至词尾,将光标移至当前字符所在单词词尾的命令为e和E。他们对词的定义与上面类似。,10移至指定行,将光标移至指定行的开头可以使用的命令为::行号行号G注意:笔者推荐使用第1个命令,但需要注意的是,这个命令是在命令模式下执行,而非普通模式。如果没有给出行号,则光标将移至该文件最后一行的开头。为了在vi编辑器中显示行号,可以使用如下命令,其中第2条命令是第1条命令的简写形式::set number:set nu将行号去掉可以使用如下命令::set nonumber:set nonu,4.1.5 屏幕滚动,在编辑或查看一段比较长的代码时,常常整个屏幕是不足以容纳这些内容的,因此就会用到屏幕滚动。在vi编辑器中,尽管可以使用键盘上的Page Up键和Page Down键来完成这些操作,甚至使用方向键和,但效率都比较低。下面来介绍屏幕滚动相关的命令。,1向后滚动一屏,我们可以使用Ctrl+f命令来向下滚动一屏。说明:为了保证用户阅读的连贯性,滚屏后保留了上一屏的最后两行。,2向后滚动半屏,我们可以使用Ctrl+d命令来向下滚动半屏。,3向前滚动一屏,向前滚动一屏的命令为Ctrl+b。,4向前滚动半屏,向后滚动半屏的命令为Ctrl+u。,5屏幕定位,在查看一个文件的时候,经过多次向下查看后,光标会定位在编辑器的底端,如果想查看当前行前后的几行内容,这时可以使用命令zz将当前行置为屏幕正中央。同样,命令zt会将当前行置于屏幕顶端,而命令zb则会将当前行置于屏幕底端。另外,将屏幕直接定位于文件的第一屏或最后一屏也是经常遇到的问题,命令gg和G可以完成这个功能。使用这些命令后,光标会随之定位到第一屏的第一行或最后一屏的最后一行上,即文件的第一行和最后一行。,4.1.6 输入、删除与修改文本,输入、删除与修改文本在编辑过程中是占有很大比例的。这些操作在vi编辑器中大部分是在编辑模式下完成的,因此,在完成操作后用户应该注意将其模式切换回来。,1插入命令,文本插入有两种形式的命令:i和I。其中命令i是将其后输入的字符插入到当前光标位置之前,光标后的文本相应向后移动。命令I是将其后输入的字符插入到当前光标所在行的行首。注意,这里的行首指行的第一个非空白字符。,2附加命令,附加文本有两种形式的命令:a和A,其中命令a是将其后输入的字符插入到当前光标位置之后,而命令A是将其后输入的字符追加到当前光标所在行的行尾。,3另起新行,另起新行有两种形式的命令:o和O,其中命令o是在当前行的下面另起一行,命令O是在当前行的上面另起一行。新行创建完成后,光标停在新行的行首,等待输入文本。注意:执行以上这三组命令,编辑器的模式会由普通模式切换为编辑模式。,4删除字符,删除字符有两种形式的命令:x和X。其中命令x删除光标所在处的字符,而命令X删除光标前面的那个字符。如果前面给出一个数值n,则删除由光标所在字符开始向右的n个字符。,5删除行,删除行有两种形式的命令:dd和D。命令dd删除光标所在的行;命令D删除从光标所在位置开始到行尾的所有字符。字母d可以与光标移动命令组合,删除从光标位置开始到由光标移动命令限定的文本对象的末尾。向前删除会删除光标所在字符,而向后删除则不包括光标所在字符。如果光标移动命令涉及多行,则删除操作从当前行开始至光标移动所限定的行为止。例如:d:从光标位置删至行首,不包括光标位;d$:从光标位置删至行尾,包括光标位,与D作用相同;dG:删除当前行至文件尾的内容dgg:删除当前行至文件头的内容,6修改文本,修改文本有3种形式的命令:c、C和cc。他们的作用是用新输入的文本代替原来的文本,这等价于将原来的文本删除后,利用命令i插入新的文本。命令c一般与光标移动命令组合使用,以此来限定删除文本的范围,之后输入新的文本,最后按Esc键返回到普通模式。C命令用来修改从光标位置到行尾的文本。C命令除了可修改光标所在行的内容外,还可修改指定行数的文本内容。例如,3C就把光标所在字符(不是整行)至下面两个整行末尾的内容都删除,由随后输入的文本内容代替。命令cc的功能和C相同,只是修改的范围不同,它修改从光标所在的整行内容,而不管光标处于该行的哪一列。,7取代文本,取代文本有两种形式的命令:r和R。其中命令r是用其后输入的单个字符取代光标所在处的字符。如果在r前面加一个数字n,则用其后输入的单个字符取代光标所在处开始向后的n个字符。R命令用其后输入的文本取代光标所在处开始的若干个字符,每输入一个字符就取代原有的一个字符。如果新输入的字符数超过原有的对应字符数,则多出部分就附加在后面。,4.1.7 复制与粘贴,vi中的复制与粘贴是利用缓冲区来完成的。vi编辑器中的缓冲区分为无名缓冲区和命令缓冲区。无名缓冲区以数字编号,一共有9个。使用删除命令删除的文本就被放在这些缓冲区中,最近一次删除的内容保存在缓冲区1中,次近的在缓冲区2中,依此类推,用户可以使用命令把他们提取回来。,1粘贴,粘贴缓冲区中的文本有两种形式的命令:p和P。这两个命令之间的区别是:命令p将文本放在当前行之下或当前光标之后;而命令P将文本放在当前行之上或者光标之前。例如:输入命令(“3p),其中的(“3)用来引用缓冲区3,单个双引号后紧跟缓冲区的编号。,2复制,复制文件内容有两种形式的命令:yy和y。其中yy表示复制整行内容,而后者则通过光标移动命令来限定的被复制的文本。yyy命令缓冲区是指以字母az命名的缓冲区,利用命名缓冲区可很好地保存若干文本段,便于以后存取、移动或者重排。访问这些缓冲区时,和前面一样,使用单个双引号。如果没有指定缓冲区的名字,文本就被插入到无名缓冲区中。如果使用大写字母表示缓冲区,则文本就附加到该缓冲区中,缓冲区中的原有内容不会被覆盖。,3不使用缓冲区的复制与移动,不使用缓冲区完成文本行复制和移动的命令为co,它的基本格式如下::,co 这个命令在命令模式下执行,其中开始行和结束行标识了文本复制的范围,而目标行则是文本粘贴的位置。同样,文本的移动可以使用m命令。它的基本格式为::,m,4.1.8 查找与替换,查找和替换也是在文件编辑过程中经常使用的操作,vi编辑器提供了很多快捷的命令来实现这些操作。下面就来详细学习这些内容。,1查找,vi编辑器中使用“/”后加需要查找的字符完成查找。用户输入完成后按Enter键开始搜索,这时编辑器会高亮显示搜索结果。可以使用命令n来实现光标在搜索结果中的移动。命令?与/的工作方式相同,只是搜索方向相反。?str向后查找字符串str,并将光标定位在str的第一个字母上。使用上面介绍的命令在查找独立单词时会出现问题,例如使用/the来查找时,很有可能会匹配到单词soothe和there,这时需要使用如下的形式:/同理,要匹配一行的开头与结尾需要使用和$字符,例如:big$这个命令只能匹配到一行末尾的单词big。在搜索命令中,有几个比较重要的选项::set ignorecase如果不关心目标字符串中字母的大小写,可以设置ignorecase选项来忽略大小写。这时在搜索the时,会同时匹配The和THE等字符串。:set incsearch在键入目标字符串的过程中vi就开始了搜索工作,使用这种方法可以让用户在尚未完全键入字串时就能找到目标。:set nowrapscan,2替换命令,文本替换有两种方式的命令:s和S。其中命令s用随后输入的文本替换光标所在处的字符。注意:区分取代命令r和替换命令s之间的差别,r只用一个新字符替换光标所在字符,编辑器的模式并未发生变化,而替换命令s则将编辑器由普通模式切换为编辑模式,最后需要用户按Esc键返回普通模式。命令S将新输入的文本替换当前行,即S命令相当于将原来的文本删除后,进入编辑模式插入新的文本。,3全局替换,全局替换命令有几种常用的格式:g/s1/s/s2/将包含字符串s1的所有行中用字符串s2替换s1的首次出现,即如果在当前行中包含两个或更多,只有头一个被替换。如果要将文件中的所有字符串s1都替换为字符串s2,则使用如下的命令:g/s1/s/s2/g 该命令的功能与上面的相同,只是在替换之前给出提示要求用户确认。如果回答y,则进行替换,否则不做替换。,4.1.9 其他功能,除上面我们学习的命令以外,vi编辑器还有很多的命令,限于篇幅原因,我们下面再来简单介绍几个比较实用的命令。如果读者想深入学习vi编辑器的其他内容可以参考相关书籍。,1还原,还原执行的操作有两种形式的命令:u和U。他们可以用来撤销之前所做的改动。命令U会将文件恢复到被编辑之前的状态。,2重复,重复上一个操作可以使用命令“.”。该命令用来重复刚才的插入或删除命令。,3挂起与恢复,vi编辑器可以使用Ctrl-z来挂起,该命令停止vi的执行,使用户回到启动vi的Shell中去,这样方便用户在文件的编辑器过程中返回Shell完成一些其他操作。之后用户可以使用命令fg回到vi编辑器中,返回时原来的状态会被还原。,4.2 vi编辑程序技巧,在前面的小节中我们介绍了vi编辑器基本的使用方法。在本节中我们就来介绍vi编辑器在程序设计及过程中可以提高工作效率的几项技巧,包括光标的跳转、关键字补全以及源代码缩进等内容。,4.2.1 程序中光标的跳转,我们知道在程序编写过程中特别是调试程序的时候,光标位置需要经常进行跳转,vi编辑器中提供了快速实现这一功能的命令,下面我们就来学习这些命令。,1括号匹配跳转,在程序的设计过程中经常需要在两个括号之间跳转。命令%可以实现括号之间的跳转,转到与当前光标下的括号相匹配的那一个括号上去。如果当前光标在“(”上,就向后跳转到与它匹配的“)”上,如果当前在“)”上,就向前自动跳转到匹配的“(”上去。如果当前光标并没有停留在一个可用的括号字符上,命令%也会向前为它找到一个,但只会在当前行内进行查找。,2当前文件标识符搜索,当前文件标识符跳转用来在程序中搜索局部变量名或函数名。命令gd可以在当前文件中对局部变量名或函数名进行搜索,并将光标定位在第一次出现的位置。这项功能对查找一些静态的变量或函数比较有用。,3当前项目标识符跳转,当前项目标识符跳转可以在文件中搜索所有包含指定标识符的行。实现这个功能可以使用I命令,该命令会列出所有包含该标识符的行包括头文件以及被头文件包含的文件。,4.2.2 关键字补全,关键字补全用于在程序编写过程中为关键字作出提示。相应的命令为Ctrl-p和Ctrl-n,这两个命令之间的差别只是在于搜索的顺序。例如在源程序中输入printf函数时,我们只输入其中一部分。此时键入Ctrl-n,屏幕中会出现相应的函数选项,此时可以使用上下方向键进行选择。除了关键字外,还可以补全前面定义的变量或函数名。,4.2.3 源代码的缩进,源代码缩进可以使程序层次更加清晰也可以使可读性增强而且也利于排除错误。vi编译器中提供了自动缩进和手动缩进两种功能,下面就来学习这些知识。,1自动缩进,自动缩进可以通过设置缩进量来实现,命令如下::set cindent shiftwidth=2这里将缩进设置为2个空格。使用自动缩进的另一个辅助作用是帮助用户发现程序里的错误,如结束一个函数的定义时,如果发现缩进量与期望的有出入时,这时很可能是在函数体的某个位置漏掉了一个括号。,2手动缩进,并不是所有的程序员都有很好的代码编写习惯,有的时候我们会修改一些缩进相当糟糕的代码。这样我们就可以通过使用手动来整理代码。命令为“=”。,4.3 emacs编辑器的基本使用,emacs编辑器是GNU计划的第一款产品,它除了编辑器功能之外,还实现了很多其他系统功能,例如浏览网站、收发电子邮件、调试程序等,它可以让使用者置身于全功能的操作系统之中。,4.3.1 emacs的启动与退出,在系统提示符下直接输入命令emacs就可以启动emacs编辑器。如果不希望启动X版本的emacs编辑器,可以使用emacs-nw命令。要退出emacs编辑器,只需键入Ctrl-x Ctrl-c命令即可,具体操作为:先按住键盘上的Ctrl键不放,然后依次按下英文字母x和c。说明:emacs编辑器的命令使用了两个特殊的功能键Ctrl和Alt键,一般使用大写字母C和M表示。,4.3.2 文件打开与保存,在emacs中打开文件的命令为Ctrl-x Ctrl-f,输入命令后,在minibuffer(编辑器下方用于命令输入的小窗口)中输入要打开的文件名。如果要打开文件的目录与所显示的目录相同,直接输入文件名即可;否则输入的文件名必须带绝对路径。输入文件名之后,emacs编辑器会新建一个缓冲区,然后将文件的内容复制到缓冲区中,并显示出来。文件打开之后,可以直接对其进行编辑。与vi编辑器不同,emacs编辑器不需要进行工作模式的切换。文件编辑完成之后,接下来就是保存文件,相关的指令有:,1Ctrl-x Ctrl-s,将当前缓冲区中的内容保存到硬盘上,保存的文件名与缓冲区的名称相同,如果文件内容打开之后没有任何改动,则会显示:(No changes need to be saved),2Ctrl-x Ctrl-w,该命令与上面的命令类似,不同之处在于可以使用与缓冲区不同的文件名来保存文件。,3Ctrl-x s,该命令用来保存所有被修改过的缓冲区。输入该命令后,编辑器下方会显示:Save file/home/yanyb/example.c?(y,n,!,.,q,C-r or C-h)这些信息的具体含义如下所示:y:保存所显示的缓冲区;n:不保存所显示的缓冲区;!:保存所有的缓冲区;.:保存所显示的缓冲区,但不保存其他剩余缓冲区;q:离开存档状态,不执行任何存档动作;Ctrl-r:返回存档状态;Ctrl-h:查看系统帮助信息。,4.Ctrl-x Ctrl-c,该命令用来将缓冲区中的内容保存到硬盘上,并退出emacs编辑器。,4.3.3 光标移动与屏幕滚动,将光标向前、向后、向上以及向下移动是编辑器中十分常用的操作,emacs编辑器对应的命令如图所示。注意:方向键也可以实现上述的光标移动,但不推荐使用。,4.3.3 光标移动与屏幕滚动,光标移动的其他命令还包括如表所示。这些命令前面可以加C-u N表示重复的次数,例如向下移动6行,可以使用C-u 6 C-n命令。,4.3.3 光标移动与屏幕滚动,屏幕滚动的命令如表所示。翻页时,上一页的末尾会保留一部分内容在屏幕的最上方,以保持文件内容的连续性。此外,光标接近屏幕的最下方时,会自动向后翻半页,以方便阅读。,4.3.4 文本编辑,emacs编辑器没有区分工作模式,它采用的是直接输入的方式,因此直接使用命令就可以完成这些操作,下面我们就来介绍文本的删除、复制以及粘贴命令。,1.删除,文本删除的命令如表所示。如果要删除多行文本,可以在同一位置连续按C-k。,2.复制,在进行本文复制之前,首先要选择复制的范围,在起点处使用C-Space命令,将光标移动到终点,使用M-w命令。这样,起点与终点之间的文本就被复制到了系统的缓冲区之中。,3.粘贴,文本粘贴命令为C-y,它会将缓冲区中的文本粘贴到光标所在位置。,4.3.5 查找与替换,查找与替换是一个编辑器常用而且是必备的功能,下面就来简单进行介绍emacs编辑器的查找与替换命令。,1查找,文本查找有两种方式的命令:C-s或C-r。其中C-s命令是从光标的当前位置向后进行查找,输入该命令后,编辑器下方会显示:I-search:输入要查找的文本后,按Enter键,光标将会移动到符合查找条件的字符串处,此时可以继续使用C-s,将光标移动到下一个符合查找条件的字符串。C-r命令是从光标的当前位置向前进行查找,输入该命令后,编辑器下方会显示:I-search backward:输入要查找的文本后,后面的操作与C-s命令类似。,2替换全部字符串,替换全部字符串的命令为M-x replace-string,输入该命令后,编辑器下方会显示:Replace string:输入要替换的字符串,按Enter键,显示结果为:Replace string XXX with:此时输入新的字符串,按Enter键,即可替换光标后所有匹配的字符串。该命令会将光标后所有匹配的字符串一次性替换掉,系统并不会询问用户来进行确认,因此使用时要特别小心。,3选择性替换,选择性替换就是在替换时进行询问,由用户来决定是否进行替换。选择性替换的命令为M-x query-replace,输入该命令后,系统会提示输入要替换的字符串,按Enter键后,输入新的字符串。此时如果系统发现匹配的字符串,用户可以按Enter键进行替换、按n键跳至下一个匹配的字符串,或者按q键中止替换操作。,4.3.6 窗口功能,emacs编辑器可以将窗口水平或者垂直切割为多个部分,而且可以在不同窗口中分别显示和编辑不同的文件。窗口功能相关的命令如表所示。,4.3.7 帮助功能,emacs编辑器提供了丰富的联机文档,我们可以通过联机文档来获取一些帮助,下面给出一些常用的联机帮助命令,如表所示。,4.4 小结,本章介绍了Linux系统下最常用的两个编辑器。编辑器是用来完成源代码编辑和修改的重要工具,是程序设计的第一步。如果想在Linux系统下进行程序设计,必须先掌握一个编辑器的使用方法。vi是最通用的编辑器,所以本章重点介绍了它的使用方法和常用功能;emacs编辑器是一个功能强大的以文本编辑为基础的集成环境,涉及内容非常多,本章只介绍了它的基本使用方法。这两个编辑器功能都很强大,但对于初学者来说还是必须要下一番工夫才能熟练掌握它们。,