什么是 vi/vim?
- vi 是
visual interface 的简称,是 Linux 中最经典的命令行文本编辑器。
- vim 是 vi 的增强版(
vi improved),兼容 vi 所有指令,并增加了语法高亮等功能,适合程序编写。
三种工作模式
vi/vim 有三种核心模式,理解它们才能高效编辑:
| 模式 |
说明 |
主要用途 |
| 命令模式 |
所有按键被解释为命令,不可直接编辑文本。刚打开文件时默认进入此模式。 |
执行操作(复制、删除、移动光标等) |
| 输入模式 |
可自由编辑文本内容。 |
输入/修改文本 |
| 底线命令模式 |
在最后一行输入命令,通常用于保存、退出、设置等。 |
文件操作、设置 |

模式切换关系:
- 命令模式 → 输入模式:输入
iao
- 输入模式 → 命令模式:按
Esc
- 命令模式 → 底线命令模式:按
:(冒号)
- 底线命令模式 → 命令模式:按
Esc 或执行完命令自动返回
启动与退出
vim 文件路径 # 编辑文件(若文件不存在则创建新文件)
底线命令模式常用退出命令:
:wq – 保存并退出
:q – 直接退出(未修改时可用)
:q! – 强制退出(不保存修改)
:w – 仅保存
:x – 保存并退出(同 :wq)
命令模式常用快捷键
进入输入模式
| 按键 |
作用 |
i |
在当前光标前插入 |
a |
在当前光标后插入 |
I |
在当前行开头插入 |
A |
在当前行结尾插入 |
o |
在当前行下方新建一行插入 |
O |
在当前行上方新建一行插入 |
光标移动
| 按键 |
作用 |
k |
上移 |
j |
下移 |
h |
左移 |
l |
右移 |
0 |
移动到行首 |
$ |
移动到行尾 |
gg |
跳转到文件第一行 |
G |
跳转到文件最后一行 |
nG |
跳转到第 n 行(如 5G) |
翻页
| 按键 |
作用 |
Ctrl + f |
向下翻页 |
Ctrl + b |
向上翻页 |
删除
| 按键 |
作用 |
dd |
删除当前行 |
ndd |
删除从当前行开始的 n 行 |
dG |
删除从当前行到文件末尾 |
dgg |
删除从当前行到文件开头 |
d$ |
删除从光标到行尾 |
d0 |
删除从光标到行首 |
复制与粘贴
| 按键 |
作用 |
yy |
复制当前行 |
nyy |
复制从当前行开始的 n 行 |
p |
在光标后粘贴 |
P |
在光标前粘贴 |
撤销与恢复
| 按键 |
作用 |
u |
撤销上一步操作 |
Ctrl + r |
反向撤销(重做) |
搜索
| 按键 |
作用 |
/ |
进入搜索模式,输入关键字 |
n |
向下查找下一个匹配 |
N |
向上查找上一个匹配 |
输入模式
在输入模式下,你可以像在普通文本编辑器中一样自由输入、删除、修改文本。
按 Esc 返回命令模式。
底线命令模式常用设置
| 命令 |
作用 |
:set nu |
显示行号 |
:set nonu |
隐藏行号 |
:set paste |
进入粘贴模式(避免自动缩进混乱) |
:set nopaste |
退出粘贴模式 |
:syntax on |
开启语法高亮 |
:syntax off |
关闭语法高亮 |
小技巧