Emacs的魅力不必多说,这里简单介绍一下通过Emacs来阅读Linux内核源代码的操作。

1、 生成TAGS文件:

目前最新的Kernel代码目录的Makefile里自带已经有生成TAGS的target了,进入源源代码根目录下,运行:

make TAGS

然后在当前目录下就会生成TAGS标签文件了,我这里文件大小有六十多M。

对于早期版本,可以手工生成此标签文件,在Shell中进入Kernel源代码根目录下,运行:

#find . -name "*.[chCHS]" | etags -

后即可在当前目录下生成TAGS了。

或者在Emacs里进入到Kernel源代码根目录下,运行:

M-! etags *.[chS]

同样也在当前目录下生成TAGS了。

2、加载TAGS文件:

 在Emacs里使用这个标签一般有两种方式:

1)临时使用方式:

运行M-x visit-tags-table,再输入TAGS文件的位置即可加载。

2)启动Emacs时自动加载方式:

在~/.emacs文件中加入一行,设置tags-file-name变量
(setq tags-file-name "path/TAGS")
如果要一次查找多个TAGS文件,可以设置tags-table-list变量
(setq tags-table-list '("path1/TAGS" "path2/TAGS" "path3/TAGS"))
另外,对于较大又不是经常使用的TAGS,尽量放到该list的后面,避免不必要的打开

3、Emacs阅读代码相关操作:

M-. 查找光标所指向的函数的定义
C-M-. 输入函数名,查找其定义
M-*   回退
C-u M-. 查找标签的下一个定义