ctags使用方法 ctags的使用方法

2023-05-16

ctags看代码时,检索函数及变量使用的文件是tags文件,有时我们会定制检索的文件范围,这时候就可以通过ctags命令的一些参数来控制tags文件的内容

 

1:递归检索当前目录以下所有默认要检索的文件

ctags -R

2:递归检索当前目录以下所有默认要检索的文件,且检索被#if 0包含的内容

ctags -R --if0=yes

3:递归检索当前目录以下所有c c++  java类型的文件,如c++类型的文件可以通过ctags --list-maps=c++得到

ctags --languages=c,c++,java -R

4:递归检索指定目录(含文件)下的c c++  java类型的文件

ctags --languages=c,c++,java --exclude=kerne* --exclude=lk* -R //排除kerne*及lk*表示的文件及文件夹

ctags --languages=c,c++,java kerne* lk* -R //只检索kerne*及lk*表示的文件及文件夹


备注说明:

ctags中的几个概念

1:ctags中支持的languages ,规定支持了很多种语言,并且将每种语言有若干种特定的后缀表示的文件,

如c语言,凡是*.c后缀的都是c语言

如 C++      *.c++ *.cc *.cp *.cpp *.cxx *.h *.h++*.hh *.hp *.hpp *.hxx *.C *.H

2:kinds 每种语言都支持检索若干种类型的字符(串),比如c语言支持检索变量,函数

C
    c  classes
    d  macro definitions
    e  enumerators (values inside an enumeration)
    f  function definitions
    g  enumeration names
    l  local variables [off]
    m  class, struct, and union members
    n  namespaces
    p  function prototypes [off]
    s  structure names
    t  typedefs
    u  union names
    v  variable definitions
    x  external and forward variable declarations [off]



ctags详细参数如下

ctags --help
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009Darren Hiebert
  Compiled: Oct  7 2014, 13:52:03
  Addresses: <dhiebert@users.sourceforge.net>,http://ctags.sourceforge.net
  Optional compiled features: +wildcards, +regex


Usage: ctags [options] [file(s)]


  -a   Append the tags to an existing tag file.
  -B   Use backward searching patterns (?...?).
  -e   Output tag file for use with Emacs.
  -f <name>
       Write tags to specified file.Value of "-" writes tags to stdout
       ["tags"; or"TAGS" when -e supplied].

//生成的tags以name命名


  -F   Use forward searching patterns (/.../)(default).
  -h <list>
       Specify list of file extensions tobe treated as include files.
       [".h.H.hh.hpp.hxx.h++"].

//将list文件作为包含文件  ctags –h .h++ -R


  -I <list|@file>
       A list of tokens to be speciallyhandled is read from either the
       command line or the specified file.
  -L <file>
       A list of source file names areread from the specified file.
       If specified as "-", thenstandard input is read.
  -n   Equivalent to --excmd=number.
  -N   Equivalent to --excmd=pattern.
  -o   Alternative for -f.
  -R   Equivalent to --recurse.
  -u   Equivalent to --sort=no.
  -V   Equivalent to --verbose.
  -x   Print a tabular cross reference file tostandard output.
  --append=[yes|no]
       Should tags should be appended toexisting tag file [no]?

//是否将tags追加到存在的tags文件中

//如ctags --languages=c++ -R  //tags中只有C++,h文件的索引

//ctags --languages=c -R --append=yes //tags中有C++,h和C文件的索引


  --etags-include=file
      Include reference to 'file' inEmacs-style tag file (requires -e).


 --exclude=pattern
      Exclude files and directories matching'pattern'.

//将符合模式'pattern'的文件或目录排除在ctags生成检索文件之列

//ctags--languages=c,c++ -R –exclude=*.cpp//检索文件为c,c++语言,且排除*.cpp表示的文件及文件夹

//ctags--languages=c,c++ -R –exclude=kerne* //检索文件为c,c++语言,且排除kerne*表示的文件及文件夹


  --excmd=number|pattern|mix
       Uses the specified type of EXcommand to locate tags [mix].
  --extra=[+|-]flags
      Include extra tag entries for selectedinformation (flags: "fq").
  --fields=[+|-]flags
      Include selected extension fields(flags: "afmikKlnsStz") [fks].
  --file-scope=[yes|no]
       Should tags scoped only for asingle file (e.g. "static" tags
       be included in the output [yes]?
  --filter=[yes|no]
       Behave as a filter, reading filenames from standard input and
       writing tags to standard output[no].
  --filter-terminator=string
       Specify string to print to stdoutfollowing the tags for each file
       parsed when --filter is enabled.
  --format=level
       Force output of specified tag fileformat [2].
  --help
       Print this option summary.
  --if0=[yes|no]
       Should C code within #if 0conditional branches be parsed [no]?

//检索if 0包含的内容


  --<LANG>-kinds=[+|-]kinds
       Enable/disable tag kinds forlanguage <LANG>.
  --langdef=name
       Define a new language to be parsedwith regular expressions.
  --langmap=map(s)
       Override default mapping oflanguage to source file extension.
  --language-force=language
       Force all files to be interpretedusing specified language.


  --languages=[+|-]list
       Restrict files scanned for tags tothose mapped to langauges
       specified in the comma-separated'list'. The list can contain any
       built-in or user-defined language[all].

//限制检索的语言列表

//ctags--languages=-c,c++ -R//不检索c c++ h语言

//ctags--languages=c,c++ -R //只检索c c++ h语言


  --license
       Print details of software license.
  --line-directives=[yes|no]
       Should #line directives beprocessed [no]?
  --links=[yes|no]
       Indicate whether symbolic linksshould be followed [yes].
  --list-kinds=[language|all]
       Output a list of all tag kinds forspecified language or all.

//列出所有能检索到的内容


  --list-languages
       Output list of supported languages.

//支持的检索语言


  --list-maps=[language|all]
       Output list of language mappings.

//列出所有语言对应的文件后缀,如 C++      *.c++ *.cc *.cp *.cpp *.cxx *.h *.h++*.hh *.hp *.hpp *.hxx *.C *.H

//表示这些后缀的文件都是c++语言的文件,ctags --languages=c++ -R 都回检索这些后缀的文件


--options=file
       Specify file from which commandline options should be read.
  --recurse=[yes|no]
       Recurse into directories suppliedon command line [no].
  --regex-<LANG>=/line_pattern/name_pattern/[flags]
       Define regular expression forlocating tags in specific language.
  --sort=[yes|no|foldcase]
       Should tags be sorted (optionallyignoring case) [yes]?.

//对检索生成的文件内容分类


  --tag-relative=[yes|no]
       Should paths be relative tolocation of tag file [no; yes when -e]?
  --totals=[yes|no]
       Print statistics about source andtag files [no].
  --verbose=[yes|no]
       Enable verbose messages describingactions on each source file.

//输出检索记录


  --version
       Print version identifier tostandard output.

ctags详细参数如下
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ctags使用方法 ctags的使用方法 的相关文章

  • C++枚举类型enum使用方法(附带可用代码+通俗易懂)

    1 说明 枚举用来表示某类事情的结果 xff1b 例1 xff1a 下棋比赛的三种结果 xff0c 赢 xff0c 和 xff0c 输 xff1b 这里是描述比赛的结果 例2 xff1a 一周7天中的俩种结果 xff0c 工作日和非工作日
  • linux ssh上传下载文件命令SCP使用方法

    在linux环境里 xff0c 我们从服务器上下载或者从本地上传文件到服务器上可以通过SCP命令 来实现 SCP即Security Copy xff0c 是基于SSH登录实现的远程文件拷贝命令 命令参数 xff1a r 递归复制整个文件夹
  • auto_prepend_file与auto_append_file使用方法

    auto prepend file与auto append file使用方法 如果需要将文件require到所有页面的顶部与底部 第一种方法 xff1a 在所有页面的顶部与底部都加入require语句 例如 xff1a require 39
  • CMake使用方法

    用MinGW和CMake搭建便捷的C C 43 43 开发环境 xff08 二 xff09 七 CMake练习 准备工作 xff1a 在E盘新建一个文件夹cmakeproj xff0c 作为工程目录 xff0c 在cmakeproj文件夹中
  • python中类和函数变量的 (作用域大小、使用方法)

    usr bin python coding UTF 8 class Employee 39 所有员工的基类 39 TotalCount 61 0 name 61 34 张三 34 def init self A1 A2 初始化文件名Empl
  • MFC CStringArray使用方法

    xfeff xfeff MFC CStringArray使用方法 2014 07 04 10 03 34 转载 标签 xff1a vc 分类 xff1a Visual C CArray arrroads CStringArray road
  • Git clone的使用方法

    使用Git clone项目 1 首先我们要确保我们的电脑上已经安装Git 桌面点击右键出现如下图所示的两个Git即Git已经安装 2 在电脑的任意一个磁盘里新建一个本地文件夹作为clone项目的保存文件夹 3 在码云上面打开我们要clone
  • tracealyzer的使用方法

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • import pandas 使用方法

    对于数据科学家 xff0c 无论是数据分析还是数据挖掘来说 xff0c Pandas是一个非常重要的Python包 它不仅提供了很多方法 xff0c 使得数据处理非常简单 xff0c 同时在数据处理速度上也做了很多优化 xff0c 使得和P
  • 485是什么以及特点、协议、使用方法

    1 485是什么 xff1f 485 xff0c 通信接口的远程称重数据采集方法 xff0c 在要求通信距离为几十米到上千米时 xff0c 广泛采用RS 485串行总线标准 RS 485采用平衡发送和差分接收 xff0c 因此具有抑制共模干
  • git-cola 使用方法

    目录 git cola 的用法实践记录 git cola 是 git的图形界面管理工具 因此 xff0c 在安装 git cola之前 xff0c 一般首先需要安装 git 官网地址 xff1a http git cola github i
  • jtextpane的使用方法

    jtextpane是java swing中的一个组件 xff0c 是一个可以编辑和显示html xff0c rtf和普通文本的富文本组件 xff0c jtextpane是根据使用EditorKit来显示内容的 xff0c 目前jtextpa
  • STM32中USART的使用方法

    USART作为一种标准接口在应用中十分常见 本文着重分析其作为 UART的配置和应用方法 1 STM32固件库使用外围设备的主要思路 在 STM32中 xff0c 外围设备的配置思路比较固定 首先是使能相关的时钟 xff0c 一方面是设备本
  • wait_event_interruptible_locked的使用方法

    wait event interruptible locked interface New wait event interruptible exclusive locked irq macros added They work just
  • 电磁流量计测流工作原理及优缺点

    电磁流量计包含变送器和传感器 它们共同测量流量 电磁流量计的传感器采用直通连接 可测量流体在流经管道时产生的感应电压 变送器测量传感器产生的电压 将该电压转换成流量 然后再将流量测量值传送到控制系统 工作原理 电磁流量计是根据法拉第电磁感应
  • 窨井液位计(下水道液位计)的分类

    窨井液位计又称下水道液位计 是应用在市政管网监测集水井 雨水井 污水井 观察井等测量水位变化的仪表 根据原理不同可分为 压力式 雷达式和超声波式3种 通过传感器测量液位数值 利用无线远传的方式上传到数据平台 实现对井下水位实时监测的目的 压
  • M35J型多普勒流量计使用说明书

    一 产品原理 产品有三个功能 测平均流速 测水深 测水温 并可显示断面流量 其中水温测量使用温度探头 温度探头不与水接触 紧贴仪器外包装材料顶部 需要置于水底一定时间后才能反映实际水温 测水温的目的是校正超声波在水中的速度 并修正压力传感器
  • 知道为什么 ctags 不会在 Cygwin 上递归吗?

    每次运行时我都会收到 正在跳过 XXX 它不是常规文件 ctags R XXX 由于某种原因 Cygwin 上的 ctags 不是递归目录 当然 我一定是做了一些愚蠢的事情 每当我尝试事实上的标准时ctags R在我的项目根目录中 它抱怨我
  • R 的丰富 Ctags

    是否有任何使用记录ctags http ctags sourceforge net 与 R 这有用吗 实施起来会不会很困难 具体来说 我刚刚开始使用 Vim 如果能够在一个文件中编写 R 函数 在另一个文件 例如 Rnw 文件 测试文件或其
  • cscope 或 ctags 为什么选择其中之一? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我主要使用 vim gvim 作为编辑器 并且正在考虑结合使用lxr Linux 交叉参考 http

随机推荐

  • 问vimscript转lua原因

    开始 xff1a 原以为是脚本语言翻译过去 xff0c 就是换lua了 xff0c 结果是错误的 问题 xff1a 转换的意义是什么 答案 xff1a 所有插件全部换lua写的提升性能 xff0c 部分插件使用原有的 官方资源 xff1a
  • iphone摄像头代替matebook 14D

    第一步下载软件 第二步 手机与电脑 连接同一个wifi 第三步 查看iphoneip 电脑软件录入ip
  • android安全框架工具drozer使用指南

    不贴图 xff0c 太麻烦 一 Drozer 工作环境搭建 下载drozer installer 2 3 4 zip 2 xff0c 解压缩 3 xff0c winddows上安装setup exe 手机安全agent apk 4 手机打开
  • FTP上传中文设置

    package com wq test import java io File import java io FileInputStream import org apache commons net ftp FTPClient impor
  • FTP上传中文文件到中文路径

    package com wq test import java io File import java io FileInputStream import org apache commons net ftp FTPClient impor
  • leveldb之log文件

    leveldb之log文件 1 log文件在LevelDb中的主要作用是系统故障恢复时 xff0c 能够保证不会丢失数据 因为在将记录写入内存的Memtable之前 xff0c 会先写入Log文件 xff0c 这样即使系统发生故障 xff0
  • springboot @Slf4j 只显示Error 日志,不显示INFO日志 和DEBUG 日志

    问题 xff1a springboot 使用 64 Slf4j 注解的 log debug log info log error 只显示ERROR日志 xff0c 不显示DEBUG和INFO日志 原因 xff1a application p
  • 盘点 | 2023年最值得学的编程语言TOP 5,Python再度夺冠!

    前言 在技术的推动发展中 xff0c 编程语言的作用功不可 目前在技术领域约有600种语言 xff0c 人们对编程语言的认识和掌握情况每年都在变化 与此同时 xff0c 新兴的编程语言往往具有引人注目的元素和功能 2023年热门的编程语言有
  • python socke ftp功能实现 shell命令,上传,下载

    python socke ftp功能实现 shell命令 xff0c 上传 xff0c 下载 网上教程多 xff0c 但是都不全 xff0c 只有下载代码 本人练习 xff0c 附加了注释 xff0c 帮助新人练习 一定要吃透socket来
  • jumpserver 修改源码实现密钥+密码

    背景 云主机登录 密钥 43 密码 xff0c jumpserver登录只能配置自动登录 xff0c 或者手动登录不能满足 修改 如果设置密码为chongzhi 就必须重新录入密码 vi opt coco coco proxy py 39行
  • uml学习过程7-顺序图

    描述强调消息时间顺序的交互图 对象 对象生命周期 消息 对象创建与销毁 动态建模 xff1a 顺序图 圆柱 xff1a 调用类 不表达逻辑判断 xff1a 例如 密码错误 xff0c 非空判断 这些用于活动图表达
  • springmvc错误跳转页面

    在做一个项目的时候 xff0c 为了界面美观及用户体验 xff0c 我们往往会设计自己的错误跳转页面 xff0c 而不是直接展示给用户一堆错误码 xff0c 为此我们需要配置自己的错误跳转页面 1 项目结构 2 web xml lt DOC
  • 下载进度条

    span class token doctype span class token punctuation lt span span class token doctype tag DOCTYPE span span class token
  • 域名绑定到github主页

    最近在通过网上的教程搭建自己的github主页 xff0c 虽然现在也是半成品 xff0c 但是其中有一些步骤以及参考的连接还是值得分享一下的 首先在godaddy上购买的 com域名 xff0c 因为看见大家都说购买国内的域名需要备案之类
  • c++面试宝典

    目录 一 多线程 二 指针 三 字符串 四 面向对象 五 基本用法 六 c 43 43 11 七 算法 c 43 43 面试必考多线程 xff0c 内存 xff08 智能指针 xff09 xff0c 常见算法 xff0c 设计模式 一 多线
  • ssh远程执行命令的方法

    设置免密登录之后 xff0c 通常ssh remote ip command 就可以方便的执行远程命令 如果遇到包含单引号或者双引号的命令 xff0c 执行不成功 xff0c 如 xff1a awk F 39 39 39 print 1 3
  • [海外上架必备][Android]Google原生代码崩溃符号生成的问题

    默认情况下 xff0c 原生代码库已从应用的发布 build 中移除 此移除操作包括移除应用所使用的所有原生库中包含的符号表及调试信息 移除原生代码库会显著缩减大小 xff1b 但是 xff0c 由于缺少信息 xff08 例如类和函数名称
  • “应版权方要求,文件无法下载”的解决方案

    应版权方要求 xff0c 文件无法下载 的解决方案 参考文章 xff1a xff08 1 xff09 应版权方要求 xff0c 文件无法下载 的解决方案 xff08 2 xff09 https www cnblogs com easyide
  • 分布式系统核心—日志

    分布式系统的核心组件 日志 有时也叫write ahead logs commit logs 或者事物 logs 通常指在应用所有的修改之前先写入日志 xff0c 一般会将重放日志 撤销日志都写进去 NoSQL数据库 KV存储 Hadoop
  • ctags使用方法 ctags的使用方法

    用 ctags 看代码时 xff0c 检索函数及变量使用的文件是 tags 文件 有时我们会定制检索的文件范围 xff0c 这时候就可以通过 ctags 命令的一些参数来控制 tags 文件的内容 1 xff1a 递归检索当前目录以下所有默