1. 光标移动
l | 右移一个字符 |
h | 左移一个字符 |
w | 右移一个字 |
W | 右移一个空白分隔字 |
b | 左移一个字 |
B | 左移一个空白分隔字 |
$ | 移到行尾 |
e | 右移到字的末尾 |
E | 右移到空白分隔字的末尾 |
0 | 移到行首 |
RETURN | 移到下一行行首 |
j | 下移一行 |
- | 移到上一行行首 |
k | 上移一行 |
) | 句尾 |
( | 句首 |
} | 段尾 |
{ | 段首 |
% |
2. 查看工作缓冲区
^D | 下移半个窗口 |
^U | 上移半个窗口 |
^F | 下移一个窗口 |
^B | 上移一个窗口 |
20G/G | 移到第20行/移到文件末尾 |
H | 移到窗口顶部 |
M | 移到窗口中间 |
L | 移到窗口底部 |
3. 添加文本
i | 光标前插入 |
I | 当前行行首插入 |
a | 光标后插入 |
A | 当前行行尾插入 |
o | 当前行下面新开一行插入 |
O | 当前行上面新开一行插入 |
4. 删除和修改文本
20x | 删除20个字符 |
20X | 删除当前字符前面的20个字符 |
20dd | 删除20行 |
dtc | 删除直到出现c字符的地方 |
D | 删除到行尾 |
20~ | 改变后面20个字符的大小写 |
s | 替换 |
S | 替换整行 |
5. 搜索
/rexp | 向下搜索正则表达式 |
?rexp | 向上搜索 |
n | 同方向重复搜索 |
N | 反方向重复搜索 |
/ | 向下重复搜索 |
? | 向上重复搜索 |
fc | 光标定位于当前行上下一个c字符上 |
Fc | 光标定位于当前行上前一次出现c字符的地方 |
tc | 光标定位于当前行上下一个c字符出现的前一个字符 |
Tc | 光标定位于当前行上下一个c字符出现的后一个字符 |
; | 重复上次执行的f F t T 命令 |
6. 其他命令
J | 当前行和下一行连接起来 |
. | 重复最近的修改命令 |
:w file | 写入file 文件 |
:q | 退出Vim |
ZZ | 退出并保存 |
:f or ^G | 现在状态 |
^V | 插入下一个字符 |
7. Yank 和 Put 命令
yM | 移出M指定的文本 |
20yy | 移出20行 |
Y | 移出到行尾 |
P | 在上面插入文本 |
p | 在下面插入文本 |
8. 高级命令
mm | 设置标记名m |
'' 两个' | 光标移到前一次的位置 |
'm | 光标移到标记行m |
`m | 光标移到标记m 标记的字符 |
:e file | 编辑文件 |
:n | 编辑下一个文件 |
:rew | 返回第一个文件 |
:sh | 启动shell |
:!cmd | 执行cmd |
!!cmd | 执行cmd, 并将输出替换当前行 |
9. 杂项
:w | 写入硬盘 |
:wq | 写入硬盘后离开 |
ctrl+p | 向后查找匹配 |
ctrl+n | 向前查找匹配 |
gg | 移到文档第一个字符 |
yy | 复制光标所在的那一行 |
dd | 删除光标所在的那一行 |
20yy | 复制包括光标行的20行数据 |
20dd | 删除包括光标行的20行数据 |
dG | 删除光标所在行到最后一行所有数据 |
yG | 复制光标所在行到最后一行所有数据 |