1、ctag linux
固然,第一步就是要下载它!一条命令搞定:vim
$sudo apt-get install ctags函数
若是不幸提示找不到软件包ctags,首先你也许应该update一下你的软件源,还不行的话试试把ctags改为 exuberant-ctagsspa
下载完了你就能够用它来产生咱们的标签文件tags 了,tags文件是实现跳转功能的英雄,就是它把咱们送到咱们想要去的地方的——好比我在个人程序里写了一个库函数foo,在某个时刻我想查看这个库函数自己是怎么实现的?那我只需把光标停在关键词上,再按一下组合键 ( ctrl + ] ) 就会马上帮我跳转到库函数foo的源代码的地方,按一下组合键 ( ctrl + o ) 就能够跳回来!很厉害吧?固然若是foo是库函数对一个系统调用的封装,你就能够顺着tags 给咱们提供的道路跳到内核去查看源代码是怎么写的,固然这期间可能会有不止简单的两层封装定义,但咱们一次次跳转就能够深刻其里,了解内幕!哈哈!怎么作?全程仅需两步,follow me!.net
第一步 ,在咱们的跳转目的地 执行这条命令:插件
$ctags -Rblog
好比我想要个人程序能随时去库函数 里查询原型,那我就能够在库函数源代码的顶层目录~/downloads/glibc-2.9下执行上面那条命令:递归
~$cd ~/downloads/glibc-2.9get
~/downloads/glibc-2.9$ctags -R原型
命令中的选项-R 的意思是:递归地进入当前目录下的全部子目录,把在该目录下的全部文件的关键词(包括函数名、宏、文件名等等关联到一块儿,而且写入一个tags文件)。固然,你若是想让你的函数能够跳转到内核,那么你应该在内核源代码的顶层目录下执行这条命令。
第二步 ,在/etc/vim/vimrc文件中,添加一句话(权且把他们称为au指令吧,由于它以au开头,注意大小写),写上咱们程序的所在地 。例如我在完成了第一步后,在我机器的vimrc中添加的内容以下:
au BufEnter /home/seton/programs /* setlocal tags+=/home/seton/downloads/ glibc-2.9/tags
固然,你要把上面灰色底色标注出来的路径换成你本身机器上的具体路径。其中/home/seton/programs/*的意思是:在该路径下的所 有文件(由于用了通配符*)均可以经过tags文件实现跳转(包括其子目录),而这个tags文件,就是由后面这个路径/home/seton /downloads/glibc-2.9/tags指定。帅!也许你会问,那我就干脆写成 /* 就行啦,那么系统中的任何一个文件我均可以跟gilbc-2.9关联,实现跳转,固然你能够这么作,但有时候你并不须要这么作。
这就搞定了,你如今就能够斟杯卡布奇诺享受自由跳转的乐趣了,但咱们能够加更多的东西,好比把内核源代码也添加进来,必要时咱们就跳到内核中去瞧 瞧,怎么实现,如法炮制,先在内核源代码顶层目录执行指令ctags -R,而后在/etc/vim/vimrc文件中再添加一句话便可,固然添加时要把tags所在的路径替换成内核源代码的路径。例如,变成这样:
au BufEnter /home/seton/programs /* setlocal tags+=/home/seton/downloads/ glibc-2.9/tags
au BufEnter /home/seton/kernel_programs /* setlocal tags+=/home/seton/downloads/ linux-2.6.31/tags
固然你还须要一个很是重要的vim命令ts ,由于你要跳转的关键词可能出如今库函数中,也可能出如今内核源码中,也可能同时都有对此关键字的定义,这时候你就要在vim命令模式下敲入:ts 来罗列出全部出现该声明关键词的地方(显然你应该先把光标停在你想要跳转的关键词上面),而后按相应的序号在进行跳转。罗列的次序跟你在vimrc中写au指令的顺序相关,谁写在上面就先罗列谁。
2、Taglist
Taglist是vim的一个插件,能够方便地在终端侧边显示出当前程序全部的函数、宏等信息,支持鼠标双击跳转,对于规模比较大的代码而言,这是一个很是实用功能。
Taglist的使用很是简单,只需在网上下载一个配置文件便可,能够用下面这个连接下载:
http://download.csdn.net/source/249784
下载完了解压,将会蹦出俩文件夹(doc和plugin),而后就潇洒地把这两个文件夹扔到主目录下的隐藏文件夹.vim吧!(没有这个隐藏文件夹的话就mkdir一个)。搞定以后,用vim打开你的程序源码,敲下命令:Tlist 打开列表,再输入一次关闭列表。试试看看效果吧。
原文出处:http://blog.csdn.net/seton040/article/details/4718615