
# 学习目标
使用 Vim 编辑器来编写、修改文档。
# 业务场景
对Linux进行日常维护时,需要修改配置文件。
# 学习内容
Vim 之所以能得到广大厂商与用户的认可,原因在于 Vim 编辑器中设置了三种模式—命令 模式、末行模式和编辑模式。
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
三种模式的操作区别以及模式之间的切换方法如下图所示:

在每次运行 Vim 编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。在 Vim 中,无法直接从输入模式切换到末行模式。Vim 编辑器中内置的命令有成百上千种用法,为了能够帮助读者更快地掌握 Vim 编辑器,下表总结了在命令模式中最常用的一些命令。

末行模式主要用于保存或退出文件,以及设置 Vim 编辑器的工作环境,还可以让用户执行外部的 Linux 命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。末行模式中可用的命令如下表所示:

## 编写简单文档
编写脚本文档的第 1 步就是给文档取个名字,这里将其命名为 practice.txt。如果存着该文档,则是打开它。如果不存在,则是创建一个临时的输入文件,如下图所示。

打开 practice.txt 文档后,默认进入的是 Vim 编辑器的命令模式。此时只能执行该模式下的命令,而不能随意输入文本内容,我们需要切换到输入模式才可以编写文档。可以分别使用 a、i、o 三个键从命令模式切换到输入模式。其中,a 键 与 i 键分别是在光标后面一位和光标当前位置切换到输入模式,而 o 键则是在光标的下面再创建一个空行,此时可敲击 a 键进入到编辑器的输入模式,如下图所示。

进入输入模式后,可以随意输入文本内容,Vim 编辑器不会把您输入的文本内容当作命令而执行,如下图所示。

在编写完之后,想要保存并退出,必须先敲击键盘 Esc 键从输入模式返回命令模式,如下图:

然后再输入:wq!切换到末行模式才能完成保存退出操作,如下图:

当在末行模式中输入:wq!命令时,就意味着强制保存并退出文档。然后便可以用 cat 命令 查看保存后的文档内容了。

继续编辑这个文档,要在原有文本内容的下面追加内容,在命令模式中敲击 o 键进入输入模式更会高效,操作如图:


因为此时已经修改了文本内容,所以 Vim 编辑器在我们尝试直接退出文档而不保存的时 候就会拒绝我们的操作了。此时只能强制退出才可以结束本次输入操作。



现在查看文本的内容,果然发现追加输入的内容并没有被保存下来。

## 配置主机名称
为了便于在局域网中查找某台特定的主机,或者对主机进行区分,除了要有 IP 地址外, 还要为主机配置一个主机名,主机之间可以通过这个类似于域名的名称来相互访问。在 Linux 系统中,主机名大多保存在/etc/hostname 文件中,接下来将/etc/hostname 文件的内容修改为 “kingdee”,步骤如下。
第1步:使用 Vim 编辑器修改“/etc/hostname”主机名称文件。
第2步:把原始主机名称删除后追加“kingdee”。注意,使用 Vim 编辑器修改主机名称文件后,要在末行模式下执行:wq!命令才能保存并退出文档。
第3步:保存并退出文档,然后使用 hostname 命令检查是否修改成功。


hostname 命令用于查看当前的主机名称,但有时主机名称的改变不会立即同步到系统中, 所以如果发现修改完成后还显示原来的主机名称,可重启虚拟机后再行查看:

# 常见问题
## 问题描述
启动实例报错

日志输出关键信息:UnknownHostException未知主机名

## 解决方案
需在/etc/hosts配置文件中配置正确的主机名解决。
操作步骤:
vim /etc/hosts

添加如下一行:
192.168.56.223 kingdee

:wq!保存退出

查看/etc/hosts文件,主机名配置完成
