ctags - Makes a tags file for source file objects.
ctags [-aBdFtuvw] [-f tags_file] pathname...
ctags -x pathname...
Interfaces documented on this reference page conform to industry standards as follows:
ctags: SVID 3, XPG4, XPG4-UNIX
Refer to the
reference page for more information
about industry standards and associated tags.
The following options conform to both the X/Open and SVID 3 standards: Adds items to the tags file. This option can be very slow for large tags files. Creates a tags file with the name specified by tags_file. Causes ctags to display a list of object names as well as the line number and file name on which each is defined and the text of that line. This provides a simple index, which can be printed out as an off line readable function index. If you specify this flag, ctags does not build a tags file, but writes to standard output.
The following are additional DIGITAL and SVID 3 options:
[SVID 3] Uses backward searching pattern (?...?).
[Compaq] Creates tags for
that do not take arguments.
directives that take
arguments are tagged automatically. (The ``#''
and ``define'' may be separated by a space or
[SVID 3] Uses forward searching pattern (/.../) (default).
[SVID 3] Creates tags for type definitions (typedef), and for
[SVID 3] Updates the specified files in tags; that is, all
references to them are deleted and the new values are added to the file. The
tags file is sorted. This flag may be slow, so it is usually faster to simply
rebuild the tags file.
[Compaq] Produces an index of the form expected by
on the standard output. This listing contains the function
name, file name, and page number (assuming 64-line pages). Because the output
will be sorted according to the current collating sequence as defined by the
value of the
variable, it may be desirable to run the output through
-f. Sample use:
ctags -v files | sort -f > index
vgrind -x index
[SVID 3] Suppresses warning diagnostics.
The ctags command makes a tags file for ex and vi editors from the specified C, Pascal, FORTRAN, yacc, lex, and LISP source files. A tags file gives the locations of specified objects (in this case functions and type definitions) in a group of files.
Each line of the tags file contains the object name, the file in which it is defined, and an address specification for the object definition. Functions are searched with a pattern and type definitions are searched with a line number. Specifiers are given in separate fields on the line, separated by spaces or tabs. Using the tags file, ex and vi can quickly find these object definitions.
The following pathname operands are supported in compliance with X/Open and SVID 3 standards: Files with base names ending with the .c suffix are treated as C language source code. Files with base names ending with the .h suffix are treated as C language source code. Files with base names ending with the .f suffix are treated as FORTRAN-language source code.
The following are additional SVID 3 and DIGITAL pathname operands: Files with base names ending with the .y suffix are treated as yacc source files. [Compaq] Files with base names ending in .l are assumed to be LISP files if their first nonspace character is ; (semicolon), ( (open parenthesis), or [ (open bracket). Otherwise, the files ending in .l are assumed to be lex files.
[SVID 3] Other files are first examined to see if they contain any Pascal or FORTRAN routine definitions; if not, they are processed again for C definitions.
is treated specially in C programs.
The tag formed is created by prefixing
to the file name,
removing a trailing
(if any), and removing the leading
path name components. This makes the use of
in directories with more than one program.
[SVID 3] Recognition of functions, subroutines, and procedures for FORTRAN and Pascal does not deal with block structure. Therefore, you cannot have two Pascal procedures in different blocks with the same name.
command does not know about
The following environment variables affect the behavior of
Provides a default value for the locale category variables
that are not set or null.
If set, overrides the values of all other locale variables.
Determines the order in which output is sorted for the
Determines the locale for the interpretation of byte sequences
as characters (single-byte or multibyte) in input parameters and files.
Determines the locale used to affect the format and contents
of diagnostic messages displayed by the command.
Determines the location of message catalogs for the processing
Default tags file. Use the
flag to specify
another file name.
Commands: ex(1), lex(1), sort(1) vi(1), yacc(1)