vi编辑器简介
配置文件是 Linux 操作系统的显著特征之一,其作用有点类似于 Windows 操作系统中的
注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式。本节将学习如
何使用 Linux 字符操作界面中的文本编辑器——vi,以便更好地管理和维护系统中的各种配
置文件。
vi 是一个功能强大的全屏幕文本编辑工具,一直以来都作为类 UNIX 操作系统的
默认文本编辑器。vim 是 vi 文本编辑器(简称 vi 编辑器)的增强版本,在 vi 编辑器的基
础上扩展了很多实用的功能,但是习惯上也将 vim 称为 vi。
1、 vi 编辑器的工作模式
vi 编辑器是工作在字符终端环境下的全屏幕编辑器,因此编辑界面相对比较简单,没
有为用户提供鼠标操作和菜单系统,而是通过按键命令实现相应的编辑和操作功能。在 vi
编辑界面中可以使用三种不同的工作模式,即命令模式、输入模式和末行模式,在不同的模
式中能够对文件进行的操作也不相同。
命令模式:启动 vi 编辑器后默认进入命令模式。该模式中主要完成如光标移动、
字符串查找,以及删除、复制、粘贴文件内容等相关操作。
输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修
改或添加新的内容。处于输入模式时,vi 编辑器的最后一行会出现“-- INSERT --”
的状态提示信息。
末行模式:该模式中可以设置 vi 编辑环境、保存文件、退出编辑器,以及对文件
内容进行查找、替换等操作。处于末行模式时,vi 编辑器的最后一行会出现
冒号“:”提示符。
命令模式、输入模式和末行模式是 vi 编辑环境的三种状态,通过不同的按键操作可以
在不同的模式间进行切换。例如,从命令模式按:(冒号)键可以进入末行模式,按 a、i、
o 等键可以进入输入模式;在输入模式、末行模式均可按 Esc 键返回命令模式。
使用vi文本编辑器(CentOS 7)_第1张图片
认识了 vi 编辑器的不同编辑模式(状态)以后,下面分别介绍在命令模式、末行模式
中的常见操作方法(输入模式用于录入文本内容,不做特别介绍)。
2、 命令模式中的基本操作
在学习 vi 编辑器的基本操作时,建议学员复制一个内容较多的系统配置文件进行练习,
而不要直接去修改系统文件,以免发生失误造成系统故障。
在 vi 编辑器的命令模式中,可以输入特定的按键(称为 vi 操作命令,注意区别于 Linux
操作系统命令)进行操作,主要包括模式切换、光标移动、复制、删除、粘贴、文件内容查
找及保存和退出等操作,这里只介绍一些最基本且常用的按键命令。
1.模式切换
在命令模式中,按 a、i、o 等键可以快速切换至输入模式,同时确定插入点的方式和位
置,以便录入文件内容。需要返回命令模式时,按 Esc 键即可。常见的几个模式切换键及其
作用如下。
a:在当前光标位置之后插入内容。
A:在光标所在行的末尾(行尾)插入内容。
i:在当前光标位置之前插入内容。
I:在光标所在行的开头(行首)插入内容。
o:在光标所在行的后面插入一个新行。
O:在光标所在行的前面插入一个新行。
2.移动光标
光标方向的移动。直接按↑、↓、←、→四个方向键完成相应的光标移动。
按 Page Down 键或 Ctrl+F 组合键向下翻动一整页内容。
按 Page Up 键或 Ctrl+B 组合键向上翻动一整页内容。
行内快速跳转。
按 Home 键或^键、数字 0 键将光标快速跳转到本行的行首。
按 End 键或$键将光标快速跳转到本行的行尾。
在上述按键操作中,Page Down、Page Up、Home、End 键及方向键同样也可在 vi 的输
入模式中使用。
使用按键命令 1G 或者 gg 可跳转到文件内容的第 1 行。
使用按键命令 G 可跳转到文件的最后一行。
使用按键命令#G 可跳转到文件中的第#行(其中“#”号用具体数字替换)。
为了便于查看行间跳转效果,这里先学习如何在 vi 编辑器中显示行号。只要切换到末
行模式并执行如下的“:set nu”命令即可显示行号,执行“:set nonu”命令可以取消显示
行号。
3.复制、粘贴和删除
按 x 键或 Delete 键删除光标处的单个字符。
使用按键命令 dd 删除当前光标所在行,使用#dd 的形式还可以删除从光标处
开始的#行内容(其中“#”号用具体数字替换)。
使用按键命令 d^删除当前光标之前到行首的所有字符。
使用按键命令 d$删除当前光标处到行尾的所有字符。
复制操作。使用按键命令 yy 复制当前行整行的内容到剪贴板,使用#yy 的形式还
可以复制从光标处开始的#行内容(其中“#”号用具体数字替换)。复制的内容需
要粘贴后才能使用。
粘贴操作。在 vi 编辑器中,前一次被删除或复制的内容将会保存到剪切板缓冲区
中,按 p 键即可将缓冲区中的内容粘贴到光标位置处之后,按 P 键则会粘贴到光标
位置处之前。
4.查找文件内容
在命令模式中,按/键后可以输入指定的字符串,从当前光标处开始向后进行查找(按?
键则向前查找)。完成查找后可以按n、N键在不同的查找结果中进行选择。
5.撤销编辑及保存和退出
在对文件内容进行编辑时,有时候需要对一些失误的编辑操作进行撤销,这时可以使用
按键命令 u、U 键。其中,u 键命令用于取消最近一次的操作,并恢复操作结果,可以多次
重复按 u 键恢复已进行的多步操作;U 键命令用于取消对当前行所做的所有编辑。
当需要保存当前的文件内容并退出 vi 编辑器时,可以使用按键命令 ZZ。
2.4.3 末行模式中的基本操作
在命令模式中按:键可以切换到末行模式,vi 编辑器的最后一行中将显示“:”提示符,
用户可以在该提示符后输入特定的末行命令,完成如保存文件、退出编辑器、打开新文件、
读取其他文件内容及字符串替换等丰富的功能操作。
1.保存文件及退出 vi 编辑器
保存文件。对文件内容进行修改并确认以后,需要执行如下的“:w”命令进行保存。
退出编辑器。需要退出 vi 编辑器时,可以执行“:q”命令。若文件内容已经修改
却没有保存,则仅使用“:q”命令将无法成功退出,这时需要使用如下的“:q!”
命令强行退出(不保存即退出)。
:q!
保存并退出。既要保存文件又要退出 vi 编辑器可以使用一条末行命令“:wq”或“:x”
实现,其效果与命令模式中的 ZZ 命令相同。
2.打开新文件或读入其他文件内容
打开新的文件进行编辑。在当前 vi 编辑器中,执行“:e 新的文件”形式的末行命
令可以编辑(Edit)新文件
在当前文件中读入其他文件内容。执行“:r 其他文件”形式的末行命令可以读入
(Read)其他文件中的内容,并将其复制到当前光标所在位置。
3.替换文件内容
在 vi 编辑器的末行模式中,能够将文件中特定的字符串替换成新的内容,当需要大批
量修改同一内容时,使用替换功能将大大提高编辑效率。使用替换功能时的末行命令格式如
下:
: [替换范围] sub /旧的内容/新的内容[/g]
在上述替换格式中,主要关键字为 sub(Substitute,替换),也可以简写为 s。替换范
围是可选部分,默认时只对当前行内的内容进行替换,一般可以表示为以下两种形式。
%:在整个文件内容中进行查找并替换。
n,m:在指定行数范围内的文件内容中进行查找并替换。
替换格式中最末尾的“/g”部分也是可选内容,表示对替换范围内每一行的所有匹配结
果都进行替换,省略“/g”时将只替换每行中的第一个匹配结果。