⑴Source Insight是一款编辑器,拥有强大的功能,但适用于Windows系统,那么Ubuntu系统该使用哪种编辑器呢?Vim就是Linux下很好的编辑器,下面小编就给大家介绍下如何在Ubuntu上安装vim插件。
⑵source insight是windows下的优秀编辑器,适合阅读管理代码,主要有以下功能:
⑶查找函数,变量或者宏的定义。
⑷查找函数,变量或者宏的引用位置。
⑸查找函数被调用的位置
⑹查找某个符号在工程内的所有匹配
⑺由于unix哲学主张一个工具只做好一件事情,所以linux下并没有这种集多样功能于一体的软件。vim是非常优秀的编辑器,本文介绍如何通过安装插件将vim武装成和source insight一样甚至更强大的工具。
⑻我的环境是ubuntu. LTS+vim version .
⑼ctags插件用来查找函数,变量或者宏的定义,ubuntu下可以非常方便的安装,
⑽sudo apt-get install exuberant-ctag
⑾在源文件目录下执行命令
⑿ctags -R
⒀会生成一个tags文件,里面包含了所有源文件的符号信息。在vim中,快捷键ctrl+]会跳到当前函数的定义处。为了方便生产tags,设置快捷键F生成tag,将下面命令加入到~/.vimrc
⒁nnoremap 《F》 :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q 。《CR》
⒂nnoremap 表示vim普通模式的键映射,
⒃--c++-kinds=+p : 为标签添加函数原型(prototype信息
⒄--fields=+iaS : 为标签添加继承信息(inheritance,访问控制(aess信息,函数特征(function Signature,如参数表或原型等
⒅--extra=+q : 为类成员标签添加类标识
⒆如果项目有多层文件结构,一般只在根目录生成一个tag文件,那么子目录访问不到tag文件,在子目录中直接打开源文件将找不到函数的tag,一个方便的做法是在.vimrc中将tag加到tags的查找路径中,每个项目一项。
⒇“project”
⒈set tags+=/project/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文件路径
⒔Ctags只能找到符号定义的地方,如果要像sourceinsight一样,具备查找类似函数调用查找,符号引用查找等高级功能,就要借助于cscope了。Cscope是类似于ctags的工具,不过它的功能比ctags强大多了。
⒕在当前源文件目录下执行
⒖cscope–Rbq
⒗-R:递归处理子层目录
⒘-b:生成数据库后自动退出
⒙-q:生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
⒚vim打开源文件后,增加cscope数据库到当前环境中
⒛:csadd cscope.out