移动
以字(符)为单位
以单词为单位
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 前一个单词尾 | 
      ge | 
    
    
      | 后一个单词首 | 
      w | 
    
    
      | 本单词首(已在本词首则跳到前一单词首) | 
      b | 
    
    
      | 本单词尾(已在本词尾则跳到后一单词尾) | 
      e | 
    
  
以屏幕为单位
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 向下翻页 | 
      CTRL-f | 
    
    
      | 向上翻页 | 
      CTRL-b | 
    
    
      | 向下翻半页 | 
      CTRL-d | 
    
    
      | 向上翻半页 | 
      CTRL-u | 
    
    
      | 向上一行 | 
      CTRL-y | 
    
    
      | 向下一行 | 
      CTRL-e | 
    
    
      | 光标移到屏幕上方 | 
      H | 
    
    
      | 光标移到屏幕中间 | 
      M | 
    
    
      | 光标移到屏幕下方 | 
      L | 
    
    
      | 光标所在位置移到屏幕上方 | 
      zt | 
    
    
      | 光标所在位置移到屏幕中间 | 
      zz | 
    
    
      | 光标所在位置移到屏幕下方 | 
      zb | 
    
  
行号
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 跳到第 num 行 | 
      :num 或 numG 或 numgg | 
    
  
文件
编辑
复制
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 复制光标所在单词 | 
      yiw | 
    
    
      | 复制光标所在行 | 
      yy | 
    
  
粘贴
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 在光标之后粘贴 | 
      p | 
    
    
      | 在光标之前粘贴 | 
      P | 
    
  
剪切
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 剪切选中区域 | 
      d | 
    
    
      | 剪切光标所在行 | 
      dd | 
    
  
替换
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 将全文中的 str1 替换为 str1 | 
      :%s/str1/str2/g | 
    
    
      | 将 1 到 5 行中的 str1 替换为 str2 | 
      :1,5/str1/str2/g | 
    
  
大小写
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 将选中内容大小写互换 | 
      ~ | 
    
    
      | 将选中内容全转为小写 | 
      gu | 
    
    
      | 将选中内容全转为大写 | 
      gU | 
    
    
      | 将当前行变成小写 | 
      guu | 
    
    
      | 将当前行变成大写 | 
      gUU | 
    
  
选择
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 选中上一次选择的区域 | 
      gv | 
    
    
      | 选中括号内区域 | 
      vi{、vi[、vi( | 
    
  
搜索
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 向下查找字符串 | 
      /str | 
    
    
      | 向上查找字符串 | 
      ?str | 
    
    
      | 查找下一个 | 
      n | 
    
    
      | 查找上一个 | 
      N | 
    
    
      | 向下查找光标所在单词 | 
      * | 
    
    
      | 向下查找光标所在单词 | 
      # | 
    
  
正则表达式
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 匹配单词左边界 | 
      \< | 
    
    
      | 匹配单词右边界 | 
      \> | 
    
    
      | 去重 | 
      :g/^\(.*\)$\n\1/d | 
    
  
常用
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 删除空行 | 
      :g/^$/d | 
    
    
      | 撤销/UNDO | 
      u | 
    
    
      | 重做/REDO | 
      C-r | 
    
    
      | 统计行/单词/字符/字节数 | 
      g C-g | 
    
  
全局
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 退出 | 
      :q | 
    
    
      | 强制执行 | 
      ! | 
    
    
      | 执行外部命令 | 
      :! | 
    
  
文件操作
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 打开 | 
      :e | 
    
    
      | 打开文件对话框 | 
      :bro e | 
    
    
      | 保存 | 
      :w | 
    
    
      | 另存为对话框 | 
      :bro w | 
    
    
      | 查看历史文件列表 | 
      :ol | 
    
    
      | 查看并打开历史文件 | 
      :bro ol | 
    
    
      | 重命名当前文件 | 
      :f filename | 
    
  
vimdiff
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 移动到上一个不同处 | 
      [c | 
    
    
      | 移动到下一个不同处 | 
      ]c | 
    
    
      | 该差异点使用当前文件的 | 
      dp | 
    
    
      | 该差异点使用其它文件的 | 
      do | 
    
    
      | 手动刷新重新比较 | 
      :diffupdate | 
    
  
Buffer
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 查看 Buffer 列表 | 
      :ls | 
    
    
      | 转到 Buffer 列表中的下一个 Buffer | 
      :bn | 
    
    
      | 转到 Buffer 列表中的上一个 Buffer | 
      :bp | 
    
    
      | 转到 Buffer 列表中的 num 号 Buffer | 
      :bnum | 
    
    
      | 你之前待过的一个 Buffer | 
      :b# | 
    
    
      | 从 Buffer 列表中删除 num 号 Buffer | 
      :bdnum | 
    
  
组合命令
可以使用 | 来组合命令,比如 cmd1 | cmd2。
代码
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 格式化代码 | 
      gg=G | 
    
    
      | 去除 1-20 行首的行号 | 
      :1,20s/^\\s\*[0-9]\*\\s\*//g | 
    
    
      | 展开全部折叠 | 
      zR | 
    
    
      | 展开当前层级折叠 | 
      zr | 
    
    
      | 全部折叠 | 
      zM | 
    
    
      | 当前层级折叠 | 
      zm | 
    
    
      | 切换折叠/展开 | 
      za | 
    
    
      | 递归折叠/展开当前大区块 | 
      zA | 
    
    
      | 折叠当前区块 | 
      zc | 
    
    
      | 递归折叠当前大区块 | 
      zC | 
    
    
      | 展开当前区块 | 
      zo | 
    
    
      | 递归展开当前大区块 | 
      zO | 
    
    
      | 格式化 json 数据 | 
      :%!python -m json.tool | 
    
    
      | 缩进当前行 | 
      >> | 
    
    
      | 反缩进当前行 | 
      << | 
    
  
插件
CtrlP
基础按键 C-p
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 刷新列表 | 
      F5 | 
    
    
      | 切换文件/缓冲区/MRU | 
      C-f/b | 
    
    
      | 切换全路径搜索/文件名搜索 | 
      C-d | 
    
    
      | 切换正则表达式模式 | 
      C-r | 
    
    
      | 上/下一个选项 | 
      C-k/j | 
    
    
      | 在新标签/垂直分割/水平分割打开文件 | 
      C-t/v/x | 
    
    
      | 历史选择记录的上/下一条 | 
      C-p/n | 
    
    
      | 创建文件和它的父路径 | 
      C-y | 
    
    
      | 标记并打开多个文件 | 
      C-z C-o | 
    
    
      | 退出 CtrlP | 
      C-c | 
    
  
LeaderF
  
    
      | 功能 | 
      按键 | 
    
  
  
    
      | 打开文件 | 
      Leader-f | 
    
    
      | 打开缓冲区 | 
      Leader-b | 
    
    
      | 打开 MRU | 
      Leader-m(自定义的) | 
    
    
      | 退出 | 
      C-c | 
    
    
      | 切换模糊查找和正则查找 | 
      C-r | 
    
    
      | 粘贴 | 
      C-v | 
    
    
      | 清空输入 | 
      C-u | 
    
    
      | 上/下一个选项 | 
      C-k/j | 
    
    
      | 在新标签/垂直分割/水平分割打开文件 | 
      C-t/]/v | 
    
    
      | 刷新列表 | 
      F5 |