inux下代码阅读 -- 配置vim+ctags+taglist+cscope

参考文献1:http://www.lupaworld.com/home/space-131820-do-blog-id-118756.html


参考文献2:http://liupingjing.blog.ubuntu.org.cn/?p=114


藏文地址1:http://hi.baidu.com/wstone_h/blog/item/ed68bcb5221eb4c937d3ca35.html


藏文地址2:http://hi.baidu.com/wstone_h/blog/item/cb4c72ca9c210681c8176821.html



最近要分析一些代码,在win下有Souce Insight进行源码阅读,在linux下工具就显的比较多,如:ctags、cscope、global、lxr、KScope、 sourcenav、calltree、CodeViz、ncc、gprof等,还有一些IDE。KScope是cscope的图形前端,比较不错。不过 本人喜欢简洁的,所以搭建

vim+ctags+taglist+cscope

(我的环境是

ubuntu8.04

)



1、安装ctags

ctags用于查找符号的定义,vim默认就是支持ctags产生的tag数据库的。ubuntu自带了轻量型的vim,exuberant-ctags是ctags的最新版本,源里有exuberant-ctags,运行以下安装:


sudo apt-get install exuberant-ctags


输入:ctags --version


Exuberant Ctags 5.7, Copyright (C) 1996-2007 Darren Hiebert


Compiled: Mar 12 2008, 08:23:02


Addresses: <[email protected]>, http://ctags.sourceforge.net


Optional compiled features: +wildcards, +regex


显示以上信息,安装成功


建立数据库命令:ctags -R


在vim编辑器中浏览:


    :ta x 跳转到符号x的定义处,如果有多个符号,直接跳转到第一处


    :ts x 列出符号x的定义


    :tj x 可以看做上面两个命令的合并,如果只找到一个符号定义,那么直接跳转到符号定义处,如果有多个,则让用户自行选择。


    Ctrl+] 跳转到当前光标下符号的定义处,和ta类似。


    Ctrl+t 跳转到上一个符号定义处,和上面的配合基本上就能自由跳转了。


    另外两个:tn, :tp是在符号的多个定义之间跳转



2、安装taglist

taglist配合ctags使用,本身是vim的插件,在vim官网有下载,最新是taglist_45.zip


下载地址:http://www.vim.org/scripts/script.php?script_id=273


下载后解压,检查是否有~/.vim目录,如果没有就建立一个:mkdir ~/.vim


把taglist_45.zip解压出来的2个文件doc和plugin拷贝到~/.vim目录下


配置.vimrc文件


输入:vim ~/.vimrc,打开vimrc文件,添加以下的代码(用于指定快捷键F8):


nnoremap <silent> <F8> :TlistToggle<CR>


这样默认tag窗口是在左边,如果想显示在右边可以加入以下:


let Tlist_Use_Right_Window=1



3、安装cscope

cscope用于快速查看函数、变量、宏等的定义和调用。ubuntu的源中有cscope,运行以下安装:


sudo apt-get install cscope


接着下载cscope_map.vim文件:


wget http://cscope.sourceforge.net/cscope_maps.vim


,把内容添加到.vimrc文件中或者将cscope_map.vim文件放在~/.vim/plugin目录中


建立数据库的命令:cscope



以下是我的.vimrc文件的内容


附录:

"开关tag窗口


nnoremap <silent> <F8> :TlistToggle<CR>



"使用右侧tag窗口


"let Tlist_Use_Right_Window=1



"一般设置.


"set nocompatible "VIM而不是VI


set history=50 "历史记录50条


set fenc=utf-8 "设置默认语言为8位unicode


"man Q gq "屏蔽Q, 以免进入Ex模式


filetype on "打开文件类型检测



"


""颜色设置.


colorscheme delek "主题


"colorscheme evening "主题


syntax on "语法高亮


"set hls " 查找文本高亮



"界面设置.


set ruler "显示当前位置


set number "显示行号


""set nonumber "不显示行号



"格式设置.


set autoindent "自动缩进


set smartindent "智能缩进


set cindent "C缩进


set tabstop=4 "硬TAB


set softtabstop=4 "软TAB


set shiftwidth=4 "缩进空格数


set expandtab "空格替换TAB


"set smarttab "智能TAB


"


set showmatch "显示匹配


"set matchtime=5 "1/10秒延迟


"set hlsearch "高亮搜索


"set incsearch "搜索中匹配


set tags=tags; "ctags


set autochdir "ctags



------------------------------------------------------

cscope -Rbkq

这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。
其中cscope.out是基本的符号索引,后两个文件是使用"-q"选项生成的,可以加快cscope的索引速度。
上面所用到的命令参数,含义如下

------------------

在VIM中使用cscope非常简单,首先调用“cscope add”命令添加一个cscope数据库,然后就可以调用“cscope find”命令进行查找了。VIM支持8种cscope的查询功能,如下:例如,我们想在代码中查找调用work()函数的函数,我们可以输入:“:cs find c work”,回车后发现没有找到匹配的功能,可能并没有函数调用work()。我们再输入“:cs find s work”,查找这个符号出现的位置,现在vim列出了这个符号出现的所有位置。我们还可以进行字符串查找,它会双引号或单引号括起来的内容中查找。还可以输入一个正则表达式,这类似于egrep程序的功能。

--------------------------

你可能感兴趣的:(inux下代码阅读 -- 配置vim+ctags+taglist+cscope)