Loading... ## 示意图 ![vi-vim-cheat-sheet-sch.gif](https://assets.fangshirui.cn/typecho/uploads/2019/07/3039608617.gif) ## 普通模式 | 快捷键 | 功能 | ---- | --- | 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 | 跳转到前面单词的末尾 | [1]: https://fangshirui.cn/usr/uploads/2019/07/3039608617.gif 最后修改:2020 年 12 月 10 日 08 : 07 PM © 允许规范转载