🚀 Vim 编辑器快捷键极速指南

常用范围:

  1. 基础移动与跳转
  • ( / ):移动到句首 / 句尾。
  • { / }:移动到段首 / 段尾。
  • -:移动到上一行行首。
  • + 或 Enter:移动到下一行行首。
  • 0:移动到绝对行首。
  • ^:移动到行内第一个非空字符,也就是常说的软行首。
  • $:移动到行尾。
  • |:移动到当前行第 n 列;未配合数字时可近似理解为移动到行首位置。
  • gg:跳到文首。
  • G:跳到文尾。
  • nG、ngg 或 :n:跳到第 n 行,例如 35G。
  • w / W:向后移动一个单词;W 会忽略标点。
  • b / B:向前移动一个单词;B 会忽略标点。
  • e / E:移动到单词末尾。
  • %:在成对符号之间跳转,如 () [] {}。
  • f / F + 字符:在当前行内向前 / 向后查找并跳到该字符。
  • t / T + 字符:在当前行内向前 / 向后查找,并停在目标字符的前一个位置。
  • ; / ,:重复 / 反向重复上一次 f/F/t/T 跳转。
  1. 插入与基础编辑
  • i:在光标前进入插入模式。
  • I:在行首进入插入模式。
  • a:在光标后进入插入模式。
  • A:在行尾进入插入模式。
  • o:在下方新开一行并进入插入模式。
  • O:在上方新开一行并进入插入模式。
  • x:删除光标后的一个字符,相当于 Delete。
  • X:删除光标前的一个字符,相当于 Backspace。
  • r:替换当前字符。
  • R:进入替换模式。
  • u:撤销。
  • Ctrl + R:重做。
  • J:合并当前行与下一行。
  • ~:切换当前字符的大小写。
  • &:重复执行上一次替换命令。
  • Ctrl + A:将光标下的数字加 1。
  • Ctrl + X:将光标下的数字减 1。
  1. 删除、修改与替换
  • dw:删除到下一个单词开头。
  • de:删除到当前单词末尾。
  • dd:删除整行。
  • d$:从当前光标删除到行尾。
  • d^:从当前光标删除到软行首。
  • cc:修改整行,删除后直接进入插入模式。
  • ce:修改到当前词尾。
  • C:从当前光标修改到行尾。
  • S:重写当前整行,作用同 cc。
  • s:替换当前字符并进入插入模式。
  • ci{:修改当前大括号 {} 内的内容。
  • dt + 字符:删除直到目标字符前。
  • ct + 字符:修改直到目标字符前。
  • :[范围]s/旧/新/[标志]:执行替换命令。

常用范围:

  • .:当前行。
  • 1:文首。
  • $:文尾。
  • %:全文。
  • a,b:指定行范围,例如 1,10。
  • .+5:当前行往后 5 行。

常用标志:

  • g:行内全局替换。
  • c:逐个确认替换。

补充:

  • 使用 \<旧\> 可以匹配完整单词。
  1. 复制、粘贴与缩进
  • yy:复制当前整行。
  • Y:默认情况下等同于 yy,也是复制整行。
  • 3yy:复制从当前行开始的 3 行。
  • yw:复制当前单词。
  • y$:从光标复制到行尾。
  • y^:从当前光标复制到软行首。
  • 0y$:从绝对行首复制到行尾,不包含额外换行语义的“整行文字”复制场景很常用。
  • ^y$:从第一个非空字符复制到行尾。
  • p:粘贴到光标后或下一行。
  • P:粘贴到光标前或上一行。
  • >>:整行向右缩进。
  • <<:整行向左缩进。
  • :%y:复制全文。
  • :%d:删除全文。
  • ggvG 或 Gvgg:全选全文。
  • :%y+:复制全文到系统剪贴板。
  • "+p:从系统剪贴板粘贴。
  1. 查找、滚动与定位
  • /:向下查找关键字。
  • ?:向上查找关键字。
  • * / #:向下 / 向上查找当前光标所在单词。
  • H:跳到当前屏幕顶部。
  • M:跳到当前屏幕中间。
  • L:跳到当前屏幕底部。
  • zz:将当前行置于屏幕中央。
  • zt:将当前行置于屏幕顶部。
  • zb:将当前行置于屏幕底部。
  • Ctrl + F:向下翻一页。
  • Ctrl + B:向上翻一页。
  • Ctrl + D:向下翻半页。
  • Ctrl + U:向上翻半页。
  • Ctrl + E:屏幕向下滚动一行。
  • Ctrl + Y:屏幕向上滚动一行。
  • Ctrl + G:显示当前文件状态信息。
  1. 文本对象与结构化操作
  • yi(:复制括号 () 内部内容。
  • ya(:复制包含括号在内的内容。
  • yi":复制双引号 "" 内的内容。
  • yit:复制 HTML / XML 标签内部内容。
  • yiw:复制当前小单词。
  • yiW:复制当前大单词。
  • v%:选中匹配符号之间的内容。
  • d%:删除匹配符号之间的内容。
  • y%:复制匹配符号之间的内容。
  1. 格式化、代码块与可视模式
  • =:执行自动缩进 / 格式化操作。
  • ==:格式化当前行。
  • =G:从当前行格式化到文件末尾。
  • gg=G:格式化全文。
  • =i{:格式化当前大括号块内部内容。
  • gv:重新选中上一次的可视区域。
  • gn:选中下一个搜索匹配项。
  1. 寄存器、标记与跳转历史

寄存器常用项:

  • ":无名寄存器,默认复制、删除、粘贴都走这里。
  • 0:最近一次 yank 的内容。
  • 1-9:最近 9 次删除历史。
  • +:系统剪贴板寄存器。
  • .:上一次插入模式输入的内容,只读。
  • %:当前文件名,只读。
  • #:上一个编辑过的文件名。
  • :reg:查看所有寄存器。

标记与跳转:

  • ma:在当前位置打上名为 a 的标记。
  • 'a:跳到标记 a 所在行的行首。
  • `a:跳到标记 a 的精确位置。
  • ``:跳回上一次光标停留的位置。
  • `.:跳回上一次修改的位置。
  • `^:跳回上一次退出插入模式的位置。
  • :marks:查看所有标记。
  • :delmarks a:删除标记 a。
  • :delmarks!:删除全部标记。
  • Ctrl + O / Ctrl + I:在跳转历史中后退 / 前进。
  1. 缓冲区、标签页与窗口管理

缓冲区与标签页:

  • :ls:列出当前所有缓冲区。
  • :b 编号:切换到指定缓冲区。
  • gt / gT:切换到下一个 / 上一个标签页。
  • n gt:跳到第 n 个标签页。
  • :bn / :bp:切换到下一个 / 上一个缓冲区。
  • :#:显示当前行号。

窗口与分屏:

  • Ctrl + W + h/j/k/l 或 Ctrl + W + w:在窗口之间切换。
  • Ctrl + W + s:水平分屏。
  • Ctrl + W + v:垂直分屏。
  • Ctrl + W + q:关闭当前窗口。
  • Ctrl + W + o:只保留当前窗口,关闭其他窗口。
  • Ctrl + W + + / -:增大 / 减小当前窗口高度。
  • Ctrl + W + > / <:增大 / 减小当前窗口宽度。
  • Ctrl + W + =:让所有窗口等宽等高。
  • Ctrl + W + _:将当前窗口高度最大化。
  • Ctrl + W + |:将当前窗口宽度最大化。
  • Ctrl + W + H/J/K/L:移动当前窗口本身的位置,注意这里是大写。
  • Ctrl + W + r:轮换窗口位置。
  1. 插入模式专用快捷键
  • Ctrl + H:退格,删除前一个字符。
  • Ctrl + W:删除前一个单词。
  • Ctrl + U:删除当前行中光标前的所有内容。
  • Ctrl + N:补全下一个候选项。
  • Ctrl + P:补全上一个候选项。
  • Ctrl + T:增加当前行缩进。
  • Ctrl + D:减少当前行缩进。
  • Ctrl + O:临时回到普通模式执行一个命令,执行后立即回到插入模式。
  1. 命令行模式快捷键
  • ::进入命令行模式。
  • Ctrl + F:打开命令历史窗口,可像编辑文本一样编辑历史命令。
  • Ctrl + W:删除前一个单词。
  • Ctrl + R + 寄存器名:把寄存器内容插入到命令行。
  • Ctrl + R Ctrl + W:把当前光标下的单词直接插入到命令行。
  1. 保存与退出
  • :w:保存。
  • :wq:保存并退出。
  • ZZ:保存并退出。
  • :q!:强制退出,不保存。
  • ZQ:强制退出,不保存。
❤️ Version 5.0.0-preview.11