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

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

Vim 键位表

全局命令

命令 / 快捷键 | 功能描述
elp 关键字 | 显示指定关键字的帮助
eas 文件名 | 另存为...
se | 关闭当前窗口
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 | 退出插入模式

编辑文本

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

选择文本和可视化模式

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

退出

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

Vim 模式

模式 | 进入方式
普通模式 | 按 Esc 或 Ctrl+[ 进入，左下角为文件名或空
插入模式 | 按 i 进入，左下角 --INSERT--
可视模式 | 按 v 进入，左下角 --VISUAL--
替换模式 | 按 r 或 R 开始，左下角 --REPLACE--
命令行模式 | 按：或者 / 或者？开始

参考

awesome-cheatsheets

fprintf

glts/vim-cottidie Vim 技巧

openuado/vimtips-fortune Vim 技巧

Michaelangel007/vim_cheat_sheet

Vim 命令速查表 - Chloneda

Linux vi/vim - 菜鸟教程

史上最全 Vim 快捷键键位图 -- 入门到进阶 转载