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系列命令管理窗口布局。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/393703.html<
