示意图

普通模式
| 快捷键 | 功能 |
|---|---|
| i | 进入插入模式,光标前插入 |
| I | 进入插入模式,行首前插入 |
| a | 从当前字符后插入光标 |
| A | 从当前行后插入光标 |
| o | 当前行后插入新一行 |
| O | 当前行前插入新一行 |
| ^ | 移至行首 |
| $ | 移至行末 |
| h | 左移一个字符 |
| j | 下移一个字符 |
| J | 将下一行接到当前行尾部 |
| k | 上移一个字符 |
| l | 右移一个字符 |
| H | 定位屏幕顶的行 |
| M | 定位屏幕中间的行 |
| L | 定位屏幕底部的行 |
| w | 移动到下一个单词开头 |
| b | 移动到上个单词开头 |
| e | 移动到下一个单词结尾 |
| ge | 移动到上个单词结尾 |
| 数字(其中数字0) | 向下移动指定行,数字零代表回当前行号后第一个字符位置 |
| 数字 + G | 移动到指定行首 |
| ctrl + o | 回到上次的行,可多次回退,精确到行和列 |
| ctrl + i | 回退回退的上次的行,可多次,与ctrl + o 相反方向 |
| ' ' | 两个单引号,回到上次的行,精确到行 |
| \` \` | 两个反引号,回到上次的位置,精确到行和列,好用 |
| . | 重复操作 |
| u | 回退操作 |
| ctrl + r | 回退的回退操作 |
| f/F | 搜索行内f后写的字符,搜索F前的字符 |
| t/T | 搜索行内某字符,并定位在它之前的那个字符 |
| ;/ , | 查找下一个字符 / 回退上一个字符 |
| * | 选中当前单词,并高亮其他相同单词 |
| n / N | 遍历下一个高亮单词 / 回退上一个遍历的字符 |
| dd | 剪切当前行 |
| x | 剪切当前字符 |
| dw/daw/d3w | 选中单词头删除该单词/选中该单词任何字符删除该单词/删除后面3个单词 |
| dl(x)/dap | 删除当前字符(两者等价)/删除当前段落 |
| d$ 或D | 删除选中字符及以后该行所有字符 |
| S | 删除选中单词及之前该行字符 |
| cc | 选中当前行,整体修改 |
| cw/caw | 选中单词头修改该单词/选中该单词任何字符修改该单词 |
| yy | 复制当前行 |
| p | 粘贴剪切板内容 |
| \> \> | 缩进当前行 |
| < < | 向左缩进当前行 |
| = = | 自动缩进 |
| [] | 跳到头 |
| ][ | 跳到尾 |
| [[ | 跳到上一个函数 |
| ]] | 跳到下一个函数 |
| zz | 重绘当前屏幕 |
| gg | 定位到本文第一个字符 |
| G | 定位到本文最后一行 |
| gUw | 该字符及该字符后该单词 装换为大写 |
| gUU | 该行转换为大写 |
| gUaw | 该单词转换为大写 |
| "0 | 调用复制专用寄存器,再按p即可粘贴 |
| ” +字母 | 调用一个有名寄存器 “a ~ z”,"jyy 将当前行写到j寄存器 |
| ” + 加号 | 加号寄存器 与系统剪切板对应,此加号是要写的 |
| ci + { | 将{}括号内所有内容修改 |
| di + { | 将{}内所有内容删除 |
| yi + { | 将{}内所有内容复制 |
| vi + { | 将{}内所有内容选中到块 |
| ctrl + f | 转向前一页的行 |
| ctrl + b | 转向后一页的行 |
| ctrl + u | 转向前半页的行 |
| ctrl + d | 转向后半页的行 |
| ctrl + y | 视图转向前一行,光标未转移 |
| ctrl + e | 视图转向后一行,光标未转移 |
| ctrl + g | 列出问价一共多少行 |
| m + 大小写字母 | 给当前字符添加标记 |
| ' + 大小写字母 | 回到标记所在行 |
| \` + 大小写字母 | 回到标记字符 |
| H | 转到屏幕顶端字符 |
| M | 转到屏幕中间字符 |
| L | 转到屏幕底端字符 |
| zo | 展开一个折叠 |
| zc | 收起一个折叠 |
| za | 切换折叠状态 |
| zR | 打开全部折叠 |
| zM | 全部折叠 |
插入模式
| 快捷键 | 功能 |
|---|---|
| ctrl + w | 删除前一个单词 |
| ctrl + u | 删除至行首 |
| esc / ctrl + [ | 返回普通模式 |
| ctrl + o | 只返回普通模式接收一个指令 |
| ctrl + r+ 寄存器名 | 不离开插入模式粘贴一个寄存器,省略寄存器前缀 “ |
| crtl + insert | 光标复制 |
| shift + insert | 光标粘贴 |
命令行模式
| 快捷键 | 功能 |
|---|---|
| :数字 | 到指定行开头 |
| / 字符串 | 文档中搜索下一个匹配项 |
| ?字符串 | 文档中搜索上一个匹配项 |
| : s/target/replacement | 执行替换 |
| :w | 存盘 |
| :w! | 强制存盘 |
| :wq | 存盘退出 |
| :x | 存盘退出 |
| :q | 不存盘退出 |
| :g/aaa/s//bbb/g | 将文件中的aaa 替换成bbb |
可视化模式
| 快捷键 | 功能 |
|---|---|
| v | 进入字符可视化 |
| V | 进入行可视化 |
| Ctrl + v | 列可视化 |
| gv | 选中上次的选区 |
| r + 字符 | 将选区每个字符位替换为所输入的字符 |
常用操作
| 快捷键 | 功能 |
|---|---|
| ggVG | 选中所有内容 |
| ctrl + o + zz | 快速重绘屏幕(插入模式下,如在普通模式下,ctrl + o 有另外的含义) |
| "+加号+p | 可粘贴系统剪切板的内容 |
| "+加号+y | 可将vim里的内容复制到剪切板 |
| m+ 字母 | 标记行 |
| ' + 字母 | 回到标记行 |
| "+字母+yy | 将当前行复制到指定的寄存器 |
| "+字母+p | 将指定寄存器内容粘贴 |
| VGd | 将当前行及后面的所有行删除 |
| gUU | 当前行转为大写 |
| guu | 当前行转为小写 |
| guw | 当前单词转换为小写 |
| gUw | 当前单词转换为大写 |
Easymotion
| 快捷键 | 功能 |
|---|---|
| \ \s | 全文搜索后面提示符输入的字符 |
| \ \f | 光标后搜索后面提示符输入的字符 |
| \ \j | 加强版跳转后面的指定行 |
| \ \k | 加强版跳转前面的指定行 |
| \ \w | 跳转到前面单词的首位 |
| \ \b | 跳转到后面单词的首位 |
| \ \e | 跳转到后面单词的末尾 |
| \ \ge | 跳转到前面单词的末尾 |
