3.4. vi 编辑器

文本编辑器仍用于执行许多系统管理任务和编程。在 Unix 世界中,vi 是一款很好的编辑器,它提供了便于使用的编辑功能,而且比许多具有鼠标支持的编辑器更符合人体工程学。

3.4.1. 操作方式

[Note]按键的显示

在下面找到使用按键就可以在 vi 中输入的一些命令。它们以大写方式显示在键盘上。如果要输入大写的字母,则会通过显示按键组合明确说明,其中包括 Shift 键。

vi 基本上采用三种操作方式:插入方式、命令方式和扩展方式。根据操作方式,各按键具有不同的功能。启动时,vi 通常被设置为命令方式。首先需要了解如何在这些方式之间进行切换:

命令方式切换到插入方式

此时有许多选择,其中使用 A 可以进行追加,使用 I 可以进行插入,使用 O 可以在当前行下创建一个新行。

插入方式切换到命令方式

Esc 键退出插入方式。不能在插入方式下终止 vi,所以一定要习惯于按 Esc 键。

命令方式切换到扩展方式

通过输入冒号 (:) 可以激活 vi 的扩展方式。扩展ex 方式类似于一个独立的面向行的编辑器,可用于多种简单和较复杂的任务。

扩展方式切换到命令方式

扩展方式下执行命令后,编辑器将自动返回命令方式。如果决定不在扩展方式下执行任何命令,请使用 <— 删除冒号。编辑器即返回到命令方式。

必须先从插入方式切换到命令方式,之后才能切换到扩展方式。

vi 与其它编辑器一样,也有自己的终止程序的过程。您不能在插入方式下终止 vi。首先,按 Esc 键退出插入方式。接下来有两种选择:

  1. 退出而不进行保存: 要终止编辑器而不保存更改,请输入 : Q !,在命令方式下输入。感叹号 (!) 使 vi 忽略任何更改。

  2. 保存并退出: 保存您的更改并终止编辑器可以采用多种方法。在命令方式下,使用 Shift-Z-Shift-Z。要使用扩展方式保存所有更改并退出程序,请输入 : W Q。在扩展方式中,w 表示写,q 表示退出。

3.4.2. 使用 vi

vi 可用作常规编辑器。在插入方式下,可以输入文本,也可以使用 <—Del 删除文本。使用箭头键可以移动光标。

但这些控制键经常会出现问题,因为有许多终端类型使用特殊键代码。这时就要使用命令方式。按 Esc 键从插入方式切换到命令方式。在命令方式下,使用 HJKL 键移动光标。这些键具有以下功能:

H

左移一个字符

J

下移一行

K

上移一行

L

右移一个字符

命令方式下,允许命令采用多种变化形式。要多次执行一个命令,只需要在输入实际命令之前输入重复次数即可。例如,输入 5 L 可将光标右移 5 个字符。

表 3.1 “vi 编辑器中的简单命令” 中显示了重要命令的选择。此列表不完整。可在 第 3.4.3 节 “参考信息” 的文档中找到更完整的列表

表 3.1. vi 编辑器中的简单命令

Esc

更改为命令方式

I

改为插入模式(字符显示在当前光标位置)

A

改为插入模式(字符插入到当前光标位置之后)

Shift-A

改为插入模式(在行末添加字符)

Shift-R

更改为替换方式(覆盖旧文本)

R

替换光标下的字符

O

改为插入模式(在当前行之后插入新行)

Shift-O

改为插入模式(在当前行之前插入新行)

X

删除当前字符

D D

删除当前行

D W

删除到当前单词的末尾

C W

改为插入模式(用随后输入的内容覆盖当前单词的剩余部分)

U

复原上一个命令

Ctrl-R

重做复原的更改

Shift-J

连接下一行与当前行

.

重复上一个命令

3.4.3. 参考信息

vi 支持多种不同的命令。它支持使用宏、快捷方式、命名缓冲区和许多其他有用的功能。本手册不包含各种选项的详细描述。SUSE Linux 附带 vim(经过改进的 vi),它是 vi 的改进版本。此应用程序有许多信息源:

[Important]VIM 许可证

vim 是一款“慈善软件”,这意味着作者不对此软件收取任何费用,但鼓励您进行捐款以支持一项非营利计划。此项目恳请帮助乌干达的可怜儿童。有关详细信息,请访问 http://iccf-holland.org/index.htmlhttp://www.vim.org/iccf/http://www.iccf.nl/