来自豆瓣网友:http://9.douban.com/site/entry/125947350/
插入操作
“i” — 从光标所在位置前开始
“I” –光标移到当前行的行首,然后在其前插入文本
“a”– 光标当前所在位置之后追加新文本
“A” –命令将把光标挪到所在行的行尾
“o” — 在当前行的下面插入新行
“O” — 在当前行的上面插入新行
移动操作
按字移动光标
在vim中,”字”有两种含义:
a. 广义的字,它可以是两个空格之间的任何内容。如:{int k;它只有2个字,一个是{int ,另一个是k;
b. 狭义的字,英文单词、标点符号和非字母字符(如$、%、^、&、*、(、)、-、+、{、}、[、]、~、|、\、<、>、/等)均被当成是一个字。上面那一行中就包括{、int、k、;这4个字。
vim中使用大写命令一般就是指将字作为广义来对待,使用小写命令就是作为狭义对待。
1. w和W命令:将光标右移至下一个字的字首,它们的区别是:w命令,把光标移到下一个字(狭义)的字首,W命令,将把光标移到下一个字(广义)的字首。
2. e和E命令(end of word):如果光标起始位置处于字内(即非字尾处),则该命令将把光标移到本字字尾;如果光标起始位置处于字尾,则该命令将把光标移动到下一个字的字尾。
3. b和B命令(backward):如果光标处于所在字内(即非字首),则该命令将把光标移至本字字首;如果光标处于所在字字首,则该命令将把光标移到上一个字的字首.
按句移动光标
在vim中,句子被定义为以逗号(,)、句号(.)、问号(?)和感叹号(!)结尾,且其后面跟着至少两个以上(含两个)空格(外国人使用打字机留下的习惯)或一个换行符的字符序列。这个定义和习惯的用法有很大出入,注意使用。
1.( 命令:将光标移至上一个句子的开头;
2. )命令:将光标移至下一个句子的开头
3. 搜索及替换命令
搜索
/pattern: 从光标开始处向文件尾搜索pattern
?pattern: 从光标开始处向文件首搜索pattern
n: 在同一方向重复上一次搜索命令
N: 在反方向上重复上一次搜索命令
替换
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1, n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换