基本上 vi 共分为三种模式,分别是“一般指令模式”、“编辑模式”与“命令行命令模式”。 这三种模式的作用分别是:
- 一般指令模式 (command mode)
以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、贴上”来处理你的文件数据。
- 编辑模式 (insert mode)
在一般指令模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下“i, I, o, O, a, A, r, R”等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现“ INSERT 或 REPLACE ”的字样,此时才可以进行编辑。而如果要回到一般指令模式时, 则必须要按下“Esc”这个按键即可退出编辑模式。
- 命令行命令模式 (command-line mode)
在一般模式当中,输入“ : / ? ”三个中的任何一个按钮,就可以将光标移动到最下面那一列。在这个模式当中, 可以提供你“搜寻数据”的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!
简单的说,我们可以将这三个模式想成下面的图示来表示:
图9.2.1、vi三种模式的相互关系
注意到上面的图示,你会发现一般指令模式可与编辑模式及命令行界面切换, 但编辑模式与命令行界面之间不可互相切换喔!这非常重要啦!闲话不多说,我们下面以一个简单的例子来进行说明吧!
Tips过去鸟哥的前一版本中,一般指令模式被称为一般模式。但是英文版的 vi/vim 说明中,一般模式其实是“ command mode ”的意思!中文直译会变成指令模式啊! 之所以称为指令模式,主因是我们可以在一般模式下面按下很多特殊的指令功能!例如删除、复制、区块选择等等!只是这个模式很容易跟命令行界面 (command-line) 混淆~ 所以鸟哥过去才称为一般模式而已。不过真的很容易误解啦!所以这一版开始,这一模式被鸟哥改为“一般指令模式”了!要尊重英文原文!