本文列出了 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-- |
| 命令行模式 | 按:或者 / 或者?开始 |
