《Linux操作系统原理与应用》课件-第3章_第1页
《Linux操作系统原理与应用》课件-第3章_第2页
《Linux操作系统原理与应用》课件-第3章_第3页
《Linux操作系统原理与应用》课件-第3章_第4页
《Linux操作系统原理与应用》课件-第3章_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 vi文本编辑器3.1

vi文本编辑器概述3.2vi基本命令3.3vi常用末行命令

3.1 vi文本编辑器概述

3.1.1 vi文本编辑器介绍Linux的文本编辑器有多种,其中vi(visual)是最基本的文本编辑工具。vi诞生于1978年,由加州大学伯克利分校的BillJoy编写。从其诞生至今,vi始终是所有UNIX/Linux系统上必配的编辑器。目前Linux系统上使用的是vi的增强版vim,它是一个开源软件。

vi是一个全屏幕文本编辑器,具有文本编辑的所有功能,尤以高效和快捷著称。数十年来,vi始终在编辑器领域保持领先地位,这主要归功于它的以下几个突出特点:

1. 强大专一的编辑功能

2. 广泛的适用性

3. 灵活快捷的操作方式

4. 高度的可配置性

3.1.2 vi的工作模式

vi是一个多模式的软件,在不同的工作模式下,它对输入的内容有不同的解释。

命令模式(normalmode)用于执行各个文本编辑命令。

插入模式(insertmode)用于完成文本录入工作。

末行模式(lastlinemode)也称为ex模式。

在文本编辑过程中,用户可以用命令控制vi在这3种工作模式之间进行切换,完成各种编辑工作。3种模式之间的转换方式如图3-1所示。图3-1vi工作模式的转换

3.1.3 vi的基本工作流程

启动vi的方法是在Shell下输入vi命令,命令的格式是:

vi[文件]

vi的启动过程是:先建立一个编辑缓冲区,若指定了文件且该文件已存在,则将其内容读到编辑缓冲区中;若指定的文件不存在,则建立此文件。随后vi显示全屏幕编辑环境,将光标定位在第1行第1列的位置上。图3-2(a)是vi启动后的初始界面。屏幕末行显示的是文件名称等信息。光标位置的字符通常以反显方式或下划线方式显示。“~”表示编辑区的空行,它们不是文件的组成部分。

vi启动后首先进入命令模式。此时,用户可以使用vi的编辑命令进行文本的输入和修改。进入插入模式的方法是按Insert键或插入命令字符,见图3-2(b)。输入完成后按Esc键返回命令模式,见图3-2(c)。此后可以使用各种编辑命令对已输入的文本进行修改,具体的用法在第3.2节介绍。注意:编辑命令只是修改调入编辑缓冲区中的文件的副本,文件本身不会被修改。所以,编辑完成后,要用末行命令“:wq”将修改后的内容保存到文件中并退出vi。若此次运行未对原文件作任何修改,则可用“:q”命令退出。

例3.1 vi的基本用法如图3-2所示。图3-2vi的基本工作流程示例

3.2 vi基本命令

vi命令通常是简单的字符或是字符组合(注意:vi的命令是区分大小写的)。字符命令的优势在于仅用普通键盘就可以完成所有编辑工作,完全不倚赖于鼠标和控制键。尽管如此,vi还是提供了对现代键盘上的编辑键的支持。适当地使用这些熟悉的按键将使编辑操作更加轻松。表3-1列出了这些键在不同模式下的作用。

3.2.1 光标移动

在输入或修改文本前,应先将光标移到适当的位置。vi不支持用鼠标定位光标,只可以用命令或按键来移动光标。以下是常用的光标移动命令:

3.2.2 输入与删除

1. 文本的输入

在输入文本内容之前,应先将光标定位在要输入的位置上,然后执行插入命令,进入插入模式。处于插入模式时,屏幕底部会显示“INSERT”提示,表示后续的输入都作为文件的输入内容。输入完成后按Esc键就可返回命令模式。

插入命令都是单字符命令,包括a(append)命令、i(insert)命令和o(open)命令。用这些命令可以灵活地实现在当前光标位置的前、后、行首、行尾、上一行、下一行开始输入。常用的插入命令如下:

2. 文本的删除

删除文本的最简单方法是将光标移到要删除的位置,然后按Delete键删当前字符,或按Backspace键删光标前的字符。当要删除的文本较多时,使用d(delete)命令更为灵活。

以下是常用的删除命令:

例3.2插入与删除命令的用法(下划线处为光标位置)。

3.2.3 修改与替换

1. 文本的修改

文本修改是指改写部分文本的内容,对应的是c(correct)命令。修改的过程是:先删除指定范围内的文本,然后插入新文本,最后用Esc键结束插入。以下是常用的修改命令:

2. 文本的替换与替代

替换是指用一个字符替换另一个字符,对应的是r(replace)命令。替换是一种覆盖操作,替换后文本的长度保持不变。替代则是指用多个字符取代一个字符或一行,对应的是s(substitute)命令。替代是一个先删除后插入的操作。通常情况下,替代后的文本长度会发生变化。

例3.3修改、替换与替代命令的用法。

3.2.4 复制、粘贴与选择

1. 文本的复制与粘贴

vi中设置了专门的缓冲区,其作用相当于剪贴板。复制操作是将指定的文本复制到剪贴板中,对应的是y(yank)命令;粘贴操作是将剪贴板中的内容插入到文本中,对应的是p(put)命令。此外,前面介绍的删除命令其实是剪切操作,被删除的文本并没有真正消失,而是暂存到剪贴板中,可以再粘贴到文本中。

以下是常用的复制粘贴命令:

2. 文本的选择

选择就是用可视化方式选定文本的范围,对应的是v(visual)命令。输入选择命令后vi即进入可视模式,此时使用光标移动命令即可将移动范围内的文本选中。选中的文本会以高亮方式直观地显示出来,之后可对选中的文本进行复制、删除、修改、替换等操作。输入操作命令或按Esc键即退出可视模式。

以下是常用的选择命令:

例3.4选择、复制与粘贴命令的用法,如图3-3所示。图3-3选择、复制与粘贴命令用法示意图3-3选择、复制与粘贴命令用法示意

3.2.5 撤销与重做

撤销即消除上一个命令所做的修改,恢复到命令执行前的样子。重做就是重复执行上一个命令。撤销对应的命令是u(undo)命令,重做对应的命令是“.”命令,如下所示:

u 撤销上一个命令所做的修改。

U 撤销最近针对一行所做的全部修改。在对一行连续做了多处修改后,用此命令可以一次恢复全行。

. 重复执行前一个命令。

3.3 vi常用末行命令

3.3.1 搜索与替换命令1. 字符串搜索要在一个大文件中查找某个字符串,可以用字符串搜索命令。执行搜索命令后,光标将停留在第一个匹配字符串的首字符处。按n或N则移到下一个匹配字符串之首。如果不存在匹配的字符串,则会在末行上显示“Patternnotfound”。

搜索命令有以下两种:

2. 字符串替换

字符串替换使用s(substitute)命令,它的功能是在指定的行中搜索与指定模式相匹配的字符串,并用另一个字符串替换它。s命令的一般格式是:

例3.5 s命令的用法。

3. 全局搜索

全局搜索使用g(global)命令,其功能是在全文中搜索含有与指定模式相匹配的字符串的行,对匹配的行做标记。g命令的格式是:

:g/p1搜索所有包含p1字符串模式的行。

:g!/p1搜索所有不包含p1字符串模式的行。

4. 全局编辑

vi的许多末行命令都是针对行的编辑命令。g命令可以与这些命令联合使用,其作用是为这些命令确定满足某个条件的目标行。在g命令的作用下,这些面向行的编辑命令就可用来完成面向全文的编辑操作。全局编辑命令的格式是:

:g/p1/命令对所有包含p1的行执行指定的命令。

:g!/p1/命令对所有不包含p1的行执行指定的命令。

5. 全局替换

s命令是面向行的字符串替换命令。s命令经常与g命令联合使用,实现更灵活、更细致的全局替换功能。全局替换命令的一般格式是:

g命令/s命令

全局替换的含义是:先用g命令在文件中搜索含有某个模式的行,并做标记,然后用s命令对所有有标记的行执行搜索和替换。

常用的全局替换命令的格式有:

例3.6全局替换命令的用法。

3.3.2 文件操作与退出命令

文件操作命令包括读文件和写文件操作。读文件就是将文件的内容读入编辑缓冲区中,写文件就是将编辑缓冲区的内容保存到文件中。在退出vi时,可以选择是否保存文件。以下是常用的退出和文件操作命令:

3.3.3 其他常用命令

1. 行编辑命令

行编辑命令用于对指定的行进行编辑。在指定行范围时,可以用“.”代表当前行,用“$”代表最后一行,用“%”代表所有行。常用的行编辑命令如下:

2. 执行Shell命令

用vi编辑文件时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论