ctags 基本使用方法

简介

ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有 Vim。并且 Vim 中已经默认安装了 ctags,它可以帮助程序员很容易地浏览源代码。

ctags 最先是用来生成C代码的tags文件,后来扩展成可以生成各类语言的tags, 有些语言也有专有的tags生成工具(比如java的jtags, python的 ptags)。ctags 支持的语言可以通过这个网站查看,目前共41种,基本上主流的 C/C++、Java、Python、C#、JavaScript、MATLAB、Assembler 等语言都是支持的。

安装

ubuntu (debian) 直接安装

Ubuntu系统(Debian),可以直 apt 接安装:

sudo apt-get install ctags

源码编译安装

到 ctags 官网下载源码,解压安装:

tar -xzvf ctags-5.8.tar.gz
cd ctags-5.8/
./configure
make
sudo make install

安装检验

安装完成后执行命令:

ctags --version

若正常输出类似以下的版本信息,则安装成功:

Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren HiebertCompiled: Dec 14 2021, 22:52:05Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.netOptional compiled features: +wildcards, +regex

使用

RTFM:man ctags

生成索引文件

在源码目录下执行

ctags –R .

-R 表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。. 表示当前目录,结合起来就是当前目录及所有子目录下文件。这条命令会在当前目录下产生一个 tags文件,当用户在当前目录中运行vi时,会自动载入此tags文件。Tags文件中包括这些对象的列表:

  • 用 #define 定义的宏枚举型变量的值函数的定义
  • 原型和声明名字空间(namespace)
  • 类型定义(typedefs)
  • 变量(包括定义和声明)
  • 类(class)
  • 结构体(struct)
  • 枚举类型(enum)
  • 联合体(union)

类、结构和联合中成员变量或函数 Vim 用这个 tags 文件来定位上面这些做了标记的对象。

配置

使用 sudo vim /etc/vim/vimrc 编辑vim的配置文档,在其中加入如下命令:

set tags=/home/zhouyl/linux-3.4.7/tags;后面的路径是使用 ctags -R . 后生成的tags文件所在目录,如果需要配置多个 tags,只需如下再添加即可

set tags=/home/zhouyl/rap/libpcap-1.3.0/tags;
set autochdir

注意:运行vim的时候,必须在“tags”文件所在的目录下运行。如果要在该目录的子目录下使用 ctags,可在 Vim 配置文件中再加入:

set tags=./tags;,tags

常用命令

ctags 最常用的命令:

  1. ctags –R . 上面介绍过了,不再赘述
  2. Ctrl+ ] 跳到光标所在变量的定义处
  3. Ctrl+ t 返回查找或跳转,从哪里跳过来的跳回哪里,即使用了很多次 Ctrl+],该命令也会回到最初一次的位置
  4. vi –t tag 找到名为 tag 的变量的定义处
  5. g] 列出变量的所有引用供用户选择
  6. :ts tagslist,同 g]
  7. :tp tagspreview,上一个tag标记文件
  8. :tn tagsnext),下一个tag标记文件

以上 : 是 Vim 中从正常模式切换到底行命令模式。在完成编码后,可以直接删掉tags文件。

https://baike.baidu.com/item/ctags/3470337?fr=aladdin

https://www.bilibili.com/video/BV1PL411M7bg?from=search&seid=12655157522675339145&spm_id_from=333.337.0.0

ctags 基本使用方法相关推荐

  1. sublime text2 用ctags插件实现方法定位(转)

    来源:http://www.cnblogs.com/qq78292959/p/3811467.html 我们用sublime几乎都会首先安装这个插件,这个插件是管理插件的功能,先安装它,再安装其他插件 ...

  2. linux中ctags的使用方法

    tags文件(标签文件)是由ctags程序产生的一个索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 并且比它功能强大, ...

  3. Vim+ctags+cscope+Nerdtree+Taglist入门

    介于linux下并没有什么像Source Insight这样优秀的内核源码阅读工具,只有一些模仿的都不伦不类,所以我用打造vim为一个合格的源码阅读器,看着贼爽. 可能一下子看起来那么多东西可能怕怕的 ...

  4. Windows10下用vim+ctags+cscope搭建属于自己的IDE

    工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.估计大家经常用的IDE工具如SourceInsight,Notepad++,VScode等等.SourceInsight属于收费软件,其 ...

  5. sublime python配置_sublime python环境配置

    1.安装sublime,安装版.免安装版均可 2.打开sublimeText 在菜单栏找到Tools-->编译系统-->新编译系统 在新的配置文件中输入如下配置 { "cmd&q ...

  6. sublime Text 开发工具

    简介描述 Sublime Text 是一个跨平台的编辑器,同时支持Windows.Linux.Mac OS X等操作系统.,具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等 ...

  7. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群

    作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...

  8. Java面试题大全2021版

    一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...

  9. vim ctags使用方法

    一.用好系统自带软件ctags 大部分的unix系统都有ctags软件,它能跟vim很好地合作. 用途: 生成c语言的标签文件,实现相关c文件之间的跳转. 用法: 1.生成标签文件 在当前目录下(运行 ...

最新文章

  1. Vivado中使用逻辑分析仪ILA
  2. python dll 变量
  3. ajax 获取服务器返回的XML字符串
  4. Python语言学习之字母G开头函数使用集锦:global用法之详细攻略
  5. 车已经买有近一个月了,技术也在提升中
  6. SQL查询过滤Where子句用法
  7. 计算机硬件系统都是看得见的,计算机组成硬件系统).doc
  8. python import io_Python——python3的io读写
  9. bzoj3083 遥远的国度
  10. python tree 库_Python——tree
  11. linux vim 删除 h,Linux VIM 的使用快捷键之删除, 复制, 粘贴
  12. c语言RePutDate用法,C语言 栈的使用
  13. 高级售前客户服务专员题库
  14. bat脚本重启tomcat
  15. SYN6288语音合成模块
  16. Eplan绘图软件:西门子S7-1500部件
  17. 航空公司系统是怎样炼成的
  18. SEO培训联盟排名掉的原因:宋星博客?
  19. β阶段第一周版本控制报告
  20. ipad iphone开发_如何在iPhone或iPad上恢复已删除的照片

热门文章

  1. 使用dubbo后尽量不用要@Reference可能引起冲突
  2. Zookeeper UI管理界面安装
  3. zookeeper开机自启动
  4. 第九篇:Spring Boot整合Spring Data JPA_入门试炼01
  5. 状态输出导航栏html,css3与html5实现响应式导航菜单(导航栏)效果分享
  6. linux删除磁盘后刷新,linux – 短暂的文件是否刷新到磁盘?
  7. javaee 中文帮助文档_大牛耗时三天整理的:微服务+Nginx+Kubernetes实战文档和面试题...
  8. C语言 fopen 函数 - C语言零基础入门教程
  9. C语言 assert 函数 - C语言零基础入门教程
  10. linux查看redis内存,Linux查看redis占用内存的方法