作者:leviathan.alan
看大家讨论得热烈,我也写点。呵呵 
其实内核原代码的Makefile就包含了make tags/TAGS的选项, 
但是生成的tags太大,因为包含了drivers等不常用的目录。 
因此参照内核的Makefile文件,写了一个Makefile, 
用来生成ctags/cscope/etags。 
这样,可以根据自己的需要,删除和添加目录。 
我以前没有用过tags/cscope,不知道有没有更好的方法。欢迎指教。 
也请大家补充tags/cscope的常用的和好用的命令,技巧。 
一、用法 
找一个空目录,把附件Makefile拷贝进去。 
然后在该目录中选择性地运行如下make命令: 
注:SRCDIR用来指定内核源代码目录,如果没有指定, 
则缺省为/usr/src/linux/,如 
$ make 
将处理/usr/src/linux下的源文件,在当前目录生成ctags, cscope 
1) 只创建ctags 
$ make SRCDIR=/usr/src/linux-2.6.12/ tags 
2) 只创建cscope 
$ make SRCDIR=/usr/src/linux-2.6.12/ cscope 
3) 创建ctags和cscope 
$ make SRCDIR=/usr/src/linux-2.6.12/ 
4) 只创建etags 
$ make SRCDIR=/usr/src/linux-2.6.12/ TAGS 
二、处理时包括的内核源文件: 
1) 不包括drivers,sound目录 
2) 不包括无关的体系结构目录 
3) fs目录只包括顶层目录和ext2,proc目录 
对2.6.12.1内核,这样生成的tags大约12M,cscopes大约19M 
三、最简单的ctags命令 
---------------------- 
1) 进入 
进入vim后,用 
:tag func_name 
跳到函数func_name 
---------------------- 
2) 看函数(identifier) 
想进入光标所在的函数,用 
CTRL + ] 
---------------------- 
3) 回退 
回退用 
CTRL + T 
---------------------- 
我现在只会用这几个命令,请大家说说其他常用的命令。
                  	
				
