![Linux操作系统管理与Hadoop生态圈部署:基于CentOS 7.6](https://wfqqreader-1252317822.image.myqcloud.com/cover/949/32517949/b_32517949.jpg)
3.5 vi文本编辑器
在Linux命令行状态下,常常需要编辑配置文件。同时,进行Shell编程、程序设计等也需要使用编辑器。Linux下包含很多不同的编辑器,vi是其中功能最为强大的全屏幕文本编辑器。
3.5.1 vi简介
vi是所有UNIX及Linux下标准的编辑器,对于UNIX及Linux的任何版本而言,vi是相同的。vim(vi improved)是vi的升级版,功能更强大,并且对vi兼容。CentOS 7.6默认把vi指向vim,在执行vi时,实际上等同于执行vim。
另外,vim具有高度的可配置性,并且带有显著的功能,如语法突出显示、鼠标支持、图形版本、可视模式,以及大量的扩展等。
3.5.2 vi的工作模式和切换
vi有3种基本工作模式,分别是命令模式、文本输入模式和末行模式。
1.命令模式
该模式是进入vi后的默认模式。任何时候,不管用户处于何种模式,按Esc键即可进入命令模式。在该模式下,用户可以输入vi命令,此时从键盘上输入的任何字符都被当作编辑命令来解释。若输入的字符是合法的vi命令,则vi在接受用户命令之后会完成相应的动作。需要注意的是,所输入的命令并不会显示在屏幕上。若输入的字符不是vi命令,则vi会报错。
2.文本输入模式
在命令模式下输入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s,都可以进入文本输入模式。在该模式下,用户输入的任何字符都会被vi当作文件内容显示在屏幕上。在文本输入过程中,若想回到命令模式下,则按Esc键即可。
3.末行模式
末行模式,也称为ex转义模式。在命令模式下,用户输入“:”即可进入末行模式,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的说明符,并等待用户输入命令,在用户输入命令后按Enter键,会在执行完成后自动回到命令模式。大多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。在末行命令执行完后,vi会自动回到命令模式。如果要从命令模式转换到文本输入模式,则可以键入“a”或者“i”。如果需要从文本输入模式返回,则按Esc键即可。在命令模式下,输入“:”即可切换到末行模式,然后输入命令。
3.5.3 启动vi
启动vi非常简单,在提示符下输入“vi[文件名]”即可启动vi。如果不指定文件名,则新建一个未命名的文本文件,在退出vi时必须指定文件名;如果指定文件名,则新建(文件不存在时)或打开同名文件。
例如:
![](https://epubservercos.yuewen.com/1F99D7/17545851306442606/epubprivate/OEBPS/Images/39122_67_1.jpg?sign=1738872711-0oTo2scdHx5J1NbzJI9DXjWFroBfQmjP-0-6dca5b0878bc7f3f96a2a1c592f3150f)
3.5.4 vi常用命令
vi的各类命令是编辑文件的利器,不仅数量很多,而且功能强大。vi常用命令如表3-4所示。
表3-4 vi常用命令
![](https://epubservercos.yuewen.com/1F99D7/17545851306442606/epubprivate/OEBPS/Images/39122_67_2.jpg?sign=1738872711-7Kvicc96ox4WK6bhXUd3jJ4PJVeKVSmL-0-a49b1be25a88cbd2b953254fe3114c23)
续表
![](https://epubservercos.yuewen.com/1F99D7/17545851306442606/epubprivate/OEBPS/Images/39122_68_1.jpg?sign=1738872711-3JevZ3xW7HeK0A3y1o8FC0v23KZ4Wt0V-0-dac11fd682439755dd08af39c8a5edda)
vi在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以“.”开头,并以“.swp”结尾。vi在正常退出时,该文件会被删除,若意外退出,而没有保存文件的最新修改内容,则可以使用恢复命令“:recover”来恢复文件。