Vim 文本编辑器
基本概念
Vim 是由 Vi 发展演变而来的文本编辑器,因其使用简单、功能强大,成为 Linux 众多发行版的默认文本编辑器。许多人习惯将 Vim 称为 Vi,实际上 Vim 是 Vi 的增强版(增加了正则表达式查找、多窗口编辑等功能),适用于程序开发。
注意:Linux 系统默认安装 Vi 编辑器,但需要手动安装 Vim:
sudo apt install vim
模式说明
Vim 有三种工作模式:命令模式、插入模式 和 编辑模式,三者的关系如下:

1. 命令模式
- 默认打开 Vim 时处于此模式。
- 可使用方向键
↑ ↓ ← →
或 k j h l
移动光标。
- 支持复制、粘贴、替换、删除等操作。
2. 插入模式
- 在此模式下,可以输入文本,类似 Windows 记事本。
- 切换至插入模式的方法:
- 退出插入模式:
快捷键 | 功能描述 |
i | 在当前光标位置插入文本,光标后的文本相应向右移动 |
I | 在光标所在行的行首插入文本(首个非空白字符处) |
o | 在当前行的下方插入新的一行 |
O | 在当前行的上方插入新的一行 |
a | 在当前光标位置之后插入文本 |
A | 在当前行的行尾插入文本 |
3. 编辑模式
- 主要用于 保存、查找、替换 等操作。
- 进入方式:按
:
键(左下角出现 :
符号)。
- 退出方式:
Esc
返回命令模式。
- 若不确定当前模式,可多按
Esc
。
使用流程
1. 打开文件
vim test.c
- 默认处于 命令模式,底部会显示文件信息(总行数、字符数、光标位置等)。
2. 编辑文件
(1)查找
注意:
- 查找区分大小写,如
shenchao
和 ShenChao
会有不同结果。
- 忽略大小写:
:set ic
,恢复::set noic
。
- 若查找包含特殊符号,如
$
,需要转义:/10\$
。
快捷键 | 功能描述 |
/abc | 从光标位置向前查找 abc |
?abc | 从光标位置向后查找 abc |
/^abc | 查找以 abc 开头的行 |
/abc$ | 查找以 abc 结尾的行 |
n | 同一方向重复上次查找 |
N | 反向重复上次查找 |
(2)替换文本
命令 | 功能描述 |
r | 替换光标所在字符 |
R | 替换从光标处开始的字符(覆盖模式) |
:s/a1/a2/g | 替换当前行所有 a1 为 a2 |
:n1,n2s/a1/a2/g | 替换 n1n2 行 内所有 a1 为 a2 |
:%s/a1/a2/g | 替换整个文件内所有 a1 为 a2 |
(3)删除文本
注意:删除的内容会被存入剪贴板,可用 p
进行粘贴。
快捷键 | 功能描述 |
x | 删除光标所在字符 |
dd | 删除当前行 |
ndd | 删除 n 行(从当前行起) |
dG | 删除当前行至文件末尾 |
D | 删除当前行至行尾 |
:a1,a2d | 删除 a1 到 a2 行 |
(4)复制 & 粘贴
快捷键 | 功能描述 |
p | 粘贴到光标后 |
P | 粘贴到光标前 |
y | 复制选中内容到剪贴板 |
yy | 复制当前行(可加 n 复制多行) |
yw | 复制光标所在单词 |
3. 保存 & 退出
注意::w!
和 :wq!
可在 无写权限 的情况下强制执行。
命令 | 功能描述 |
:wq | 保存并退出 |
:wq! | 强制保存并退出 |
:q | 退出(不保存) |
:q! | 强制退出(不保存) |
:w | 仅保存 |
:w! | 强制保存 |
:w filename | 另存为 filename |
ZZ | 直接退出 |
4. 其他常用操作
快捷键 | 功能描述 |
J | 连接当前行和下一行(去换行符) |
u | 撤销上一次操作(多次 u 可撤销多步) |
Ctrl + r | 反撤销 |