1.2.4 Vi、Vim编辑器的使用

可视化接口(Visual interface,Vi)也称为可视化界面,它为用户提供了一个全屏幕的窗口编辑器,窗口中一次可以显示一屏的编辑内容,并可以上下滚动。Vi是所有UNIX和Linux操作系统中的标准编辑器,类似于Windows操作系统中的记事本。对于UNIX和Linux操作系统中的任何版本,Vi编辑器都是完全相同的,因此可以在其他任何介绍Vi的地方进一步了解它。Vi也是Linux中基本的文本编辑器,学会它后,可以在Linux(尤其是终端)中畅通无阻。

V1-5 Vi、Vim编辑器的使用

Vim(Visual interface improved)可以看作Vi的改进升级版。Vi和Vim都是Linux操作系统中的编辑器,不同的是,Vim比较高级,Vi用于文本编辑,但Vim更适用于面向开发者的云端开发平台。

Vim可以执行输出、移动、删除、查找、替换、复制、粘贴、撤销、块操作等,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序没有的功能。但Vim不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文件编辑程序,Vim是全屏幕文件编辑器,没有菜单,只有命令。

在命令行中执行vim filename命令,如果filename已经存在,则该文件被打开且显示其内容;如果filename不存在,则Vim会在第一次存盘时自动在硬盘中新建filename文件。

Vim有3种基本工作模式:命令模式、编辑模式、末行模式。考虑到各种用户的需要,采用状态切换的方法可以实现工作模式的转换,切换只是习惯性的问题,一旦熟练使用Vim,就会觉得它非常易于使用。

1.命令模式

命令模式(其他模式→Esc)是用户进入Vim后的初始模式,在此模式下,用户可以输入Vim命令,使Vim完成不同的工作任务,如光标移动、复制、粘贴、删除等,也可以从其他模式返回命令模式,在编辑模式下按“Esc”键或在末行模式下输入错误命令都会返回命令模式。Vim命令模式的光标移动命令操作及其功能说明如表1.23所示。Vim命令模式的复制和粘贴命令操作及其功能说明如表1.24所示。Vim命令模式的删除命令操作及其功能说明如表1.25所示。Vim命令模式的撤销与恢复命令操作及其功能说明如表1.26所示。

表1.23 Vim命令模式的光标移动命令操作及其功能说明

续表

表1.24 Vim命令模式的复制和粘贴命令操作及其功能说明

表1.25 Vim命令模式的删除命令操作及其功能说明

表1.26 Vim命令模式的撤销与恢复命令操作及其功能说明

2.编辑模式

在编辑模式(命令模式→a/A、i/I或o/O)下,可对编辑的文件添加新的内容并进行修改,这是该模式的唯一功能。进入该模式时,可按“a/A、i/I或o/O”键。Vim编辑模式命令操作及其功能说明如表1.27所示。

表1.27 Vim编辑模式命令操作及其功能说明

3.末行模式

末行模式(命令模式→:或/与?)主要用来实现一些文字编辑辅助功能,如查找、替换、文件保存等。在命令模式下输入“:”字符,即可进入末行模式,若输入命令完成或命令出错,则会退出Vim或返回命令模式。Vim末行模式命令操作及其功能说明如表1.28所示。在末行模式下按“Esc”键可返回命令模式。

表1.28 Vim末行模式命令操作及其功能说明

在命令模式下输入“:”字符即可进入末行模式,在末行模式下可以进行查找与替换操作,其命令格式如下。


:[range] s/pattern/string/[c,e,g,i]  

查找与替换操作各选项及其功能说明如表1.29所示。

表1.29 查找与替换操作各选项及其功能说明

续表

在命令模式下输入“/”或“?”字符即可进入末行模式。在末行模式下可以进行查找操作,其命令格式如下。


/word 或?word 

查找操作各选项及其功能说明如表1.30所示。

表1.30 查找操作各选项及其功能说明

Vim编辑器的使用如下。

(1)在当前目录下新建文件newtest.txt,输入文件内容,执行命令如下。


[root@localhost ~]# vim newtest.txt        //创建新文件newtest.txt

在命令模式下按“a/A、i/I或o/O”键,进入编辑模式,完成以下内容的输入。


1       hello 
2       everyone 
3       welcome 
4       to 
5       here

输入以上内容后,按“Esc”键,从编辑模式返回到命令模式,再输入大写字母“ZZ”,退出并保存文件内容。

(2)复制第2行与第3行文本到文件尾,同时删除第1行文本。

按“Esc”键,从编辑模式返回到命令模式,将光标移动到第2行,在键盘上连续按“2yy”键,再按“G”键,将光标移动到文件最后一行,按“p”键,复制第2行与第3行文本到文件尾,按“gg”键,将光标移动到文件首行,按“dd”键,删除第1行文本,执行以上操作命令后,显示的文件内容如下。


2       everyone 
3       welcome 
4       to 
5       here 
2       everyone 
3       welcome 

(3)在命令模式下输入“:”字符即可进入末行模式,在末行模式下进行查找与替换操作,执行命令如下。


:1,$  s/everyone/myfriend/g 

对整个文件进行查找,用“myfriend”字符串替换“everyone”,无询问即进行替换操作,执行命令后的操作结果如下。


2       myfriend 
3       welcome 
4       to 
5       here 
2       myfriend 
3       welcome

(4)在命令模式下输入“?”或“/”,进行查询,执行命令如下。


/welcome 

按“Enter”键后,可以看到光标位于第2行,welcome闪烁显示,按“n”键,可以继续进行查找,可以看到光标已经移动到最后一行welcome处进行闪烁显示。按“a/A、i/I或o/O”键,进入编辑模式,按“Esc”键返回命令模式,再输入“ZZ”,保存文件并退出Vim编辑器。