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程序的缩减 查询中自由 ...
随机推荐
- Ubuntu 18.04 一键安装深度截图工具 Deepin Screenshot
一直在寻找Linux下的截图软件,终于发现了Deepin ScreenShot,其功能齐全,界面美观,唯一的缺点需要自己配置快捷键(后面会讲). 安装 直接在Ubuntu商店搜索“深度截图”,点击“安 ...
- 20145238-荆玉茗 《Java程序设计》第8周学习总结
20145238 <Java程序设计>第8周学习总结 教材学习内容总结 第15章 通用API 15.1.1 ·java.util.logging包提供了日志功能相关类与接口,使用日志的起点 ...
- javaweb基础(39)_数据库连接池
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- string find简析
原文链接 #include <string>#include <iostream>using namespace std; void main(){ ////find函数返回类 ...
- vim实用配置
"编码set encoding=utf-8"显示行号set number"语法高亮度显示syntax on "自动缩进set autoindent"t ...
- Java中的逻辑运算符短路效应
在Java中逻辑运算符&& 和 ||,它们都存在短路效应. 对于a && b,只有当a和b同时为true时,整个表达式才为true(在java中,首先运算表达式a,如果 ...
- 03-UI控件浏览
UI控件浏览 可能用得上的UI控件 为了便于开发者打造各式各样的优秀app,UIKit框架提供了非常多功能强大又易用的UI控件 下面列举一些在开发中可能用得上的UI控件(红色表明最常用,蓝色代表一般, ...
- jquery 操作css 选择器
.addClass() 为每个匹配的元素添加指定的样式类名 .addClass(className) className 为每个匹配元素所有增加的一个或多个样式名 .addClass(function ...
- 深入浅出:promise的各种用法
https://mp.weixin.qq.com/s?__biz=MzAwNTAzMjcxNg==&mid=2651425195&idx=1&sn=eed6bea35323c7 ...
- 【模板时间】◆模板·III◆ 单调子序列
◆模板·III◆ 单调子序列 以前只知道DP用 O(n2) 的做法,现在才发现求单调子序列方法好多…… ◇ 模板简述 单调子序列包括 升序/降序/非升序/非降序 子序列.主要题型如下: ①在原串中找到 ...