4.1 Vim文本编辑器
每当在讲课时遇到需要让学生记住的知识点时,为了能让他们打起精神来,我都会突然提高嗓门,因此有句话他们记得尤其深刻:“在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数”。而且在日常工作中大家也肯定免不了要编写文档,这些工作都是通过文本编辑器来完成的。刘遄老师写作本书的目的是让读者切实掌握Linux系统的运维方法,而不是仅仅停留在“会用某个操作系统”的层面上,所以我们这里选择使用Vim文本编辑器,它默认会安装在当前所有的Linux操作系统上,是一款超棒的文本编辑器。
Vim之所以能得到广大厂商与用户的认可,原因在于Vim编辑器中设置了三种模式—命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法(见图4-1)。
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
图4-1 Vim编辑器模式的切换方法
在每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。在Vim中,无法直接从输入模式切换到末行模式。Vim编辑器中内置的命令有成百上千种用法,为了能够帮助读者更快地掌握Vim编辑器,表4-1总结了在命令模式中最常用的一些命令。
表4-1 Vim中常用的命令
命令 | 作用 |
---|---|
dd | 删除(剪切)光标所在整行 |
5dd | 删除(剪切)从光标处开始的5行 |
yy | 复制光标所在整行 |
5yy | 复制从光标处开始的5行 |
n | 显示搜索命令定位到的下一个字符串 |
N | 显示搜索命令定位到的上一个字符串 |
u | 撤销上一步的操作 |
p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面 |
末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。末行模式中可用的命令如表4-2所示。
表4-2 末行模式中可用的命令
命令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
:q! | 强制退出(放弃对文档的修改内容) |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:命令 | 执行该命令 |
:整数 | 跳转到该行 |
:s/one/two | 将当前光标所在行的第一个one替换成two |
:s/one/two/g | 将当前光标所在行的所有one替换成two |
:%s/one/two/g | 将全文中的所有one替换成two |
?字符串 | 在文本中从下至上搜索该字符串 |
/字符串 | 在文本中从上至下搜索该字符串 |
大家在平日里一定要多使用Vim编辑器,一旦把Vim的各种命令练熟,后面在编辑配置文件时,效率就会有很大的提升。在2011年,有一位名为Aleksandr Levchuk的极客,他就为了追求极致的效率,发起了一个名为VIM Clutch的实验项目。他买了一对类似于汽车油门和刹车的离合器,改装后再用USB与电脑相连,左脚踩刹车是进入编辑模式(i),右脚踩油门是保存文件(wq!)。他对Linux和Vim的热爱真是强大!