vim常用快捷键
%  跳转到配对的括号去
[[  跳转到当前或者上一代码块(函数定义、类定义等)的开头去(但要求代码块中'{'必须单独占一行)
][  跳转到当前代码块(函数定义、类定义等)的结尾去(但要求代码块中'{'必须单独占一行)
]]  跳转到下一代码块(函数定义、类定义等)的开头去(但要求代码块中'{'必须单独占一行)
[/  跳到注释开头(只对/* */注释有效)
]/ 跳到注释结尾(只对/* */注释有效)
gD  跳转到当前文件内标识符首次出现的位置,可用于跳转到全部变量的定义处;查找局部变量时,要是多个函数中定义了该局部变量,使用gD进行查找,找到的变量定义可能不是你需要的
gd 跳转到当前函数内标识符首次出现的位置,可用于跳转到局部变量的定义处
''  跳转到光标上次停靠的地方, 是两个', 而不是一个"
mx  设置书签,x只能是a-z的26个字母

delm 删除书签标记
`x  跳转到书签处("`"是1左边的键)
>  增加缩进,"x>"表示增加以下x行的缩进
<  减少缩进,"x<"表示减少以下x行的缩进


快速定位

gd(正常模式下使用命令) 跳转到局部变量定义处。
gD(正常模式下使用命令) 跳转到全局标量定义处。
*(正常模式下使用命令) 搜索并跳到下一个光标所在的单词。
g*(正常模式下使用命令) 功能接近*,但是查找的目标不带\<和\>单词分界符号。
#(正常模式下使用命令) 搜索并跳到上一个光标所在的单词。
g#(正常模式下使用命令) 功能接近#,但是查找的目标不带\<和\>单词分界符号。


:vimgrep(正常模式下使用命令) 全文搜索,功能同grep命令,但是支持在vim进行多文件跳转定位。
使用方法:vimgrep 正则表达式 文件。文件支持通配符,例如*.c代表所有的.c文件。如果希望递归搜索,可以使用**/*,表示搜索所有的文件。
:cl 列举结果
:cc(正常模式下使用命令) 当前结果
:cn(正常模式下使用命令) 下一个结果
:cp(正常模式下使用命令) 上一个结果
:cw(正常模式下使用命令) 重新打开搜索结果窗口


函数列表
taglist.vim(插件) 列表插件。
let Tlist_Use_Right_Window = 1(写入配置文件.vimrc中) 如果希望列表在右侧显示,则加入这个配置,默认是左侧。
:Tlist(正常模式下使用命令) 显示函数列表。
d(在taglist窗口下使用) 从列表中删除文件。
+(在taglist窗口下使用) 展开文件。
-(在taglist窗口下使用) 折叠文件。
=(在taglist窗口下使用) 折叠所有文件。
x(在taglist窗口下使用) 显示或隐藏正常窗口。


<C-O>    光标返回到以前的位置。相当于光标移动的“撤销”

<C-I> 光标返回到后来的位置。相当于光标移动的“恢复”


翻页

整页翻页 ctrl-f ctrl-b
f就是forword b就是backward

翻半页
ctrl-d ctlr-u
d=down u=up

滚一行
ctrl-e ctrl-y

zz 让光标所杂的行居屏幕中央
zt 让光标所杂的行居屏幕最上一行 t=top
zb 让光标所杂的行居屏幕最下一行 b=bottom

进阶的游标移动
0  是数目字 0 而不是英文字母 o。或是 Hmoe 键,移至行首,
   (含空白字元)。
^  移至第一个非空白字元,注意,要 Shift 键。
$  移至行尾,或 End 键。要 Shift 键。
以上两个按键是源自规则表示式(regular expression),在 regexp 中 ^ 是匹配行首,$ 是匹配行尾。
 G  移至档尾(最后一行的第一个非空白字元处)
gg 移至档首(第一行之第一个非空白字元处)
gg 是 vim 的扩充功能,在 elvis 或原始 vi 中可用 1G 来移至档首(是数字 1 不是英文字 l)。
G 之原意是 goto,指移至指定数目行之行首,如不指定数目,则预设是最后一行。
 w  移至次一个字(word)字首。当然是指英文单字。
W  同上,但会忽略一些标点符号。
e  移至前一个字字尾。
E  同上,但会忽略一些标点符号。
b  移至前一个字字首。
B  同上,但会忽略一些标点符号。
H  移至萤幕顶第一个非空白字元。
M  移至萤幕中间第一个非空白字元。
L  移至萤幕底第一个非空白字元。
这和 PageDown,PageUp 不一样,内文内容并未动,只是游标在动而已。
 n| 移至第 n 个字元(栏)处。注意,要用 Shift 键。n 是从头起
   算的。
:n 移至第 n 行行首。或 nG。
 

特殊的移动
)  移至下一个句子(sentence)首。
(  移至上一个句子(sentence)首。
}  移至下一个段落(paragraph)首。
{  移至上一个段落(paragraph)首。
sentence 是以 . ! ? 为区格。
paragraph 是以空白行为区格。
 %  这是匹配 {},[],() 用的,例如您的游标现在在 { 上
   只要按 %,就会跑到相匹配的 } 上。写程式时满好用的。


Vim使用介绍
http://www.cnblogs.com/tzhangofseu/archive/2011/12/17/2290955.html


vim与复制,删除,粘贴,块操作以及快速替换功能http://blog.youkuaiyun.com/tsuliuchao/article/details/8131537