ctags+cscope替换sourceinsight

Posted doctors

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ctags+cscope替换sourceinsight相关的知识,希望对你有一定的参考价值。

背景

windows环境开发+linux交叉编译的开发模式,代码阅读和编写都用的source-insight。 除了检索,跳转,工程构建等方面,sourceinsight自带了一些宏语言,可以轻松实现快捷键的文件头,函数头的插入,固定代码的插入, 工作中,sourceinsight已经可以满足要求了。

但是,出于以下两点的考虑,还是决定要熟练下vim下的使用:

  1. linux环境下开发居多,后期可能要完全linux下开发,vim+插件的模式更为通用,一旦掌握,可以自己根据实际情况配置调整,不用总是折腾IDE;

  2. 效率方面有优势,实际观察同事使用,上手以后,各种操作可以高效完成,深度自定义;

ctags+cscope部署

介绍

ctags用来生成标签,用于符号的定位和查找 cscope提供交互式查询的功能,支持检索调用函数,被调用函数,头文件包含等等操作

安装

http://ctags.sourceforge.net/

http://cscope.sourceforge.net/

配置

.vimrc中增加一些常用操作的快捷键映射

ctags配置

"ctrl+f12生成tags文件

map <C-F12> :!ctags -R --c++-kinds=+p —fields=+iaS --extra=+q .<CR>

cscope配置

‘‘查找c代码符号

nmap <C-l>s :cs find s <C-R>=expand("<cword>")<CR><CR>

‘‘查找本定义

nmap <C-l>g :cs find g <C-R>=expand("<cword>")<CR><CR>

"查找本函数调用的函数

nmap <C-l>c :cs find c <C-R>=expand("<cword>")<CR><CR>

"查找本字符串

nmap <C-l>t :cs find t <C-R>=expand("<cword>")<CR><CR>

"查找本grep模式

nmap <C-l>e :cs find e <C-R>=expand("<cword>")<CR><CR>

"查找本文件

nmap <C-l>f :cs find f <C-R>=expand("<cfile>")<CR><CR>

"查找包含本文件的文件

nmap <C-l>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>

"查找本函数调用的函数

nmap <C-l>d :cs find d <C-R>=expand("<cword>")<CR><CR>

使用

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q生成tags文件

cscope –Rbq 生成cscope数据库

以上是关于ctags+cscope替换sourceinsight的主要内容,如果未能解决你的问题,请参考以下文章

cscope+ctags of vimrc

ruby Ruby脚本为ctags和cscope创建文件。保存文件以调用文件夹。

如何修复重复的cscope?这是一种更好的方式吗?

将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)(转)

cscope使用记录

打造VIM IDE(针对C语言开发者)