一、vi/vim 简介
vi 是 visual interface 的简称,是 Linux 中最经典的文本编辑器。 同图形化界面中的文本编辑器一样,vi 是命令行下对文本文件进行编辑的最佳选择。
vim 是 vi 的加强版本,完全兼容 vi 的所有指令。不仅能编辑文本,还支持 shell 程序编辑,可以用不同颜色字体辨别语法正确性,极大方便程序的设计与编辑。
vi/vim 一共分为三种工作模式:
- 命令模式 :打开文件默认进入。敲击按键会被识别为命令,不能直接编辑文本。
- 输入模式(插入 / 编辑模式) :可以自由输入、修改文本。按下
Esc返回命令模式。 - 底线命令模式 :在命令模式输入
:进入,多用于文件保存、退出、编辑器配置。
二、基础语法
vi 文件路径
vim 文件路径
- 如果路径对应的文件不存在:命令会新建文件并进入编辑
- 如果文件已经存在:打开已有文件进行编辑
打开文件后,默认处于 命令模式
三、快速上手体验(完整操作流程)
- 执行命令
vim hello.txt,新建 / 打开文件,进入命令模式 - 命令模式按下
i,切换到输入模式 - 在输入模式输入文本:
itheima and itcast - 输入完毕,按下
Esc,退回命令模式 - 命令模式输入
:,进入底线命令模式 - 底线命令输入
wq,保存文件并退出 vim 编辑器
四、命令模式快捷键
4.1 命令模式 → 输入模式切换
表格
| 模式 | 命令 | 描述 |
|---|---|---|
| 命令模式 | i |
在当前光标位置进入输入模式 |
| 命令模式 | a |
在当前光标位置之后进入输入模式 |
| 命令模式 | I(大写) |
在当前行的开头,进入输入模式 |
| 命令模式 | A(大写) |
在当前行的结尾,进入输入模式 |
| 命令模式 | o(小写) |
在当前光标下一行新建空行,进入输入模式 |
| 命令模式 | O(大写) |
在当前光标上一行新建空行,进入输入模式 |
| 输入模式 | Esc |
任何时候按下 Esc,回到命令模式 |
4.2 命令模式:复制 / 删除 / 撤销 / 光标跳转
表格
| 模式 | 命令 | 描述 |
|---|---|---|
| 命令模式 | dd |
删除光标所在行的内容 |
| 命令模式 | ndd |
n 为数字,删除当前光标向下 n 行 |
| 命令模式 | yy |
复制当前行 |
| 命令模式 | nyy |
n 为数字,复制当前行以及下方 n 行 |
| 命令模式 | p |
粘贴已经复制的内容 |
| 命令模式 | u |
撤销修改 |
| 命令模式 | ctrl + r |
反向撤销(恢复被撤销的内容) |
| 命令模式 | gg |
光标跳到文档首行 |
| 命令模式 | G |
光标跳到文档末尾行 |
| 命令模式 | dG |
从当前行开始,向下全部删除 |
| 命令模式 | dgg |
从当前行开始,向上全部删除 |
| 命令模式 | d$ |
从当前光标开始,删除到本行的结尾 |
| 命令模式 | d0 |
从当前光标开始,删除到本行的开头 |
五、底线命令模式(输入 : 开启)
表格
| 模式 | 命令 | 描述 |
|---|---|---|
| 底线命令模式 | :wq |
保存并退出 |
| 底线命令模式 | :q |
仅退出(有修改时无法退出) |
| 底线命令模式 | :q! |
强制退出,不保存修改 |
| 底线命令模式 | :w |
仅保存,不退出 |
| 底线命令模式 | :set nu |
显示行号 |
| 底线命令模式 | :set paste |
设置粘贴模式(粘贴代码避免自动缩进错乱) |
复习小结
- 模式流转:打开文件 → 命令模式 ;
i/a/o→ 输入模式;Esc回到命令模式;命令模式输入:→ 底线命令模式。 - 核心记忆:
yy复制、dd删除、p粘贴;u撤销;:wq保存退出。