ctags是对自己认识的语言(比方说c,java等)生产索引的linux 工具。
这里只是简单的介绍一下ctags的查找功能。
要说查找,必须先说明一个选项:
−−<LANG>−kinds=[+|−]kinds
^
这里的LANG表示ctags自己支持的语言,不如说要查找c文件中的函数这个选项就
变成了--c-kinds=f
假如我要查找当前目录下c文件中的所以函数:
ctags -x --c-kinds=f *.c
下面是在我的虚拟机上运行的结果:
[root@localhost ~]# ctags --version
Exuberant Ctags 5.5.4, Copyright (C) 1996-2003 Darren Hiebert
Compiled: Jun 16 2004, 19:13:19
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
[root@localhost ~]# ctags --list-languages //ctags支持的语言
Asm
Asp
Awk
BETA
C
C++
C#
Cobol
Eiffel
Erlang
Fortran
HTML
Java
JavaScript
Lisp
Lua
Make
Pascal
Perl
PHP
Python
REXX
Ruby
Scheme
Sh
SLang
SML
SQL
Tcl
Vera
Verilog
Vim
YACC
[root@localhost ~]# ctags --list-kinds //不同语言所支持的kind
Asm
d defines
l labels
m macros
t types (structs and records)
Asp
f functions
s subroutines
v variables
Awk
f functions
BETA
f fragment definitions
p all patterns [off]
s slots (fragment uses)
v patterns (virtual or rebound)
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 variable declarations [off]
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 variable declarations [off]
C#
c classes
d macro definitions
e enumerators (values inside an enumeration)
E events
f fields
g enumeration names
i interfaces
l local variables [off]
m methods
n namespaces
p properties
s structure names
t typedefs
Cobol
d data items
f file descriptions (FD, SD, RD)
g group items
p paragraphs
P program ids
s sections
Eiffel
c classes
f features
l local entities [off]
Erlang
d macro definitions
f functions
m modules
r record definitions
Fortran
b block data
c common blocks
e entry points
f functions
i interface contents, generic names, and operators [off]
k type and structure components
l labels
L local, common block, and namelist variables [off]
m modules
n namelists
p programs
s subroutines
t derived types and structures
v program (global) and module variables
HTML
a named anchors
f JavaScript functions
Java
c classes
f fields
i interfaces
l local variables [off]
m methods
p packages
JavaScript
f functions
Lisp
f functions
Lua
f functions
Make
m macros
Pascal
f functions
p procedures
Perl
c constants
l labels
s subroutines
PHP
c classes
d constant definitions
f functions
v variables
Python
c classes
f functions
m class members
REXX
s subroutines
Ruby
c classes
f methods
F singleton methods
m mixins
Scheme
f functions
s sets
Sh
f functions
SLang
f functions
n namespaces
SML
e exception declarations
f function definitions
c functor definitions
s signature declarations
r structure declarations
t type definitions
v value bindings
SQL
c cursors
d prototypes [off]
f functions
F record fields
l local variables [off]
L block label
P packages
p procedures
r records
s subtypes
t tables
T triggers
v variables
Tcl
c classes
m methods
p procedures
Vera
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
p programs
P function prototypes [off]
t tasks
T typedefs
v variable definitions
x external variable declarations [off]
Verilog
c constants (define, parameter, specparam)
e events
f functions
m modules
n net data types
p ports
r register data types
t tasks
Vim
a autocommand groups
f function definitions
v variable definitions
YACC
l labels
[root@localhost ~]#