Ctags是一个用来为源文件中的标识符(如变量、函数、类成员、宏定义等)创建索引文件的程序。这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。

Tags文件中包括这些对象的列表:

1、用#define定义的宏

2、枚举型变量的值

3、函数的定义、原型和声明

4、名字空间(namespace)

5、类型定义(typedefs)

6、变量(包括定义和声明)

7、类(class)、结构(struct)、枚举类型(enum)和联合(union)

8、类、结构和联合中成员变量或函数

使用说明:

1、安装:sudoapt-get install ctags

2、移到相应目录:cd/usr/include

3、生成索引文件:sudoctags -R

4、打开要查找的变量名或函数名:vi-t tag  (请把tag替换为您欲查找的变量或函数名)例如:vi –t size_t

5、使用ctrl+]跟进,使用ctrl+t后退

跳转快捷键:

ctrl-] :跳转至光标所在对象定义之处

ctrl-t :返回跳转前位置

[n]ctrl-t :[n]为数字,向回跳转n次;等价于重复n次ctrl-t操作

命令解释:

“$ctags –R *”:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。

定位这些对象的方法:

“$vi –t tag” :在运行vim的时候加上“-t”参数,例如:[/usr/src]$vim -t main

这个命令将打开定义“main”(变量或函数或其它)的文件,并把光标定位到这一行。

最方便的方法是把光标移到变量名或函数名上,然后按下“Ctrl+]”,这样就能直接跳到这个变量或函数定义的源文件中,并把光标定位到这一行。用“Ctrl+t”可以退回原来的地方。即使用户使用了N次“Ctrl+]”查找了N个变量,按N次“Ctrl+t”也能回到最初打开的文件,它会按原路返回。

设置索引文件的位置:

Vim在运行过程中需要知道tag的索引文件位置,如果不指定的话,Vim会在当前目录下寻找名为tags的文件作为tag索引文件。

在.vimrc添加:settags=/home/lfy/XX/XX/tags这里一定要用绝对路径。

vim 中Ctags的安装和使用的更多相关文章

  1. vim插件ctags的安装和使用

    vim插件ctags的安装和使用 2013-11-19 20:47 17064人阅读 评论(0) 收藏 举报  分类: 开发工具(3)  linux编程(9)  c/c++编程(11)  版权声明:本 ...

  2. vim中ctags应用

    ctags(Generate tag files for source code)是vim下方便代码阅读的工具.尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM.并且VIM中已经默认安装 ...

  3. vim 中Taglist的安装和使用

    将vim 改造成功能强大的IDE系列之二 『插件介绍』 Taglist是vim的一个插件,提供源代码符号的结构化视图. 效果图:(直接使用了别人的图片.在我机器上也差不多-) 『下载和安装』 1)从h ...

  4. vim插件ctags的安装和使用【转】

    本文转载自:http://blog.csdn.net/g_brightboy/article/details/16830395 [ctags功能]: 为源码的变量/对象.结构体/类.函数/接口.宏等产 ...

  5. Vim中 ctags 跳转直接跳到第一个匹配行的问题

    意图 用ctags搜索代码时, 用 ctrl + ] 后,只有一个匹配项直接跳转,有多个则列出所有匹配项选择跳转 问题 在 vim 中使用 ctags 是一个很令人舒服的事情,但有时一些默认的配置和不 ...

  6. vim插件ctags的安装与使用

    LINUX系统下看程序或者编程序时,看到一个函数经常需要知道该函数的定义,这时ctags就派上用场了,其安装和使用方法如下: 安装方法: sudo apt-get install ctags (ubu ...

  7. vim 中 ctags的应用

    为了方便查询代码段中代码的最终的定义 在linux的vim便以其中可以使用ctags 使用步骤: 1. 安装 ctags :   sudo apt-get install ctags     2. 生 ...

  8. Vim中YouCompleteMe插件安装

    背景 YouCompleteMe需要使用GCC进行编译,然而Centos 6.7默认的GCC版本太低,所以需要使用devtools-2,用来安装多个版本GCC手动编译安装GCC的坑简直不要太多(类似于 ...

  9. 使用VIM插件ctags来阅读C代码

    说明 Ctags是vim下方便代码阅读的工具.尽管ctags也可以支持其它编辑器,但是它正式支持的只有vim.并且vim中已经默认安装ctags,它可以帮助程序员很容易地浏览源代码:ctags最先是用 ...

随机推荐

  1. 【KMP】Number Sequence

    KMP算法 KMP的基处题目,数字数组的KMP算法应用. 主要是next[]数组的构造,next[]存储的是字符的当前字串,与子串前字符匹配的字符数. 移动位数 = 已匹配的字符数 - 对应的部分匹配 ...

  2. JS-Date日期内置对象

    1.基本用法 <script> var date = new Date(); document.write(date+"<br/>");//获取具体时间 d ...

  3. linux ubuntu 浏览器 字 字体 虚 解决办法

    在刚装好的ubuntu上什么都好,只是浏览器字体很虚,就连百度都虚 解决办法很简单 安装雅黑字体 修改font conf sudo vi /etc/fonts/conf.avail/69-langua ...

  4. TTTAttributedLabel使用介绍(转)

    TTTAttributedLabel 库地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel 可以实现电话  地址  链接自动查找显示 ...

  5. 单源最短路径(dijkstra算法)php实现

    做一个医学项目,当中在病例评分时会用到单源最短路径的算法.单源最短路径的dijkstra算法的思路例如以下: 如果存在一条从i到j的最短路径(Vi.....Vk,Vj),Vk是Vj前面的一顶点.那么( ...

  6. 《Java虚拟机原理图解》1.4 class文件里的字段表集合--field字段在class文件里是如何组织的

    0.前言 了解JVM虚拟机原理是每个Java程序猿修炼的必经之路.可是因为JVM虚拟机中有非常多的东西讲述的比較宽泛.在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描写 ...

  7. Mapreduce运行过程分析(基于Hadoop2.4)——(一)

    1 概述 该瞅瞅MapReduce的内部执行原理了,曾经仅仅知道个皮毛,再不搞搞,不然怎么死的都不晓得.下文会以2.4版本号中的WordCount这个经典样例作为分析的切入点.一步步来看里面究竟是个什 ...

  8. openwrt上网配置的一些理解(四)

    这次要解决的问题是3g上网和wan口上往可以随意切换,当然能够叠加也是好事,不过这不是我关心的.下面还是修改3个文件network,firewall,multiwan.首先在network中加入界面配 ...

  9. Python发一个GET请求

    # -*- coding: utf-8 -*- try: import httplib2 except ImportError: print('错误:') print(' httplib2这个库没有找 ...

  10. Gcc简介与常用命令

    一.对于GUN编译器来说,程序的编译要经历预处理.编译.汇编.连接四个阶段,如下图所示: 在预处理阶段,输入的是C语言的源文件,通常为*.c.它们通常带有.h之类头文件的包含文件.这个阶段主要处理源文 ...