Linux系统提供了一个完整的编辑器家族系列,如Ed、Ex、Vi和Emacs等。按功能它们可以分为两大类:行编辑器(Ed、Ex)和全屏幕编辑器(Vi、Emacs)。行编辑器每次只能对一行进行操作,使用起来很不方便。而全屏幕编辑器可以对整个屏幕进行编辑,用户编辑的文件直接显示在屏幕上,从而克服了行编辑的那种不直观的操作方式,便于用户学习和使用,具有强大的功能。
Vi是Linux系统的第一个全屏幕交互式编辑程序,它从诞生至今一直得到广大用户的青睐,历经数十年仍然是人们主要使用的文本编辑工具,足以见其生命力之强,而强大的生命力是其强大的功能带来的。由于大多数读者在此之前都已经用惯了Windows的word等编辑器,因此,在刚刚接触时总会或多或少不适应,但只要习惯之后,就能感受到它的方便与快捷。
3.2.1 Vi的三种模式
Vi有3种模式,分别为命令行模式、插入模式及底行模式各模式的功能区分如下:
(1)命令行模式
用户在用Vi编辑文件时,最初进入的为一般模式。在该模式中可以通过上下移动光标进行“删除字符”或“整行删除”等操作,也可以进行“复制”、“粘贴”等操作,但无法编辑文字。
(2)插入模式
只有在该模式下,用户才能进行文字编辑输入,用户课按[ESC]键回到命令行模式。
(3)底行模式
在该模式下,光标位于屏幕的底行。用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号等。
3.2.2 Vi的基本流程
(1)进入Vi,即在命令行下键入:Vi hello(文件名)。此时进入的是命令行模式,光标位于屏幕的上方,如图3.2所示。
(2)在命令行模式下键入i进入到插入模式,如图3.3所示,可以看出,在屏幕底部显示有“插入”表示插入模式,在该模式下可以输入文字信息。
图3.2 进入Vi命令行模式
图3.3 进入Vi插入模式
(3)最后,在插入模式中,输入“Esc”,则当前模式转入命令行模式,并在底行行中输入“:wq”(存盘退出)进入底行模式,如图3.4所示:
这样,就完成了一个简单的Vi操作流程:命令行模式→插入模式→底行模式。由于Vi在不同的模式下有不同的操作功能,因此,读者一定要时刻注意屏幕最下方的提示,分清所在的模式。
图3.4 进入Vi底行模式
3.2.3 Vi的各模式功能键
(1)命令行模式常见功能键如表3.1所示。
表3.1 Vi命令行模式功能键
目 录
|
目 录 内 容
|
I
|
切换到插入模式,此时光标当于开始输入文件处
|
A
|
切换到插入模式,并从目前光标所在位置的下一个位置开始输入文字
|
O
|
切换到插入模式,且从行首开始插入新的一行
|
[ctrl]+[b]
|
屏幕往“后”翻动一页
|
[ctrl]+[f]
|
屏幕往“前”翻动一页
|
[ctrl]+[u]
|
屏幕往“后”翻动半页
|
[ctrl]+[d]
|
屏幕往“前”翻动半页
|
0(数字0)
|
光标移到本行的开头
|
G
|
光标移动到文章的最后
|
nG
|
光标移动到第n行
|
$
|
移动到光标所在行的"行尾"
|
n<Enter>
|
光标向下移动n行
|
/name
|
在光标之后查找一个名为name的字符串
|
?name
|
在光标之前查找一个名为name的字符串
|
X
|
删除光标所在位置的"后面"一个字符
|
目 录
|
目 录 内 容
|
X
|
删除光标所在位置的"前面"一个字符
|
dd
|
删除光标所在行
|
ndd
|
从光标所在行开始向下删除n行
|
yy
|
复制光标所在行
|
nyy
|
复制光标所在行开始的向下n行
|
p
|
将缓冲区内的字符粘贴到光标所在位置(与yy搭配)
|
U
|
恢复前一个动作
|
(2)插入模式的功能键只有一个,也就是Esc退出到命令行模式。
(3)底行模式常见功能键如表3.2所示。
表3.2 Vi底行模式功能键
目 录
|
目 录 内 容
|
:w
|
将编辑的文件保存到磁盘中
|
:q
|
退出Vi(系统对做过修改的文件会给出提示)
|
:q!
|
强制退出Vi(对修改过的文件不作保存)
|
:wq
|
存盘后退出
|
:w [filename]
|
另存一个命为filename的文件
|
:set nu
|
显示行号,设定之后,会在每一行的前面显示对应行号
|
:set nonu
|
取消行号显示
|
注意
|
Vi的升级版Vim已经问世了,功能相当强大,且保持与Vi的90%相兼容,因此,感兴趣的读者可以查看相关资料进行学习。
|