移动
以字(符)为单位
以单词为单位
| 功能 | 
按键 | 
| 前一个单词尾 | 
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 替换为 str2 | 
:%s/str1/str2/g | 
| 将 1 到 5 行中的 str1 替换为 str2 | 
:1,5s/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 | 
| 去掉 UTF-8 BOM | 
:set nobomb | 
| 保留 UTF-8 BOM | 
:set bomb | 
全局
| 功能 | 
按键 | 
| 退出 | 
: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 | 
vim-table-mode
| 功能 | 
按键 | 
| 删除列 | 
Leader-tdc | 
| 删除行 | 
Leader-tdd | 
| 重新格式化表格 | 
Leader-tr |