为什么不采用 Windows 下较为著名的源代码阅读软件 SourceInsight,
- 其一,其在 Linux 下的安装较为繁琐;
- 其二,切换代码时背景色的变化会为人的眼部产生极为不舒服的感觉;
- 其三,Linux 下自有自己的一套实用工具:vim,TagList,Ctags
- 其四,很多 Linux 的软件开发实际在不使用 X Window 的情况下进行的,这时不可能启动基于 X Window 的图形化代码阅读软件。
1. Taglist 与 Ctags
1.1 Taglist 和 Ctags 介绍
Taglist 是一个 Vim 的源代码浏览插件,提供了在 Vim 中查看文件中包含的函数列表和类中的方法类表的功能(类似于大纲显示)。Taglist 功能的实现要依赖于 Ctags。Ctags 是一个用于产生代码索引(Index)文件的插件,其产生大索引文件用于帮助文本编辑工具或其他工具快速、准确定位符号在代码文件中的位置。
1.2 Ctags 的安装
在 http://ctags.sourceforge.net/ 上下载最新的Ctags,以 ctags-5.8.tar.gz 为例进行说明:
$ tar zxvf ctags-5.8.tar.gz
$ cd ctags-5.8/
$ ./configure
$ make
$ sudo ./mkinstalldirs
$ sudo make install
至此,CTags 的安装已完成,这时可以输入 ctags 检验是否成功安装了该软件:
$ ctags
ctags: No files specified. Try "ctags --help".
# 出现如上提示信息,表示安装成功
1.3 Taglist 的安装
在http://sourceforge.net/projects/vim-taglist/files/上,以 taglist_45.zip 为例进行演示,首先,在个人目录(~)下创建.vim目录,将taglist_45.zip中的内容解压缩到该目录下:
$ cd ~
$ sudo mkdir .vim
$ sudo mkdir .vim/plugin
$ cd .vim
$ sudo unzip ../taglist_45.zip
$ ls
doc plugin
进入Vim,在命令模式下输入“helptags ~/.vim/doc”,即完成了Taglist的安装。
此时,Ctags和Taglist还没关联起来。为此,需要修改~/.vim/plugin/taglist.vim文件,找到if !exists(‘loaded_taglist’) 在其前边添加上:
let Tlist_Ctags_Cmd="/usr/local/bin/ctags"
2. 使用 Vim + Taglist + CTags 阅读源码
(1)进入源码所在的目录
(2)使用
ctags -R
对该目录和所有子目录中的源代码建立符号数据库(3)使用
ls
命令确认成功生成了名为tags的符号数据库(4)
vim 某源码文件
,进入源码阅读环境(5)在命令行方式下输入:
:TlistToggle
命令来打开索引:- 按住ctrl键,并且按两下W,即可在正常编辑区域和tags区域中切换。
- 在tags区域中,把光标移动到变量、函数名称上,然后按下enter键,就会自动在正常编辑区域中定位到指定内容。
- 函数列表区显示的只是map_driver.c中的函数情况,在该文件中使用的在其他代码文件中的函数定义并没有显示出来。可以将光标停留的要查看的函数上,
- 然后按“Ctrl+]”即可查看该函数的定义。
- 查看完该函数的定义,按“Ctrl+O”可以跳回原文件。