移动
以字(符)为单位
以单词为单位
| 功能 |
按键 |
| 前一个单词尾 |
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 |
全局
| 功能 |
按键 |
| 退出 |
: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 |