| 命令 | 解释 |
|---|---|
| h i j k | 移动光标 |
| gj gk | 屏幕行移动移动光标 |
| 0 | 移动光标至行首 |
| $ | 移动光标至行尾 |
| ^ | 移动至行首第一个非空字符 |
| g0 | 屏幕行移动光标至行首 |
| g$ | 屏幕行移动光标至行尾 |
| g^ | 屏幕行移动至行首第一个非空字符 |
| % | 移动至匹配括号 |
| w | 移动至下一词首 |
| b | 移动至前一词首 |
| e | 移动至下一词尾 |
| ge | 移动至前一词尾 |
| W | 移动至下一字串首 |
| B | 移动至前一字串首 |
| E | 移动至下一字串尾 |
| gE | 移动至前一字串尾 |
| a | 光标后插入 |
| A | 行尾插入 |
| i | 光标前插入 |
| I | 行首插入 |
| f{char} | 移动光标至字符位置(;下一个 ,上一个) |
| F{char} | 向前移动光标至字符位置(;下一个 ,上一个) |
| t{char} | 移动光标至字符位置的临近字符(;下一个 ,上一个) |
| T{char} | 向前移动光标至字符位置的临近字符(;下一个 ,上一个) |
| * | 查找相同单词并跳转(n N) |
| gg | 移动至缓冲区首行行首 |
| G | 移动至缓冲区末行行首 |
| {num}G | 移动至指定行号行首 |
| :{num} | 移动至指定行号行首 |
| H | 移动至屏幕行首行行首 |
| M | 移动至屏幕行中行行首 |
| L | 移动至屏幕行末行行首 |
| 命令 | 解释 |
|---|---|
| m{a-z} | 标记位置(缓冲区局部标记) |
| m{A-Z} | 标记位置(全局可见) |
| ‘{a-z,A-Z} | 跳转至标记所在行 |
| `{a-z,A-Z} | 跳转至标记准确位置 |
| `` | 返回跳转之前的位置 |
| `. | 跳转至上次修改的地方 |
| `^ | 跳转至上次插入的位置 |
| `[ | 跳转至上次修改或复制的起始位置 |
| `] | 跳转至上次修改或复制的结束位置 |
| `< | 跳转至上次高亮选区的起始位置 |
| `> | 跳转至上次高亮选区的结束位置 |
| 命令 | 解释 |
|---|---|
| x | 删除当前字符 |
| dd | 删除整行 |
| s | 删除当前字符并进入插入模式 |
| cw | 删除至词尾并进入插入模式 |
| cW | 删除至字串尾并进入插入模式 |
| cc | 删除当前行并进入插入模式 |
| caw | 删除单词及尾部空格并进入插入模式 |
| ciw | 删除单词并进入插入模式 |
| ciW | 删除至字串尾并进入插入模式 |
| caW | 删除至字串尾及尾部空格并进入插入模式 |
| cap | 删除当前段落及尾部空格并进入插入模式 |
| cip | 删除当前段落并进入插入模式 |
| cis | 删除当前句并进入插入模式 |
| cas | 删除当前句以及尾部空格并进入插入模式 |
| C | 删除当前字符至行尾的内容并进入插入模式 |
| cG | 删除至缓冲区末尾并进入插入模式(以行为单位) |
| cgg | 删除之缓冲区首行并进入插入模式(以行为单位) |
| c$ | 删除至行尾并进入插入模式 |
| c0 | 删除至行首并进入插入模式 |
| d$ | 删除至行尾 |
| d0 | 删除至行首 |
| dw | 删除至下一单词词首 |
| db | 删除至当前单词词首 |
| de | 删除至词尾 |
| daw | 删除当前单词及两侧空格 |
| dap | 删除当前段落 |
| dG | 删除至缓冲区末尾(以行为单位) |
| dgg | 删除至缓冲区首行(以行为单位) |
| 插入模式删除前一个字符 | |
| 插入模式删除前一个单词 | |
| 插入模式删除至行首 | |
| 光标上移一行 | |
| 光标下移一行 | |
| 光标上移半屏 | |
| 光标下移半屏 | |
| 光标上移一屏 | |
| 光标下移一屏 |
| 命令 | 解释 |
|---|---|
| y | 复制当前字符 |
| yy | 复制当前行 |
| x | 剪切当前字符 |
| dd | 剪切当前行 |
| daw | 剪切当前单词(包括词尾空格) |
| diw | 剪切当前单词(不包括词尾空格) |
| daW | 剪切到字串尾的内容(包括字串尾空格,包括当前单词) |
| diW | 剪切到字串尾的内容(不包括字串尾空格,包括当前单词) |
| dw | 剪切当前字符到词尾的内容 |
| dW | 剪切当前字符到字串尾的内容 |
| dis | 剪切当前句的内容(不包括句尾空格) |
| das | 剪切当前句的内容(包括句尾空格) |
| dip | 剪切当前段的内容(不包括段尾空格) |
| dap | 剪切当前段的内容(包括词尾空格) |
| D | 剪切当前字符至行尾的内容 |
| p | 粘贴至下一行(光标自动移动至粘贴行行首) |
| gp | 粘贴至下一行(光标自动移动至粘贴行下一行行首) |
| P | 粘贴至上一行(光变移动至粘贴行行首) |
| gP | 粘贴至上一行(光标移动至粘贴行下一行行首) |
| 插入模式从{reg}中粘贴 | |
| 插入模式插入运算寄存器的计算结果 | |
| "{reg}y | 普通模式复制到{reg} |
| "{reg}p | 普通模式从{reg}粘贴 |
| 命令 | 解释 |
|---|---|
| “ | 无名寄存器(缓存最后一次操作内容) |
| 0-9 | 数字寄存器(缓存最近操作内容,0为复制专用寄存器,1-9为剪切寄存器并动态存放) |
| - | 行内寄存器(缓存行内删除内容) |
| a-z | 具名寄存器(指定时使用,指定A-Z时直接在a-z之后追加) |
| % # . : | 只读寄存器(当前文件名、轮换文件名、最近插入文本、最近操作命令) |
| = | 表达式寄存器(执行表达式命令) |
| * + ~ | 选择及拖拽寄存器(X11 PRIMARY剪切板、X11 CLIPBOARD剪切板、拖拽文本) [注:win和mac系统不区分*与+寄存器] |
| _ | 黑洞寄存器(不缓存操作内容,用于删除) |
| / | 搜索寄存器(缓存最近的搜索的内容) |
| 命令 | 解释 |
|---|---|
| . | 重复上次命令 |
| u | 撤销 |
| U | 整行撤销 |
| 撤销撤销 | |
| = | 自动缩进 |
| < > | 更改缩进 |
| 更改缩进至缓冲区末尾 | |
| {num} | 后面的数值+{num} |
| {num} | 后面的数值-{num} |
| esc | 返回普通模式 |
| 插入模式下进入插入-普通模式(执行完一次普通模式命令后进入插入模式) | |
| zz | 重绘屏幕(使当前行显示在屏幕正中) |
| 插入模式利用{字符编码}输入字符 | |
| 插入模式利用{超三位字符编码}输入字符 | |
| 插入模式利用二合字母插入非常用字符 | |
| r | 普通模式替换当前字符 |
| R | 普通模式连续替换 |
| gr | 普通模式虚拟替换当前字符(按位置替换) |
| gR | 普通模式连续虚拟替换(按位置替换) |
| 命令 | 解释 |
|---|---|
| ~ | 转换当前字符的大小写 |
| g~~ | 转换当前行的大小写 |
| u | 可视模式下转换为小写 |
| U | 可视模式下转换为大写 |
| g~ | 将当前选中文本转换为大小写 |
| gu | 将当前选中的文本转换为小写 |
| gU | 将当前选中的文本转换为大写 |
| guu | 当前行转换为小写 |
| gUU | 当前行转换为大写 |
| guw | 当前单词转换为小写 |
| gUw | 当前单词转换为大写 |
| 命令 | 解释 |
|---|---|
| v | 激活可视模式 |
| V | 激活面向行的可视模式 |
| 激活面向块的可视模式(可以实现多行注释) | |
| viw | 选中当前单词 |
| viW | 选中当前字串 |
| vis | 选中当前句 |
| vib | 选中当前块 |
| vip | 选中当前段落 |
| vaw | 选中当前单词(包括尾部空格) |
| vaW | 选中当前字串(包括尾部空格) |
| vas | 选中当前句(包括尾部空格) |
| vab | 选中当前块(包括尾部空格) |
| vap | 选中当前段落(包括尾部空格) |
| vit | 选中<{char}>{char}>中间内容 |
| vi( | 选中()中间内容 |
| vi{ | 选中{}中间内容 |
| vi< | 选中<>中间内容 |
| vi[ | 选中[]中间内容 |
| vi’ | 选中’’中间内容 |
| vi” | 选中””中间内容 |
| vat | 选中<{char}>{char}>整体内容 |
| va( | 选中()整体内容 |
| va{ | 选中{}整体内容 |
| va< | 选中<>整体内容 |
| va[ | 选中[]整体内容 |
| va’ | 选中’’整体内容 |
| va” | 选中””整体内容 |
| gv | 重选上次高亮选区 |
| o | 切换选取活动端 |
| 查找 | 解释 |
|---|---|
| /{chars} | 正向查找(n下一个N上一个) |
| ?{chars} | 方向查找(n下一个N上一个) |
| gn gN | 查找之后执行命令,跳转至匹配并进入可视模式并选中匹配 |
| / ? | 重新执行上次匹配 |
| / ?{up} {down} | 浏览查找记录 |
| /e | 执行查找并将光标跳转至匹配末尾 |
| v | very magic模式(除下划线、字母、数字外均需要转义) |
| V | very nomagic模式(只用反斜杠需要转义)《正向查找转义/反向查找转义?》 |
| c | 不区分大小写 |
| C | 强制区分大小写 |
| :noh | 查找后执行命令,取消高亮 |
| 元字符 | 解释 |
|---|---|
| () | 特殊,添加到临时仓库,使用1 2 3进行引用 |
| zs ze | 特殊,查找范围内匹配起始和匹配结束标识 |
| <> | 位置,单词边界 |
| ^ $ | 位置,匹配行首和行尾 |
| * | 数量,0-任意个字符 |
| + | 数量,1-任意个字符 |
| ? | 数量,0-1个字符 |
| {n,m} | 数量,n-m个字符 |
| {n} | 数量,n个字符 |
| {n,} | 数量,n-任意个字符 |
| {,m} | 数量,0-m个字符 |
| . | 匹配,通配符 |
| [^] | 匹配,通配符 |
| [{char}{char}] | 匹配,任意一个{char} |
| [^{char}{char}] | 匹配,除{char}之外的字符 |
| [^{char}{char}]* | 匹配,除{char}之外的多个字符《为什么*》 |
| d | 匹配,[0-9] |
| D | 匹配,[^0-9] |
| x | 匹配,[0-9A-Fa-f] |
| X | 匹配,[^0-9A-Fa-f] |
| l | 匹配,[a-z] |
| L | 匹配,[^a-z] |
| u | 匹配,[A-Z] |
| U | 匹配,[^A-Z] |
| w | 匹配,[0-9A-Za-z_] |
| W | 匹配,[^0-9A-Za-z_] |
| t | 匹配,tab字符 |
| s | 匹配,空白字符 |
| S | 匹配,非空白字符 |
| 替换 | 解释 |
|---|---|
| : s/{chars}/{srtings} | 执行一次替换 |
| : s/{chars}/{strings}/g | 执行一行替换(x轴拓展) |
| :%s/{chars}/{strings}/g | 执行全局替换(x轴y轴拓展) |
| g& | 重复执行上次替换,重新限定范围为% |
| :&& | 对当前行执行上次替换 |
| g | 标志位,在全局范围内执行 |
| n | 标志位,抑制正常的替换动作 |
| & | 标志位,使用上次替换时的标志位 |
| c | 标志位,修改之前需要确认 y替换此处匹配 n忽略此处匹配 q退出替换过程 l替换此处匹配后退出 a替换此处之后所有匹配 e屏蔽错误提示 |
| :%s//{strings}/g | 常用,使用上次搜索结果替换查找域 |
| :%s/{chars}//g | 常用,默认使用空格替换{chars} |
| :%s/{chars}//gn | 常用,显示匹配个数 |
| r | 替换域,插入换行符 |
| t | 替换域,插入制表符 |
| t | 替换域,插入反斜杠 |
| \ | 替换域,插入反斜杠 |
| 1 2 3 | 替换域,插入子匹配 |


