skip to content
阳帆の小窝

开发常用的 Vim 命令/快捷键速查表

/ 7 min read

Table of Contents

本文列出了 Vim 中最常用(而不是全部)的命令和快捷键,请善用查找。

Vim 键位表

Vim 键位表

全局命令

命令 / 快捷键功能描述
:h[elp] 关键字显示指定关键字的帮助
:sav[eas] 文件名另存为…
:clo[se] 关闭当前窗口
:ter[minal] 打开新的终端窗口
:! 命令暂时离开 Vim 到命令行下执行 命令 的显示结果
K打开光标所在单词对应的 man 页面

移动光标

命令 / 快捷键功能描述
h左移光标
j下移光标
k上移光标
l右移光标
H移动到当前页面顶部
M移动到当前页面中间
L移动到当前页面底部
w移动到下个单词开头
W移动到下个单词开头(单词含标点)
e移动到下个单词结尾
E移动到下个单词结尾(单词含标点)
b移动到上个单词开头
B移动到上个单词开头(单词含标点)
%跳转到配对的符号
0移动到行首
^移动到行首的非空白符
$移动到行尾
}移动到下一个段落(当编辑代码时则为函数/代码块)
{移动到上一个段落(当编辑代码时则为函数/代码块)
zz移动屏幕使光标居中
Ctrl + e向下移动屏幕一行(保持光标不动)
Ctrl + y向上移动屏幕一行(保持光标不动)
Ctrl + b向上滚动一屏
Ctrl + f向下滚动一屏
Ctrl + d向下滚动半屏
Ctrl + u向上滚动半屏

插入模式

命令 / 快捷键功能描述
i从光标前开始插入字符
I从行首开始插入字符
a从光标后开始插入字符
A从行尾开始插入字符
o在当前行之下另起一行,开始插入字符
O在当前行之上另起一行,开始插入字符
ea从当前单词末尾开始插入
Ctrl + h在插入模式下,删除光标前的字符
Ctrl + w在插入模式下,删除光标前的单词
Ctrl + j在插入模式下,另起一行
Ctrl + t在插入模式下,向右缩进,宽度由 shiftwidth 控制
Ctrl + d在插入模式下,向左缩进,宽度由 shiftwidth 控制
Ctrl + n在插入模式下,在光标之前插入自动补全的下一个匹配项
Ctrl + p在插入模式下,在光标之前插入自动补全的上一个匹配项
Ctrl + rx在当前光标处插入 x 寄存器的内容
Esc退出插入模式

编辑文本

命令 / 快捷键功能描述
uundo - 撤销最近一次操作
U恢复/撤销最后修改的行
Ctrl + rredo - 重做(和 u 相反)
.再次执行上一个命令

选择文本和可视化模式

命令 / 快捷键功能描述
v进入可视化模式,移动光标高亮选择,然后,可以对被选中的文本执行命令
V进行可视化模式,以行为单位进行选择
o在可视化模式下,让光标在选择区域的开头和结尾进行切换
O在可视化模式下,切换光标到选择区域的角
Ctrl + v进入可视化模式,矩阵选择(即列模式)
aw在可视化模式下,选择当前单词
ab在可视化模式下,选择被 () 包裹的区域的内容(包含括号)
aB在可视化模式下,选择被 {} 包裹的区域的内容(包含花括号)
at在可视化模式下,选择被 <> 包裹的区域的内容(包含 <> 标签)
ib在可视化模式下,选择被 () 包裹的区域的内容(不包含括号)
iB在可视化模式下,选择被 {} 包裹的区域的内容(不包含花括号)
it在可视化模式下,选择被 <> 包裹的区域的内容(不包含 <> 标签)
Esc退出可视化模式
>向右缩进
<向左缩进
y复制选中的文本
d剪切选中的文本
~对选中的文本进行大小写切换
u将选中的文本转换为小写
U将选中的文本转换为大写

退出

命令 / 快捷键功能描述
:w 将编辑的数据写入硬盘中 (保存)
:w !若文件属性为「只读」时,强制写入该文件
:w !sudo tee %使用 sudo 保存当前文件
:wq 或 :x 或 ZZ保存并退出
:q 退出(文件已修改且未保存时 Vim 将发出警告)
:q ! 或 ZQ强制退出(即使文件未保存,相当于强制退出)
:wqa 保存所有标签页,并全部退出

Vim 模式

模式进入方式
普通模式EscCtrl+[ 进入,左下角为文件名或空
插入模式按 i 进入,左下角 --INSERT--
可视模式按 v 进入,左下角 --VISUAL--
替换模式按 r 或 R 开始,左下角 --REPLACE--
命令行模式按 : 或者 / 或者 ? 开始

参考

无聊空间 - vi 速查表

人机验证:请刷新页面以加载评论区