一、vi/vim区别¶
| 内容 | 区别 |
|---|---|
| vi | 系统自带,不需要额外安装,没有vim功能多. |
| vim | 在最小化安装的版本中默认没有,需要额外安装,vi的升级版(vi imporved),未来大部分情况都是用vim即可. |
二、vim基本使用¶
2.1 打开文件(不存在也ok)¶
ls -l /oldboy/
vim /oldboy/oldboy.txt
注意:如果文件 不存在会自动创建;如果目录不存在不会创建,会在保存并退出的时候报错
2.2 进入编辑模式¶
按字母i即可,编辑这个文件

2.3 退出编辑模式¶
按 esc键 退出编辑模式
2.4 保存与退出¶
保存与退出操作:
-
输入 :wq write(写,保存) quit(退出)
-
:q! 强制退出不保存
- :wq! 强制退出并保存.
2.5 检查¶
[root@oldboy-prod ~]# cat /oldboy/oldboy.txt
oldboylinux.cn oldboyedu.com
三、vim的模式转换¶
- 命令模式:通过vi/vim打开文件后进入的模式
- 编辑模式(插入模式): 用于编辑,修改文件内容
- 底行模式: 保存退出,搜索使用
- 可视块模式: 用于批量编辑

四、vim快捷键¶
4.1 移动光标类快捷键¶
| Vim快捷键 | Vim快捷键说明 |
|---|---|
| gg | 快速移动到第一行 |
| G | 快速移动到最后一行 |
| xxgg(xx表示行号) | 快速移动到指定xx行 |
| ^ | 光标快速移动到行首 |
| $ | 光标快速移动到行尾 |
4.2 复制删除粘贴替换快捷键¶
| Vim快捷键 | Vim快捷键说明 |
|---|---|
| yy | 复制光标所在行 |
| xxyy(xx表示行号) | 复制xx行(从光标所在行开始算起) |
| dd | 删除光标所在行 |
| dG | 在vim命令进入文件后删除文件全部内容(建议先执行gg到第一行位置) |
| xxdd(xx表示行号) | 删除xx行(从光标所在行开始算起) |
| p | 粘贴复制的内容(从光标的下一行开始粘贴) |
| xxp(xx表示重复粘贴的次数) | 重复粘贴xx次复制的内容(从光标的下一行开始粘贴) |
| :%s/将被替换内容/替换后的具体内容/g | 全局替换自定义内容 |
4.3 查看快捷键¶
| Vim快捷键 | Vim快捷键说明 |
|---|---|
| :set nu | 显示行号 |
| :set nonu | 不显示行号 |
| /查看内容 | 搜索(默认向下查找) |
| n | 继续向下搜索 |
| N | 继续向上搜索 |
| u | 撤销上传修改行为 |
4.4 批量操作快捷键¶
| Vim快捷键 | Vim快捷键说明 |
|---|---|
| 按ctrl + v,选择操作区域,使用d批量删除 | 批量删除内容 |
| 按ctrl + v,选择操作区域,按shift + i (I),进入编辑模式,写入内容后,按Ecs键等待 | 批量修改内容 |
4.5 使用案例¶
案例01 批量删除文件开头的#
按ctrl + v,进入批量操作模式
选择要操作的区域
然后按d,删除.
案例02 批量给文件开头增加内容 #oldboy
按ctrl + v,进入批量操作模式
选择要操作的区域
选完后,按shift + i (I),进入编辑模式
写入内容
按esc等待.
五、故障案例¶
有时候当我们使用vim命令打开文件后,会提示以下内容:

发生以上情况的场景一般有以下几种:
- 在编辑文件的时候,服务器异常断电了
- 多个窗口打开同一文件
针对上面"故障",可以从以下步骤出发:
- 按q退出
- 恢复文件(记得wq!)
- 删除临时文件(一般都是.swp结尾的文件)
详细处理方法如下:
1、按q退出

2、恢复文件
$ vim -r 111.txt

按下回车进入文件后,执行wq!进行强制保存
3、删除临时文件后,重新打开即可
$ rm -f .111.txt.swp