以前习惯于eclipse,sourceinsight,vim用的不是很熟悉,在现在的公司中,vim是一种必备的技巧,慢慢,从难受到得心应手,vim还是比较好用的,下面记录一点实用的技巧
1、vim+ctags+cscope是一个强大的比拟于sourceinsight的字符界面的工具
2、ctrl+],跳转到定义处,ctrl+_+c等同于cs f c的作用,关于具体是那些键被映射到cs f c上,具体看.vimrc文件的定义
3、ctrl+o后退跳转,ctrl+i向前跳转
4、在某单词上按住shift+8,搜索某词,n向后搜索,N向前搜索
5、[[向前跳转到上一个函数定义处,shift+%跳转到匹配的括号处,在if(){比较大的时候很利于看清代码结构
6、u撤销更改,ctrl+r重做更改,:rew跳到第一个文件,当你跳转比较多的时候,回到第一个文件比较有效
7、0跳到行首,$跳到行尾,x删除当前的字符。
8、调试用户态的程序,需要查找某个命令的手册时,例如:statfs时,光标移到statfs上,按下大写K则调出man手册,很有用,帮助按q退出。
9、替换操作,在处理某个shell脚本时非常有效 :
:75,131s/^.//g将文件中75到131行的行首的字符去掉
:%s/^/#/g将文件中所有的行行首都添加#。
:w!只读文件强制保存。
10、跳转到文件,文件中include "ops.h",光标移到文件名上,按下gf将跳转到这个文件,但是先必须用cscope建立文件索引
11、vimdiff的使用与beyond compare一致
dp 复制差异到另一个文件
do 从另一个文件获取差异
diffupdate 更新差异显示对比结果
vertical diffsplit *.c 比较当前编辑的某文件与*.c文件的差异
12、在vim的命令行模式下使用make
:make uImage -j 19 ARCH=arm CROSS_COMPILE=arm-linux-
编译完成后将显示所有的错误,
:cl显示所有编译错误
:cn下一个编译错误
:cp上一个编译错误
将实现所有的错误自动跳转到行的功能。
也可以:!export ARCH=arm
:!export CROSS_COMPILE=arm-linux-
然后编译即可。
13、
A: 在本行行尾插入
J:可以去除本行和下一行之间的换行符,也就是将下一行续接到本行尾部
~:光标所在处的字符进行大小写互换
zz: 将当前行放置于页面中间,利于阅读
zt:将当前行放置于页面的最顶端,一般阅读函数定义时,非常非常有用
ctrl-a:可以将光标所在处的数字加1,负数和多位数都在支持范围内哦。可以用这个快捷键配合宏来干很多事情喽。
ctrl-x:有加1就会有减1,聪明!
14、Vim替换命令
:ranges/pat1/pat2/g
其中 :这是vim的命令执行界面;
ranges是命令执行范围的指定,可以使用%(表示所有行),.(表示当前行),$代表最后一行。
当然也可以使用行号,如10,20表示第10行到20行,.,$表示当前行到最后一行,.+2,$-5表示当前行后两行直到全文的倒数第五行等等。
s 表示其后是一个替换命令;
pat1 表示要查找的一个正则表达式;
pat2 表示希望把匹配串变成的模式的正则表达式;
g 可选标识,带有这个标识表示替换所以的,否则只替换一行。