ta 跳到下一个 a 前面,配合 d,dt) 一直删除到这行的)
fa 跳到下一个 a
CTRL-F 向前一页 CTRL-B 向后一页
CTRL-D 向下半页 CTRL-U 向上半页
ctrl+i 跳转到函数、变量和 #define
ctrl+i 向前跳到前几次光标位置
ctrl+o 向后跳到后几次光标位置

vi{ 选中 {} 中间的内容,不包括 {}, 可以 ([{’"<
va{ 选中 {} 中间内容,包括 {}

:e! 重新读进上次保存的此文件内容
:ab myname william_djj
以后再编辑时键入 myname,然后空格或回车 myname 串就会被 william_djj 代替
:r !command 在当前位置插入 command 结果
:r filename 当前位置插入文件内容
不退出 vim,直接执行命令,例如在 perl 文件中,直接执行不退出, :!perl % 。 如果前面已经执行过了,则重复前面的命令时,只需要 :!!
插入模式下 ctrl +r ,= 算式,回车插入结果
% 跳转到相配对的括号,或流控
D 表示删除从当前光标到光标所在行尾的内容.
删除某行后面的换行符号:在命令状态下,在某一行上按 "J" 键将 Join 下一行,呵呵
u 撤销上次的操作, ctrl+r 恢复上次的撤销。

:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
: s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/

:f 查看当前文件
v 选择模式 , ctrl+v 块选择模式, V 行选择模式

^ 行首
$ 行尾
0 第一个字符

y 复制
d 删除
x 剪切
p 粘贴