vim 作为一款功能强大的文本编辑器,其命令体系丰富且高效,掌握常用命令能极大提升编辑效率,以下从不同模式出发,详细梳理 vim 的常用命令,并辅以表格归纳,帮助系统学习。

模式基础
vim 的核心在于模式切换,不同模式下操作逻辑截然不同:
- 普通模式:启动 vim 后默认进入此模式,用于导航、删除、复制等操作,是命令执行的入口。
- 插入模式:用于文本输入,可通过普通模式下的命令进入。
- 末行模式:执行保存、退出、搜索等扩展命令,通过 普通模式命令进入。
- 可视模式:用于选中文本,支持字符、行、块级选择,便于批量编辑。
普通模式常用命令
光标移动
光标快速移动是高效编辑的基础,命令如下:
- 基本移动:
h
(左)、l
(右)、j
(下)、k
(上),也可使用方向键。 - 单词移动:
w
(到下一个单词首)、e
(到当前单词尾)、b
(到上一个单词首)。 - 行内移动:
0
(到行首)、(到行尾)、^
(到行首非空字符)。 - 屏幕移动:
H
(到屏幕首行)、M
(到屏幕中间行)、L
(到屏幕末行)、Ctrl+f
(向下翻页)、Ctrl+b
(向上翻页)。 - 文件移动:
gg
(到文件首)、G
(到文件尾)、数字G
(跳转到指定行,如10G
跳转第 10 行)。
文本删除
删除命令需谨慎使用,支持多种范围:
- 单字符删除:
x
(删除光标后字符)、X
(删除光标前字符)。 - 行删除:
dd
(删除当前行)、2dd
(删除当前行及下 2 行)。 - 范围删除:
d$
(删除到行尾)、d^
(删除到行首非空字符)、dw
(删除一个单词)。 - 删除并进入插入模式:
C
(删除到行尾并插入)、s
(删除光标字符并插入)、S
(删除整行并插入)。
复制与粘贴
vim 的复制粘贴基于寄存器,支持跨文件操作:

- 复制单行:
yy
(复制当前行)、2yy
(复制当前行及下 2 行)。 - 范围复制:
yw
(复制一个单词)、y$
(复制到行尾)、y0
(复制到行首)。 - 粘贴:
p
(在光标后粘贴)、P
(在光标前粘贴)。 - 特殊复制:
"+y
(复制到系统剪贴板,可与外部程序互通)、"+p
(从系统剪贴板粘贴)。
撤销与重做
- 撤销:
u
(撤销上一步操作)、Ctrl+r
(重做,即恢复撤销)。 - 撤销到某一步:
g-
(向后撤销)、g+
(向前重做)。
替换与修改
- 字符替换:
r
(替换光标处字符,如ra
将光标字符改为a
)、R
(进入替换模式,连续替换直到按Esc
)。 - 修改文本:
c
(结合移动命令修改,如cw
修改一个单词、c$
修改到行尾)、cc
(修改整行)。
其他常用操作
- 重复操作:(重复上一次普通模式命令,如
dd
后按 可继续删除下一行)。 - 交换字符:
xp
(交换光标后字符与光标字符,如ab
光标在a
时执行xp
变为ba
)。 - 删除至指定字符:
td
(删除到光标后第一个d
字符)、T
(反向删除)。
插入模式进入方式
普通模式下通过以下命令进入插入模式,实现高效输入:
i
:在光标前插入。a
:在光标后插入。I
:在行首插入。A
:在行尾插入。o
:在当前行下方插入新行。O
:在当前行上方插入新行。s
:删除光标字符后插入。S
:删除整行后插入。
可视模式操作
先进入可视模式(v
字符选择、V
行选择、Ctrl+v
块选择),再执行命令:
- 选中文本:
v
+ 移动命令(如jk
选中字符、w
选中单词)。 - 编辑选中内容:
d
(删除)、y
(复制)、c
(修改)、>
(右移)、<
(左移)。 - 块选择操作:
Ctrl+v
进入块选择,可批量编辑多行相同位置内容,如同时选中多行首字符按d
删除。
末行模式命令
通过 进入,支持文件操作、搜索、替换等:
- 保存与退出:
w
(保存)、q
(退出)、wq
(保存并退出)、q!
(不保存强制退出)、wq!
(强制保存退出,只读文件时使用)。 - 文件操作:
e 文件名
(打开文件)、bn
(切换到下一个缓冲区)、bp
(切换到上一个缓冲区)、sp 文件名
(分屏打开文件)。 - 搜索:(向下搜索)、(向上搜索)、
n
(向下查找下一个)、N
(向上查找下一个)。 - 替换:
%s/旧文本/新文本/g
(全文替换)、%s/旧文本/新文本/gc
(全文替换并确认)、s/旧文本/新文本/g
(替换当前行)。 - 行号显示:
set nu
(显示行号)、set nonu
(隐藏行号)、set cursorline
(显示光标行)。
常用命令速查表
功能分类 | 命令 | 说明 |
---|---|---|
光标移动 | h/j/k/l | 左/下/上/右移动 |
w/b/e | 下一个单词首/上一个单词首/当前单词尾 | |
0/$/^ | 行首/行尾/行首非空字符 | |
gg/G | 文件首/文件尾 | |
文本删除 | x/X | 删除光标后/前字符 |
dd | 删除当前行 | |
dw/d$ | 删除一个单词/到行尾 | |
复制粘贴 | yy/nyy | 复制当前行/复制 n 行 |
p/P | 光标后/前粘贴 | |
"+y/"+p | 复制到/从系统剪贴板 | |
撤销重做 | u/Ctrl+r | 撤销/重做 |
替换修改 | r/R | 替换单字符/进入替换模式 |
cw/cc | 修改一个单词/整行 | |
插入模式 | i/a/I/A | 光标前/后/行首/行尾插入 |
o/O | 下方/上方插入新行 | |
可视模式 | v/V/Ctrl+v | 字符/行/块选择 |
d/y/c | 删除/复制/修改选中内容 | |
末行模式 | w/:q/:wq | 保存/退出/保存退出 |
%s/old/new/g | 全文替换 | |
/关键词?关键词 | 搜索/反向搜索 |
相关问答FAQs
问题1:vim 中如何快速删除包含特定关键词的所有行?
解答:可通过末行模式的搜索结合删除实现,步骤如下:

- 输入
/关键词
搜索到第一个匹配行; - 输行
g/关键词/d
,g
表示全局匹配,d
表示删除,即可删除所有包含关键词的行。
若需确认删除,可使用g/关键词/dc
,删除前会提示确认。
问题2:vim 如何实现多窗口编辑?如何切换窗口?
解答:多窗口(分屏)操作可通过以下命令实现:
- 分屏打开文件:
split 文件名
(水平分屏)、vsplit 文件名
(垂直分屏); - 在当前窗口分屏:
new
(水平新窗口)、vnew
(垂直新窗口); - 窗口切换:
Ctrl+w
+方向键
(或h/j/k/l
,对应左/下/上/右窗口)、Ctrl+w+w
(循环切换窗口); - 关闭窗口:
close
(关闭当前窗口)、only
(保留当前窗口,关闭其他)。
分屏后,每个窗口独立操作,通过Ctrl+w
系列命令管理窗口布局。