看来我已经全部掌握这些快捷键了。。

http://7xibui.com1.z0.glb.clouddn.com/@/2015/12/vi-vim-cheat-sheet-sch.gif

光标移动

快捷键 说明
h 左移
j 下移
k 上移
l 右移
w 跳到下一个词开始的位置 (标点符号也算)
W 跳过一个词 (不算标点)
e 跳到单词结尾 (算标点)
E 同上 (不算标点)
b 跳到单词开头 (算标点)
B 同上 (不算标点)
0 跳到行首
^ 跳到行第一个非空白字符处
$ 跳到行尾
G 跳转到行尾,前面加数字可跳转到该行
提示: 在移动命令前面加数字可以重复执行,比如4j向下移动四行。
插入模式 进入插入/追加文本
i 在光标处进入插入模式
I 在行首进入插入模式
a 在光标后进入插入模式
A 在行尾进入插入模式
o 在当前行下方追加一空行
O 在当前行上方追加一空行
ea 在单词结尾进入插入模式
Esc 退出插入模式

编辑

快捷键 说明
r 修改单个字符,无需进入插入模式
J 将下一行移到当前行尾
cc 删除一整行进入插入模式
cw 删除单词进入插入模式
c$ 从当前光标删到行尾并进入插入模式
s 删除一字符并进入插入模式
S 删除一整行并进入插入模式 (和cc一样)
xp 交换两个字符 (先删除一个字符在粘贴)
u 撤销
. 重复上一个动作

选择文本 (可视化模式)

快捷键 说明
v 进入基于字符的可视化模式, 可标记行, 然后下指令(比如y复制)
V 进入基于行的可视化模式
o 移到选择的文本另一端
Ctrl+v 进入基于块的可视化模式
O 移到块的另一个角
aw 选定一个单词
ab 选定一个括号(*)块 (包括括号())
aB 选定一个括号{*}块 (包括括号{})
ib 选定()内部内容
iB 选定{}内部内容
Esc 退出可视化模式

可视化操作

快捷键 说明
> 右移
< 左移
y 复制选中的文本
d 删除选中的文本
~ 大小写转换

复制粘贴

快捷键 说明
yy 复制一行
2yy 复制两行
yw 复制一个单词
y$ 从当前光标复制到行尾
p 粘贴到光标后
P 粘贴到光标前
dd 删除(剪切)一行
dw 删除(剪切)当前单词
x 删除(剪切)当前字符

退出VIM

快捷键 说明
:w 保存文件,不退出
:wq 保存文件并退出
:q 退出,若发生了修改而没保存则无法退出
:q! 强制退出

搜索/替换

快捷键 说明
/pattern 往后搜索字符串
?pattern 往前搜索字符串
n 向相同方向搜索下一个字符串
N 向相反方向搜索下一个字符串
:%s/old/new/g 将所有的old替换成new
:%s/old/new/gc 同上,只不过是一个一个询问

多文件操作

快捷键 说明
:e filename 在新缓冲区编辑文件
:bnext (或 :bn) 跳到下一个缓冲区
:bprev (或 :bp) 跳到前一个缓冲区
:bd 删除当前缓冲区 (即关闭文件)
:sp filename 在新缓冲区打开一个文件并分割窗口
ctrl+ws 分割窗口
ctrl+ww 切换窗口
ctrl+wq 关闭窗口
ctrl+wv 垂直分割窗口