1、点.用来重复上一个操作
2、f{char}用来在同一行中找char字符,如f+,会在行中找+号。
3、分号;会重复通过f找到字符这个动作,往后找。逗号,则会让它往前找。

示例:综合上面3点,完成一个任务:把
var foo = “method(“+argument1+”,”+argument2+”)”;
这行代码中的+号前后都加上空格:
先f+找到+,修改:s + ,然后;号找到下一个+,然后点,之后一直输入;.就可以了

4、几个大写的作用:
C = c$
S = ^C
I = ^i
A = $a
O = ko

示例:给10行代码末尾加上;分号
先A;,再j,再点.,后面一直j.就可以了。

5、cw删除一个单词并进入插入模式,如果光标在一个单词中间,则bcw,这个很容易理解。这个是往后删除,如果要往前删除则cb,你懂的。只删除当前光标字符,马上变成插入模式,则用s

6、在数字上(ctrl+a)会把数字变大1,减小1。要变大10则:10 如果光标当前不在数字上,则会在当前位置往后找到第一个数字做操作

7、删除整个单词,不管光标在单词的哪:daw,delete all word,类似w的还有p,整个段落,dap,删除整个段落。当然除了d也可以用在c上,change。

8、guw把单词变成小写,gUw变成大写,类似第7点的,也可以guaw。g~可以把大小写全部反过来。

9、在编译(插入)模式下,相当于backspace删除一个字符,向前删除单词,删除到行开始处。

10、在插入模式下,一般是按Esc来回到正常模式,不过它要让你的手离开键盘。替代方案是<c-[>

11、复制粘贴:
下面这段话,光标在开始处,复制到逗号,再粘贴到末尾:

PracticalVim,byDrewNeil
ReadDrewNeil’s

先yt,也就是复制到逗号的地方,再jA空格到末尾编辑,0把第0个粘贴上,Ok了

12、打开文件更方便
安装FuzzyFinder插件:http://www.vim.org/scripts/script.php?script_id=1984
它依赖L9库,所以还得先安装L9:http://www.vim.org/scripts/script.php?script_id=3252
再在vim的配置中加上:

nmap ,, :FufCoverageFile

之后就可以通过快速输入两个逗号来打开文件查找功能了。
如果只想显示某几种类型的文件时,加上:

let g:fuf_coveragefile_globPatterns = [‘/.cpp’, ‘**/.h’, ‘/.c’, ‘/*.py’, ‘/.txt’]

13、输入特殊字符
<c-v>xx xx指的是数字,ascii码,超过ascii码的,加个xx前面加个u,表示是unicode
<c-k>xx 这里的xx就不一定是字母或数字等字符了,运行一下digraphs就可以看到一个表,三列表示一组,三列中的第一列是这里描述的xx,第二列是它可以打出来的东西,第三列是上面的xx 中的xx。

14、特长的行
自动换行,用set wrap
不换就set nowrap
在一行超长的被自动换行的每一行中,要移动位置:
hjkl四个键前面加上g,表示在可视行上稳定,自动换行的在操作上会被当作多行
g^移动到当前可见行首
g$行尾
gm 移动到当前可见行的中间

15、默认的marks

`” 跳到上次在退出之前做的修改的那个位置
`[ 上次变化或p粘贴的第一个字符
`] 上次变化或p粘贴的最后一个字符
'< 上次在可视visual模式下选中的第一行
'> 上次在可视visual模式下选中的最后一行
'. 上次修改的地方(位置比较确切,明确到列)
'^ 在上次insert模式退出前的位置

16、强大的r!
用来插入插入某个命令执行的结果,如:
:r! pwd

17、替换文本
rx 替换当前光标所在的字符为x
R 从光标处开始替换,直到按下esc键
2s 从光标处开始替换,把接下去的两个字符替换成任何你输入的文本
2S 从光标所在的行开始替换,接下去的两行都会被替换成任何你输入的文本

18、改变文本
cc 改变整行文本
C 从光标处往后全部改变
(改变文本和替换文本的差别在于,替换时,字符数是一样的)