ctags(1)ctags(1)NAMEctags - Makes a tags file for source file objects.
SYNOPSISctags [-aBdFtuvw] [-f tags_file] pathname...
ctags-x pathname...
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
ctags: SVID 3, XCU5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
OPTIONS
The following options conform to both the XCU5.0 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 num‐
ber 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 options either conform to SVID 3 or are proprietary:
[SVID3] Uses backward searching pattern (?...?). [Tru64 UNIX] Creates
tags for #define directives that do not take arguments. #define direc‐
tives that take arguments are tagged automatically. (The “#” and
“define” may be separated by a space or tab.) [SVID3] Uses forward
searching pattern (/.../) (default). [SVID3] Creates tags for type
definitions (typedef), and for struct, union, and enum declarations.
[SVID3] 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 sim‐
ply rebuild the tags file. [Tru64 UNIX] Produces an index of the form
expected by vgrind 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 LC_COLLATE environment vari‐
able, it may be desirable to run the output through sort -f. Sample
use: ctags-v files | sort -f > index vgrind -x index [SVID3] Sup‐
presses warning diagnostics.
DESCRIPTION
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 conform with both the XCU5.0 and SVID 3
standards: Files with base names ending with the suffix are treated as
C language source code. Files with base names ending with the suffix
are treated as C language source code. Files with base names ending
with the suffix are treated as FORTRAN-language source code.
The following options either conform to SVID 3 or are proprietary:
Files with base names ending with the suffix are treated as yacc source
files. [Tru64 UNIX] Files with base names ending in are assumed to be
LISP files if their first nonspace character is ; (semicolon), ( (open
parenthesis), or [ (open bracket). Otherwise, the files ending in are
assumed to be lex files.
[SVID3] Files with base names ending in are assumed to be lex
files.
[SVID3] Other files are first examined to see if they contain any Pas‐
cal or FORTRAN routine definitions; if not, they are processed again
for C definitions.
The tag main is treated specially in C programs. The tag formed is
created by prefixing M to the file name, removing a trailing (if any),
and removing the leading path name components. This makes the use of
ctags practical in directories with more than one program.
RESTRICTIONS
[SVID3] Recognition of functions, subroutines, and procedures for FOR‐
TRAN and Pascal does not deal with block structure. Therefore, you
cannot have two Pascal procedures in different blocks with the same
name.
The ctags command does not know about ifdefs.
ENVIRONMENT VARIABLES
The following environment variables affect the behavior of ctags():
Provides a default value for the locale category variables that are not
set or null. If set, overrides the values of all other locale vari‐
ables. Determines the order in which output is sorted for the -x
option. 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 diag‐
nostic messages displayed by the command. Determines the location of
message catalogs for the processing of LC_MESSAGES.
FILES
Default tags file. Use the -f flag to specify another file name.
SEE ALSO
Commands: ex(1), lex(1), sort(1)vi(1), yacc(1)
Standards: standards(5)ctags(1)