Source Insight是一款编辑器,拥有强大的功能,但适用于Windows系统,那么Ubuntu系统该使用哪种编辑器呢?Vim就是Linux下很好的编辑器,下面小编就给大家介绍下如何在Ubuntu上安装vim插件。
source insight是windows下的优秀编辑器,适合阅读管理代码,主要有以下功能:
查找函数,变量或者宏的定义。
查找函数,变量或者宏的引用位置。
查找函数被调用的位置
查找某个符号在工程内的所有匹配
由于unix哲学主张一个工具只做好一件事情,所以linux下并没有这种集多样功能于一体的软件。vim是非常优秀的编辑器,本文介绍如何通过安装插件将vim武装成和source insight一样甚至更强大的工具。
我的环境是ubuntu12.04 LTS+vim version 7.3
1. ctags
ctags插件用来查找函数,变量或者宏的定义,ubuntu下可以非常方便的安装,
sudo apt-get install exuberant-ctag
在源文件目录下执行命令
ctags -R
会生成一个tags文件,里面包含了所有源文件的符号信息。在vim中,快捷键ctrl+]会跳到当前函数的定义处。为了方便生产tags,设置快捷键F5生成tag,将下面命令加入到~/.vimrc
nnoremap 《F5》 :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q 。《CR》
nnoremap 表示vim普通模式的键映射,
--c++-kinds=+p : 为标签添加函数原型(prototype)信息
--fields=+iaS : 为标签添加继承信息(inheritance),访问控制(access)信息,函数特征(function Signature,如参数表或原型等)
--extra=+q : 为类成员标签添加类标识
如果项目有多层文件结构,一般只在根目录生成一个tag文件,那么子目录访问不到tag文件,在子目录中直接打开源文件将找不到函数的tag,一个方便的做法是在.vimrc中将tag加到tags的查找路径中,每个项目一项。
“project1”
set tags+=/project1/tags
ctags的快捷键:
ctrl+] 切换到定义处
g+ctrl+] 如果多处匹配,列出匹配tag列表供选择
count+ctrl+t 后退count个tag
:count+tag 前进count个tag
:ts 列出匹配tag列表,存在多个匹配时
:tn 跳到下一处匹配tag
:tp 跳到上一处匹配tag
:tf 跳到地一个匹配tag
:tl 跳到最后一个匹配tag
:set tags? 查看tags文件路径
2.cscope
Ctags只能找到符号定义的地方,如果要像sourceinsight一样,具备查找类似函数调用查找,符号引用查找等高级功能,就要借助于cscope了。Cscope是类似于ctags的工具,不过它的功能比ctags强大多了。
在当前源文件目录下执行
cscope–Rbq
其中
-R:递归处理子层目录
-b:生成数据库后自动退出
-q:生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
vim打开源文件后,增加cscope数据库到当前环境中
:csadd cscope.out
显示全部