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 –Rbkq 生成cscope数据库

 

遇到的问题

“ctags添加系统调用”

Ctags负责进行生成代码标记的索引,cscope支持对c代码的查找和定位(对c++和java有一定的限制)。 用下面的命令可以将系统调用也建立索引,开发时可以直接看到系统函数的实现(.vimrc也需要做对应修改,添加systags的目录到tags变量): ctags -R -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p --c++-kinds=+p --fields=+iaS --extra=+q -f ~/.vim/systags /usr/include/

 

“catgs没有-R选项怎么办?”

自带的Ctags版本可能不对,GNUEmacs那个版本不支持-R操作,解决方法是:从“http://ctags.sourceforge.net/” 下了一份源码重装后即解决了问题,更新后的ctags版本信息如下: Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert Compiled: Jul 3 2016, 10:48:45 Addresses: , Exuberant Ctags Optional compiled features: +wildcards, +regex

 

 

转载于:https://www.cnblogs.com/doctors/p/10090858.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值