Vim 是一款功能强大的文本编辑器,掌握其常用操作能极大提升效率。以下是核心命令速查(注意命令区分大小写):

🔄 模式切换
|
按键 |
功能 |
|
Esc |
返回 普通模式(任何模式都可按此键回到普通模式) |
|
i |
在光标前进入 插入模式(开始编辑) |
|
I |
在行首进入插入模式 |
|
a |
在光标后进入插入模式 |
|
A |
在行尾进入插入模式 |
|
o |
在当前行下方新建一行并进入插入模式 |
|
O |
在当前行上方新建一行并进入插入模式 |
|
v |
进入 可视模式(字符选择) |
|
V |
进入 可视行模式(整行选择) |
|
Ctrl+v |
进入 可视块模式(列选择) |
|
: |
进入 命令行模式(底部输入命令) |
🚶 光标移动(普通模式)
|
按键 |
功能 |
|
h / j / k / l |
左 / 下 / 上 / 右(也可用方向键) |
|
w |
跳到下一个单词开头 |
|
b |
跳到上一个单词开头 |
|
e |
跳到当前单词末尾 |
|
0 |
跳到行首(数字零) |
|
^ |
跳到行首第一个非空字符 |
|
$ |
跳到行尾 |
|
gg |
跳到文件第一行 |
|
G |
跳到文件最后一行 |
|
:n 或 nG |
跳到第 n 行(如 :10 跳转到第10行) |
|
Ctrl+f / Ctrl+b |
向下 / 向上翻页 |
|
% |
跳转到匹配的括号 ()[]{} |
✏️ 编辑操作(普通模式)
删除 / 剪切
|
按键 |
功能 |
|
x |
删除光标所在字符 |
|
X |
删除光标前一个字符 |
|
dd |
删除当前行(剪切) |
|
ndd |
删除从当前行起的 n 行(如 5dd 删除5行) |
|
dw |
删除从光标到单词末尾 |
|
d$ |
删除从光标到行尾 |
|
d0 |
删除从光标到行首 |
|
dgg |
删除从光标到文件开头 |
|
dG |
删除从光标到文件末尾 |
复制(yank)
|
按键 |
功能 |
|
yy |
复制当前行 |
|
nyy |
复制从当前行起的 n 行 |
|
yw |
复制从光标到单词末尾 |
|
y$ |
复制从光标到行尾 |
|
y0 |
复制从光标到行首 |
粘贴
|
按键 |
功能 |
|
p |
在光标后粘贴(行粘贴时在当前行下方) |
|
P |
在光标前粘贴(行粘贴时在当前行上方) |
撤销与重做
|
按键 |
功能 |
|
u |
撤销上一步操作 |
|
Ctrl+r |
重做(撤销的撤销) |
替换与修改
|
按键 |
功能 |
|
r |
替换光标处字符(不进入插入模式) |
|
R |
进入替换模式(持续覆盖输入) |
|
cc |
删除当前行并进入插入模式 |
|
cw |
删除从光标到单词末尾并进入插入模式 |
|
C |
删除从光标到行尾并进入插入模式 |
|
s |
删除光标处字符并进入插入模式 |
|
S |
删除当前行并进入插入模式 |
🔍 搜索与替换
|
按键 / 命令 |
功能 |
|
/pattern |
向下搜索 pattern |
|
?pattern |
向上搜索 pattern |
|
n |
跳转到下一个匹配 |
|
N |
跳转到上一个匹配 |
|
:s/old/new |
替换当前行第一个 old 为 new |
|
:s/old/new/g |
替换当前行所有 old 为 new |
|
:%s/old/new/g |
替换整个文件所有 old 为 new |
|
:%s/old/new/gc |
替换整个文件,每次询问确认 |
|
:n1,n2s/old/new/g |
替换第 n1 到 n2 行之间的所有 old |
💾 保存与退出
|
命令(命令行模式) |
功能 |
|
:w |
保存文件 |
|
:w filename |
另存为 filename |
|
:q |
退出(未修改时) |
|
:q! |
强制退出(不保存修改) |
|
:wq 或 😡 或 ZZ |
保存并退出 |
|
:e! |
放弃所有修改,重新加载文件 |
🧩 多文件与分屏
|
命令 |
功能 |
|
:e filename |
在当前窗口打开另一个文件 |
|
:split 或 :sp |
水平分屏 |
|
:vsplit 或 :vsp |
垂直分屏 |
|
Ctrl+w w |
在分屏之间切换 |
|
Ctrl+w h/j/k/l |
切换到左/下/上/右分屏 |
|
:q / :wq |
关闭当前分屏 |
|
:only |
只保留当前分屏,关闭其他 |
🔧 其他实用技巧
- 显示行号::set number(或 :set nu),取消::set nonumber
- 高亮搜索::set hlsearch,取消::set nohlsearch
- 忽略大小写搜索::set ic(ignorecase)
- 显示当前文件名与状态:Ctrl+g
- 重复上次命令:.(点命令,重复上次的修改操作) 3y4.net
- 录制宏:qa 开始录制到寄存器 a,操作后按 q 结束,@a 执行宏,@@ 重复上次宏
- 在终端输入 vimtutor 可启动官方交互教程(约30分钟),是新手最佳入门方式。
- 常用命令不必死记,实践几次即可形成肌肉记忆。
其他操作
“全选”所有文本
ggVG
操作拆解(按顺序依次按下):
-
gg:跳转到文件的第一行。 -
V:进入 行可视模式(Visual Line mode)。 -
G:跳转到文件的最后一行。
此时,从第一行到最后一行会被全部高亮选中,即完成“全选”。
🔥 全选后的常用搭配
全选后光标停留在末尾,你可以接着输入以下指令进行快速操作:
| 操作目的 | 按键 | 说明 |
|---|---|---|
| 全选并复制 | ggVGy |
先全选(ggVG),再复制(y)。 |
| 全选并剪切/删除 | ggVGd 或 ggVGx |
删除所有行。 |
| 全选并复制到系统剪贴板 | ggVG"+y |
复制到系统剪切板(Windows/Linux),在 Mac 中通常用 "*y。 |
| 全选并替换(所有行) | ggVG + : |
全选后按 :,Vim 会自动输入 '<,'> 范围,代表针对高亮选区执行命令(如 :'<,'>s/旧/新/g)。 |
🚀 更快捷的备选方案(无需高亮)
如果你的目的仅仅是复制整个文件内容(不关心界面是否高亮),可以使用命令模式:
:%y
-
%代表整个文件范围,y是复制(yank)。这条命令会直接把所有内容复制到 Vim 内部寄存器,且光标位置不变,比ggVG更高效。
如果需要复制到系统剪贴板:
:%y+
⚠️ 注意区分
-
V(大写):按行选中(最常用)。 -
v(小写):按字符选中(全选需按ggvG,容易漏选,不推荐)。