Vim 核心思想:模式
在学习命令之前,必须理解 Vim 的核心——模式,Vim 的所有操作都围绕着不同的模式展开。

| 模式名称 | 进入方式 | 主要用途 |
|---|---|---|
| 普通模式 | 启动 Vim 后默认在此模式 | 核心模式,用于导航、删除、复制、粘贴等操作。 |
| 插入模式 | 在普通模式下按 i, a, o 等 |
用于输入文本,类似其他编辑器。 |
| 可视模式 | 在普通模式下按 v, V, Ctrl+v |
用于高亮选中文本,以便进行删除、复制等操作。 |
| 命令行模式 | 在普通模式下按 , , | 用于执行保存、退出、搜索、替换等命令。 |
基本流程:
普通模式 -> 按 i/a/o 进入 插入模式 -> 输入文本 -> 按 Esc 返回 普通模式 -> 按 进入 命令行模式 -> 保存退出 wq
Vim 命令图速查表
导航命令 (普通模式)
这些命令用于在文件中快速移动光标,尽量使用手指不离主键区的命令。
| 命令 | 作用 | 备注 |
|---|---|---|
h |
光标向左移动一个字符 | |
j |
光标向下移动一行 | |
k |
光标向上移动一行 | |
l |
光标向右移动一个字符 | |
w |
光标移动到下一个单词开头 | word |
e |
光标移动到当前单词末尾 | end of word |
b |
光标移动到上一个单词开头 | beginning of word |
0 (零) |
光标移动到当前行首 | |
| 光标移动到当前行尾 | ||
^ |
光标移动到当前行第一个非空白字符 | |
gg |
光标移动到文件第一行 | |
G |
光标移动到文件最后一行 | |
5G |
光标移动到文件第 5 行 | |
Ctrl + u |
向上滚动半屏 | |
Ctrl + d |
向下滚动半屏 | |
Ctrl + b |
向上滚动一屏 | back |
Ctrl + f |
向下滚动一屏 | forward |
插入命令 (从普通模式进入插入模式)
| 命令 | 作用 | 光标位置 |
|---|---|---|
i |
在光标前进入插入模式 | |
a |
在光标后进入插入模式 | |
I |
在当前行首进入插入模式 | |
A |
在当前行尾进入插入模式 | |
o |
在当前行下方新建一行并进入插入模式 | |
O |
在当前行上方新建一行并进入插入模式 | |
c + 导航命令 |
删除并进入插入模式 | cw (删除单词并插入), c$ (删除到行尾并插入) |
删除、复制与粘贴 (普通模式)
Vim 中,复制和粘贴是两个独立的概念,d (delete) 同时兼具剪切功能。
| 命令 | 作用 | 备注 |
|---|---|---|
x |
删除光标处的一个字符 | |
dd |
剪切 (删除) 当前行 | 常用剪切 |
dw |
剪切 (删除) 一个单词 | |
d$ 或 D |
剪切 (删除) 从光标到行尾的内容 | |
d^ |
剪切 (删除) 从光标到行首的内容 | |
dgg |
剪切 (删除) 从当前行到文件首的内容 | |
dG |
剪切 (删除) 从当前行到文件尾的内容 | |
y + 导航命令 |
复制
y 是 "yank" (拉,拽) 的意思 | |
yy |
复制 当前行 | 常用复制 |
yw |
复制 一个单词 | |
y$ |
复制 从光标到行尾的内容 | |
p |
在光标后**粘贴** | 如果复制的是行,则粘贴在当前行下方 |
P |
在光标前**粘贴** | 如果复制的是行,则粘贴在当前行上方 |
u |
撤销 上一步操作 | undo |
Ctrl + r |
重做 被撤销的操作 | redo |
| 重复 上一次的修改操作 | 非常强大! |
查找与替换 (命令行模式)
| 命令 | 作用 | 备注 |
|---|---|---|
从上到下搜索
| 按回车执行, |
n 跳到下一个,N 跳到上一个 | |
从下到上搜索
n 跳到上一个,N 跳到下一个 | ||
s/old/new |
替换当前行的第一个 old 为 new |
|
s/old/new/g |
替换当前行的所有 old 为 new |
g 表示 global (全局) |
%s/old/new/g |
替换整个文件的所有 old 为 new |
表示整个文件 |
%s/old/new/gc |
确认式替换整个文件 | 每次替换都会提示你确认 (y/n/a/q/l) |
文件操作与退出 (命令行模式)
| 命令 | 作用 | 备注 |
|---|---|---|
w |
保存文件 | write |
q |
退出 Vim | quit |
wq 或 x |
保存并退出 | 最常用 |
q! |
强制退出,不保存修改 | 表示强制 |
w new_file.txt |
另存为 new_file.txt |
|
e other_file.txt |
打开并编辑 other_file.txt |
edit |
b next |
切换到下一个缓冲区 | buffer |
b prev |
切换到上一个缓冲区 |
可视模式 (普通模式进入)
用于选中一块文本,然后进行操作。

| 进入命令 | 作用 | 操作示例 |
|---|---|---|
v |
字符可视模式 | 从光标开始选中,按 hjkl 扩大选区 |
V (大写) |
行可视模式 | 整行高亮,按 j 或 k 选中多行 |
Ctrl + v |
块可视模式 | Vim 独有,选中一个矩形文本块 |
(选中后) d |
删除选中的文本 | |
(选中后) y |
复制选中的文本 | |
(选中后) c |
删除并进入插入模式 | |
(选中后) > |
向右缩进选中的行 | |
(选中后) < |
向左缩进选中的行 |
窗口与标签页
| 命令 | 作用 |
|---|---|
split 或 sp |
水平分割窗口,创建新窗口 |
vsplit 或 vs |
垂直分割窗口 |
Ctrl + w + 方向键 |
在窗口间切换光标 |
Ctrl + w + |
让所有窗口等宽/等高 |
tabnew 或 tabn |
新建标签页 |
gt |
切换到下一个标签页 |
gT |
切换到上一个标签页 |
实战场景举例
假设我们有以下文件内容:
hello world
this is a test file
vim is awesome
-
将 "test" 替换为 "example"
- 按
Esc确保在普通模式。 - 输入
/test,回车。 - 输入
s/test/example,回车。
- 按
-
删除第二行
- 按
Esc确保在普通模式。 - 按
2G跳转到第二行。 - 按
dd。
- 按
-
复制第三行并粘贴到第一行下方
(图片来源网络,侵删)- 按
Esc确保在普通模式。 - 按
3G跳转到第三行。 - 按
yy复制。 - 按
G跳转到文件末尾。 - 按
P在上一行(即原第三行)上方粘贴。 - 按
gg回到文件顶部,你会看到新粘贴的行。
- 按
学习建议
- 先记住核心:
Esc回到普通模式,hjkl导航,i/a/o插入,dd/yy/p剪切/复制/粘贴,wq保存退出。 - 肌肉记忆:不要死记硬背,多在真实文件中练习,尝试脱离鼠标,只用键盘完成操作。
- 善用 : 是 Vim 的灵魂,能极大提升效率,学会用
c,d,>等配合导航命令,然后用 重复。 - 进阶:熟练后可以学习
set配置、宏录制、插件系统等,让 Vim 更强大。
希望这份命令图能帮助您快速上手 Vim!祝您学习愉快!
