vim+ctags+cscope工具
最近在看一个开源的项目,突然发现在Linux上不知道有什么方便的工具来看开源代码。以前,在Windows上用VS2010集成开发环境,对于任意一个函数直接有快捷键跳转到函数定义处。可现在在Linux上束手无策。然后,开始在网上找资料,才知道linux上有ctags的神器,唉..伤心,到底是菜鸟,连这些常用的工具都不知道,尚需努力啊!这里先记录学习下...
一.插件介绍
大部分unix系统都有ctags,它能跟vim很好地合作.ctags工具主要是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器来快速定位查找定位源代码的符号(tag/symbol)。
二.用法
1.安装
sudo apt-get install ctags
也可以去官网下载源码安装.
2.使用
2.1 生成标签文件 tags
在当前目录下 $ctags -R .
-R表示recursive,递归,为当前目录及其子目录中的文件生成标签文件。.表示在当前目录.运行完当前目录会多一个文件tags,就是c标签的索引文件.
Tags文件中包含的对象的列表:
- 用#define 定义的宏
- 枚举型变量的值
- 函数的定义、原型和声明.
- 名字空间(namespace)
- 类型定义(typedefs)
- 变量(包括定义和声明)
- 类(class)、结构(struct)、枚举类型(enum)和联合(union)
- 类、结构和联合中成员变量的函数.
2.2跳转
1.用vim打开一个已经建过标签的c文件
vim -t tag:在运行vim的时候加上"-t"参数,例如: vim -t main
这个命令将打开定义"main(变量或函数或其他)的文件,并将光标定义位到这一行。
如果这个函数或变量有多处定义,在vim命令模式
": ts"命令就能列出一个列表供用户选择.
": tp"为上一个tag标记文件.
": tn"为下一个tag标记文件。
2.ctrl+] 找到光标所在位置的标签定义的地方.
3.ctrl+t 回到跳转之前的标签处.
注意:此时运行vim,必须在"tags"文件所在的目录下运行。否则,运行它会找不到"tags"文件,而需要在vim中用":set tags="命令设定"tags文件的路径.对于一个比较大的项目,我们可能在任何一个目录下打开vim,在每个目录下生成tags文件不是一个好的方法,我们可以在.vimrc中增加一行:
set tags=tags;/
这是告诉vim在当前目录找不到tags文件时请到上层目录查找.
vim+ctags+cscope工具的更多相关文章
- Linux 核心阅读工具vim+ctags+cscope+taglist
今天.介绍vim+ctags+cscope+taglist的内核阅读配置. 当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个样例).我们先来看看实现的界面是怎么样的: 我们 ...
- VIM+ctags+cscope
VIM+ctags+cscope用法: http://blog.csdn.net/hnllei/article/details/7407124 http://blog.csdn.net/luckywa ...
- 【转】使用 vim + ctags + cscope + taglist 阅读源码
原文网址:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找 ...
- Vim+Ctags+Cscope安装
对比了下,感觉还是Vim比较专业. 一:使用说明: ‘/’查找忽略大小写,比如需要查找“book”,当输入/b的时候会自动找到第一个以"b"开头的单词 实现C程序的缩减 查询中自由 ...
- 使用 vim + ctags + cscope + taglist 阅读源码
转自:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找到合 ...
- VIM+ctags+cscope用法
使用vim + cscope/ctags,就能够实现Source Insight的功能,可以很方便地查看分析源代码. 关键词: vim, cscope, ctags, tags 1. 查看vi ...
- 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 + taglist配置和使用
vim +ctags + taglist ,ctags+cscope 安装配置和使用 内容:VIM下ctags和taglist的安装配置方法:一键安装 ctags和cscope的方法 :vim语法高亮 ...
随机推荐
- 不能将值 NULL 插入列 'ID',表 'EupStoreDemoDB.dbo.OrderDiary';列不允许有 Null 值。INSERT 失败。
MVC,使用EF构建实体.将数据存入数据库,执行到_db.SaveChange()时,会报如下错误:
- iOS开发——C篇&函数解析
关于函数,作为一个开发者事必须掌握的知识不管你在那一个领域,所以今天我就来说一说函数. 一:函数的介绍 关于函数,其实笔者在前面都已经演示不少了,其中用的最多的就是main函数,虽然直接说函数可能不太 ...
- MFC的GUI窗口使用Console输出函数printf
在GUI程序中使用printf函数: #include <io.h> #include <fcntl.h> void InitConsole() { ; FILE* fp; A ...
- json转换为键值对辅助类
/// <summary> /// json转换为键值对辅助类 /// </summary> public class JsonParser { private static ...
- C++ Primer笔记(一):字符串、向量和数组
3.1 命名空间 using namespace::name; using namespace::std using std::cin -- 头文件不应该包含using 3.2 类型string ge ...
- Codeforces 235E Number Challenge
http://codeforces.com/contest/235/problem/E 远距离orz......rng_58 证明可以见这里(可能要FQ才能看到) 还是copy一下证明吧: 记 $$f ...
- bzoj2741【FOTILE模拟赛】L
http://www.lydsy.com/JudgeOnline/problem.php?id=2741 分块或可持久化trie 可以先看看这个:高斯消元解XOR方程组 分块做法: 我们先求出前i个数 ...
- bzoj4096 [Usaco2013 dec]Milk Scheduling
Description Farmer John has N cows that need to be milked (1 <= N <= 10,000), each of which ta ...
- 基于HTML5 Canvas的线性区域图表教程
之前我们看到过很多用jQuery实现的网页图表,有些还是比较实用的.今天我们来介绍一款基于HTML5 Canvas的线性区域图表应用,这个图表应用允许你使用多组数据来同时展示,并且将数据结果以线性图的 ...
- 在 SQL Server 2012 附加 Adventure Works 範例資料庫
原文地址:http://technet.microsoft.com/zh-tw/library/eb1f9417-4cca-4575-a725-187bcd60c7e7 附加数据库时报错 错误5123 ...