ctags+cscope替换sourceinsight
背景
windows环境开发+linux交叉编译的开发模式,代码阅读和编写都用的source-insight。 除了检索,跳转,工程构建等方面,sourceinsight自带了一些宏语言,可以轻松实现快捷键的文件头,函数头的插入,固定代码的插入, 工作中,sourceinsight已经可以满足要求了。
但是,出于以下两点的考虑,还是决定要熟练下vim下的使用:
linux环境下开发居多,后期可能要完全linux下开发,vim+插件的模式更为通用,一旦掌握,可以自己根据实际情况配置调整,不用总是折腾IDE;
效率方面有优势,实际观察同事使用,上手以后,各种操作可以高效完成,深度自定义;
ctags+cscope部署
介绍
ctags用来生成标签,用于符号的定位和查找 cscope提供交互式查询的功能,支持检索调用函数,被调用函数,头文件包含等等操作
安装
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
ctags+cscope替换sourceinsight的更多相关文章
- Sublime Text + CTags + Cscope (部分替代Source Insight)
CTags & cscope 下载: CTags+Cscope --- 我的百度云盘下载http://pan.baidu.com/s/1gfyPnuN ctags58.zip --- src ...
- Linux 核心阅读工具vim+ctags+cscope+taglist
今天.介绍vim+ctags+cscope+taglist的内核阅读配置. 当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个样例).我们先来看看实现的界面是怎么样的: 我们 ...
- sublime text2+Ctags+Cscope替代Source Insight
说明:以Windows系统下查看C++代码为例.因为Source Insight(以下简称SI)是收费软件,且界面丑陋,所以考虑其替代方案,发现Sublime Text3(以下简称ST3) + Cta ...
- VIM+ctags+cscope
VIM+ctags+cscope用法: http://blog.csdn.net/hnllei/article/details/7407124 http://blog.csdn.net/luckywa ...
- vim与ctags/cscope的完美结合
1. 安装vim/ctags/cscope ctag 2. 在源码根目录下执行 sudo ctags -R . 会生成tags文件,里面包含着整个源码目录下的符号信息. 3. 直接到达某个符号(比 ...
- vim牛逼的code工具: ctags+ cscope
自己总结 在我的工作目录里的.vimrc中做了这样的配置: set tags=tags; set autochdir 在项目根目录里利用"sudo ctags -R *", ...
- 【转】使用 vim + ctags + cscope + taglist 阅读源码
原文网址:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找 ...
- 【ctags/cscope/project安装使用】给神编辑器vim添加新的翅膀
本文地址 分享提纲: 1.安装 2.使用cscope 3.使用project 1.安装 1.1)linux(yum下安装) yum -y install cscope 1.2)linux(unbunt ...
- Vim+Ctags+Cscope安装
对比了下,感觉还是Vim比较专业. 一:使用说明: ‘/’查找忽略大小写,比如需要查找“book”,当输入/b的时候会自动找到第一个以"b"开头的单词 实现C程序的缩减 查询中自由 ...
随机推荐
- 问题 B: 投简历
题目描述 小华历经12寒窗苦读,又经历4年大学磨砺,终于毕业了,随着毕业季的到来,找工作也日益紧张起来.由于要面试不同的公司,因此小华需要准备不同的简历.当然最基本的信息是必不可少的,基本信息:姓名. ...
- C++STL之set集合容器
set集合容器 set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构, 在 插入元素时, 它会自动调整二叉树的排列, 把该元素放到适当的位置, 以确保每个子树根节点的键 ...
- Spring boot 项目导出可执行jar
配置文件中添加插件 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>s ...
- Bootstarp学习教程(7) 表单
基本案例:“form-control”修饰的<input>.<textarea>和<select>元素都将被默认设置为width: 100%;表单控件包裹在&quo ...
- 14、SpringBoot------定制错误返回内容json格式
开发工具:STS 前言: 在前后端分离的项目中,当前端向后端请求资源失败时,想知道具体的错误原因,给用户予以提示. 但是,在springboot中返回内容是固定的.并不适合我们前端进行分析. 所以,就 ...
- 1.Spring Cloud初相识--------简单项目搭建
开发工具:STS 代码下载链接:GitHub管理项目 前言: Springcloud 算是当前比较火的技术,一套微服务架构的技术. 我个人对微服务的理解为: 服务可以代表service,微服务就是小的 ...
- udp重发java实现
最近在处理框架通讯方面的问题,通过积累的开发经验,其实在很多情况(尤其是实时大数据量),udp是占有很多优势的:不需要连接,只管发送,理论上要快很多; 另外在穿墙上占有很大优势: 但是最大的一个问题就 ...
- Laravel Nginx 除 `/` 外所有路由 404
解决方法 在nginx配置添加以下设置: location / { try_files $uri $uri/ /index.php?$query_string; } 详见Laravel官方文档:htt ...
- 10.2 DOM 操作技术【JavaScript高级程序设计第三版】
很多时候,DOM 操作都比较简明,因此用JavaScript 生成那些通常原本是用HTML 代码生成的内容并不麻烦.不过,也有一些时候,操作DOM 并不像表面上看起来那么简单.由于浏览器中充斥着隐藏的 ...
- Delphi中DLL的创建和使用(转)
Delphi中DLL的创建和使用 1.DLL简介: 2.调用DLL: 3.创建DLL: 4.两个技巧: 5.初始化: 6.例外处理. 1.DLL简介 ...