最近在看一个开源的项目,突然发现在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工具的更多相关文章

  1. Linux 核心阅读工具vim+ctags+cscope+taglist

    今天.介绍vim+ctags+cscope+taglist的内核阅读配置. 当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个样例).我们先来看看实现的界面是怎么样的: 我们 ...

  2. VIM+ctags+cscope

    VIM+ctags+cscope用法: http://blog.csdn.net/hnllei/article/details/7407124 http://blog.csdn.net/luckywa ...

  3. 【转】使用 vim + ctags + cscope + taglist 阅读源码

    原文网址:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找 ...

  4. Vim+Ctags+Cscope安装

    对比了下,感觉还是Vim比较专业. 一:使用说明: ‘/’查找忽略大小写,比如需要查找“book”,当输入/b的时候会自动找到第一个以"b"开头的单词 实现C程序的缩减 查询中自由 ...

  5. 使用 vim + ctags + cscope + taglist 阅读源码

    转自:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找到合 ...

  6. VIM+ctags+cscope用法

    使用vim + cscope/ctags,就能够实现Source Insight的功能,可以很方便地查看分析源代码.   关键词: vim, cscope, ctags, tags   1. 查看vi ...

  7. vim与ctags/cscope的完美结合

    1. 安装vim/ctags/cscope ctag 2. 在源码根目录下执行 sudo ctags -R .   会生成tags文件,里面包含着整个源码目录下的符号信息. 3. 直接到达某个符号(比 ...

  8. vim牛逼的code工具: ctags+ cscope

    自己总结 在我的工作目录里的.vimrc中做了这样的配置:   set tags=tags;   set autochdir 在项目根目录里利用"sudo ctags -R *", ...

  9. vim + ctags + taglist配置和使用

    vim +ctags + taglist ,ctags+cscope 安装配置和使用 内容:VIM下ctags和taglist的安装配置方法:一键安装 ctags和cscope的方法 :vim语法高亮 ...

随机推荐

  1. IRP派遣操作

    IRPTrace工具跟踪IRP 派遣函数(Dispathc Funtion)是windows驱动中的重要概念.驱动程序的主要功能是负责处理I/O请求,其中大部分I/O请求是在派遣函数中处理的.用户模式 ...

  2. 基于.NET MVC的高性能IOC插件化架构(二)之插件加载原理

    上一篇博文简单介绍了下插件化的代码组成部分:http://www.cnblogs.com/gengzhe/p/4390932.html,源码地址:https://github.com/luohuazh ...

  3. codevs 1068 乌龟棋

    题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制 ...

  4. sae Servlet class XXXX is not a javax.servlet.Servlet

    以前都是使用myeclipse开发web工程上传sae后没有问题,但是使用javaee导出war包上传sae 无法访问 Servlet class  XXXX is not a javax.servl ...

  5. ECharts使用心得——矩阵树图

    1. 缘起 最近实验室 boss 让用矩形树图做一下研究数据的展示,囧,矩形树图是什么鬼.问了问师兄,说用 R 语言可以实现,让我去研究一下. = =,那这周不是不用干别的了. 刚好最近在研究百度出的 ...

  6. Android中的一些小知识

    android中开发常用快捷键alt+/ 自动补全ctrl+1 有问题提示生成接收的参数 ctrl+L 在按2 注释// 注释 ctrl+//**/ 多行注释 ctrl+shift+/ android ...

  7. 我为什么放弃了win7系统

    作为一个软件开发者,由于要常年维护一些老系统,所以非常看中win7对一些稍老一点软件的兼容性,可它还是让我失望了: 如果没有特殊手段,sqlserver2000是不能向导式安装成功的: 之前公司的主要 ...

  8. HDU_2033——时间加法

    Problem Description HDOJ上面已经有10来道A+B的题目了,相信这些题目曾经是大家的最爱,希望今天的这个A+B能给大家带来好运,也希望这个题目能唤起大家对ACM曾经的热爱.这个题 ...

  9. cf202-div 1-B - Apple Tree:搜索,数论,树的遍历

      http://codeforces.com/contest/348/problem/B   B. Apple Tree time limit per test 2 seconds memory l ...

  10. Misha and Changing Handles

    Description Misha hacked the Codeforces site. Then he decided to let all the users change their hand ...