428
+ − 1 .\" Copyright (c) 1992 Free Software Foundation
+ − 2 .\" See section COPYING for conditions for redistribution
458
+ − 3 .TH etags 1 "14gen2001" "GNU Tools" "GNU Tools"
428
+ − 4 .de BP
+ − 5 .sp
+ − 6 .ti -.2i
+ − 7 \(**
+ − 8 ..
+ − 9
+ − 10 .SH NAME
+ − 11 etags, ctags \- generate tag file for Emacs, vi
+ − 12 .SH SYNOPSIS
+ − 13 .hy 0
+ − 14 .na
+ − 15 .B etags [\|\-aCDGImRVh\|] [\|\-i \fIfile\fP\|] [\|\-l \fIlanguage\fP\|]
+ − 16 .if n .br
+ − 17 .B [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
+ − 18 .br
458
+ − 19 .B [\|\-\-append\|] [\|\-\-no\-defines\|]
+ − 20 .B [\|\-\-no\-globals\|] [\|\-\-include=\fIfile\fP\|]
+ − 21 .B [\|\-\-ignore\-indentation\|] [\|\-\-language=\fIlanguage\fP\|]
+ − 22 .B [\|\-\-members\|] [\|\-\-output=\fItagfile\fP\|]
+ − 23 .B [\|\-\-regex=\fIregexp\fP\|] [\|\-\-no\-regex\|]
+ − 24 .B [\|\-\-ignore\-case\-regex=\fIregexp\fP\|]
+ − 25 .B [\|\-\-help\|] [\|\-\-version\|]
428
+ − 26 \fIfile\fP .\|.\|.
+ − 27
+ − 28 .B ctags [\|\-aCdgImRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
+ − 29 .if n .br
+ − 30 .B [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
+ − 31 .br
458
+ − 32 .B [\|\-\-append\|] [\|\-\-backward\-search\|]
+ − 33 .B [\|\-\-cxref\|] [\|\-\-defines\|] [\|\-\-forward\-search\|]
+ − 34 .B [\|\-\-globals\|] [\|\-\-ignore\-indentation\|]
+ − 35 .B [\|\-\-language=\fIlanguage\fP\|] [\|\-\-members\|]
+ − 36 .B [\|\-\-output=\fItagfile\fP\|] [\|\-\-regex=\fIregexp\fP\|]
+ − 37 .B [\|\-\-ignore\-case\-regex=\fIregexp\fP\|]
+ − 38 .B [\|\-\-typedefs\|] [\|\-\-typedefs\-and\-c++\|]
+ − 39 .B [\|\-\-update\|] [\|\-\-no\-warn\|]
+ − 40 .B [\|\-\-help\|] [\|\-\-version\|]
428
+ − 41 \fIfile\fP .\|.\|.
+ − 42 .ad b
+ − 43 .hy 1
+ − 44 .SH DESCRIPTION
+ − 45 The `\|\fBetags\fP\|' program is used to create a tag table file, in a format
+ − 46 understood by
+ − 47 .BR emacs ( 1 )\c
+ − 48 \&; the `\|\fBctags\fP\|' program is used to create a similar table in a
+ − 49 format understood by
+ − 50 .BR vi ( 1 )\c
458
+ − 51 \&. Both forms of the program understand the syntax of C, Objective C,
+ − 52 C++, Java, Fortran, Ada, Cobol, Erlang, LaTeX, Emacs Lisp/Common Lisp,
+ − 53 makefiles, Pascal, Perl, Postscript, Python, Prolog, Scheme and most
+ − 54 assembler\-like syntaxes.
428
+ − 55 Both forms read the files specified on the command line, and write a tag
+ − 56 table (defaults: `\|TAGS\|' for \fBetags\fP, `\|tags\|' for
+ − 57 \fBctags\fP) in the current working directory.
+ − 58 Files specified with relative file names will be recorded in the tag
+ − 59 table with file names relative to the directory where the tag table
+ − 60 resides. Files specified with absolute file names will be recorded
+ − 61 with absolute file names.
+ − 62 The programs recognize the language used in an input file based on its
+ − 63 file name and contents. The --language switch can be used to force
+ − 64 parsing of the file names following the switch according to the given
+ − 65 language, overriding guesses based on filename extensions.
+ − 66 .SH OPTIONS
+ − 67 Some options make sense only for the \fBvi\fP style tag files produced
+ − 68 by ctags;
+ − 69 \fBetags\fP does not recognize them.
+ − 70 The programs accept unambiguous abbreviations for long option names.
+ − 71 .TP
+ − 72 .B \-a, \-\-append
+ − 73 Append to existing tag file. (For vi-format tag files, see also
+ − 74 \fB\-\-update\fP.)
+ − 75 .TP
+ − 76 .B \-B, \-\-backward\-search
+ − 77 Tag files written in the format expected by \fBvi\fP contain regular
+ − 78 expression search instructions; the \fB\-B\fP option writes them using
+ − 79 the delimiter `\|\fB?\fP\|', to search \fIbackwards\fP through files.
+ − 80 The default is to use the delimiter `\|\fB/\fP\|', to search \fIforwards\fP
+ − 81 through files.
+ − 82 Only \fBctags\fP accepts this option.
+ − 83 .TP
+ − 84 .B \-\-declarations
+ − 85 In C and derived languages, create tags for function declarations,
+ − 86 and create tags for extern variables unless \-\-no\-globals is used.
+ − 87 .TP
+ − 88 .B \-d, \-\-defines
+ − 89 Create tag entries for C preprocessor constant definitions
+ − 90 and enum constants, too. This is the
+ − 91 default behavior for \fBetags\fP.
+ − 92 .TP
+ − 93 .B \-D, \-\-no\-defines
+ − 94 Do not create tag entries for C preprocessor constant definitions
+ − 95 and enum constants.
+ − 96 This may make the tags file much smaller if many header files are tagged.
+ − 97 This is the default behavior for \fBctags\fP.
+ − 98 .TP
+ − 99 .B \-g, \-\-globals
+ − 100 Create tag entries for global variables in C, C++, Objective C, Java,
+ − 101 and Perl.
+ − 102 This is the default behavior for \fBetags\fP.
+ − 103 .TP
+ − 104 .B \-G, \-\-no\-globals
+ − 105 Do not tag global variables. Typically this reduces the file size by
+ − 106 one fourth. This is the default behavior for \fBctags\fP.
+ − 107 .TP
+ − 108 \fB\-i\fP \fIfile\fP, \fB\-\-include=\fIfile\fP
+ − 109 Include a note in the tag file indicating that, when searching for a
+ − 110 tag, one should also consult the tags file \fIfile\fP after checking the
+ − 111 current file. This options is only accepted by \fBetags\fP.
+ − 112 .TP
+ − 113 .B \-I, \-\-ignore\-indentation
+ − 114 Don't rely on indentation as much as we normally do. Currently, this
+ − 115 means not to assume that a closing brace in the first column is the
+ − 116 final brace of a function or structure definition in C and C++.
+ − 117 .TP
+ − 118 \fB\-l\fP \fIlanguage\fP, \fB\-\-language=\fIlanguage\fP
+ − 119 Parse the following files according to the given language. More than
+ − 120 one such options may be intermixed with filenames. Use \fB\-\-help\fP
+ − 121 to get a list of the available languages and their default filename
+ − 122 extensions. The `auto' language can be used to restore automatic
458
+ − 123 detection of language based on the file name. The `none'
428
+ − 124 language may be used to disable language parsing altogether; only
+ − 125 regexp matching is done in this case (see the \fB\-\-regex\fP option).
+ − 126 .TP
+ − 127 .B \-m, \-\-members
+ − 128 Create tag entries for variables that are members of structure-like
+ − 129 constructs in C++, Objective C, Java.
+ − 130 .TP
+ − 131 .B \-M, \-\-no\-members
+ − 132 Do not tag member variables. This is the default behavior.
+ − 133 .TP
+ − 134 .B \-\-packages\-only
+ − 135 Only tag packages in Ada files.
+ − 136 .TP
+ − 137 \fB\-o\fP \fItagfile\fP, \fB\-\-output=\fItagfile\fP
+ − 138 Explicit name of file for tag table; overrides default `\|TAGS\|' or
+ − 139 `\|tags\|'. (But ignored with \fB\-v\fP or \fB\-x\fP.)
+ − 140 .TP
458
+ − 141 \fB\-r\fP \fIregexp\fP, \fB\-\-regex=\fIregexp\fP, \fB\-\-ignore\-case\-regex=\fIregexp\fP
428
+ − 142 Make tags based on regexp matching for each line of the files following
+ − 143 this option, in addition to the tags made with the standard parsing based
+ − 144 on language. When using \-\-regex, case is significant, while it is not
+ − 145 with \-\-ignore\-case\-regex. May be freely intermixed with filenames and
+ − 146 the \fB\-R\fP option. The regexps are cumulative, i.e. each option will
+ − 147 add to the previous ones. The regexps are of the form:
+ − 148 .br
+ − 149 \fB/\fP\fItagregexp\fP[\fB/\fP\fInameregexp\fP]\fB/\fP
+ − 150 .br
+ − 151
+ − 152 where \fItagregexp\fP is used to match the lines that must be tagged.
+ − 153 It should not match useless characters. If the match is
+ − 154 such that more characters than needed are unavoidably matched by
+ − 155 \fItagregexp\fP, it may be useful to add a \fInameregexp\fP, to
+ − 156 narrow down the tag scope. \fBctags\fP ignores regexps without a
+ − 157 \fInameregexp\fP. The syntax of regexps is the same as in emacs,
+ − 158 augmented with intervals of the form \\{m,n\\}, as in ed or grep.
+ − 159 .br
+ − 160 Here are some examples. All the regexps are quoted to protect them
+ − 161 from shell interpretation.
+ − 162 .br
+ − 163
+ − 164 Tag the DEFVAR macros in the emacs source files:
+ − 165 .br
+ − 166 \fI\-\-regex\='/[ \\t]*DEFVAR_[A-Z_ \\t(]+"\\([^"]+\\)"\/'\fP
+ − 167 .br
+ − 168
+ − 169 Tag VHDL files (this example is a single long line, broken here for
+ − 170 formatting reasons):
+ − 171 .br
+ − 172 \fI\-\-language\=none\ \-\-regex='/[\ \\t]*\\(ARCHITECTURE\\|\\
+ − 173 CONFIGURATION\\)\ +[^\ ]*\ +OF/'\ \-\-regex\='/[\ \\t]*\\
+ − 174 \\(ATTRIBUTE\\|ENTITY\\|FUNCTION\\|PACKAGE\\(\ BODY\\)?\\
+ − 175 \\|PROCEDURE\\|PROCESS\\|TYPE\\)[\ \\t]+\\([^\ \\t(]+\\)/\\3/'\fP
+ − 176 .br
+ − 177
+ − 178 Tag TCL files (this last example shows the usage of a \fItagregexp\fP):
+ − 179 .br
+ − 180 \fI\-\-lang\=none \-\-regex\='/proc[\ \\t]+\\([^\ \\t]+\\)/\\1/'\fP
+ − 181
+ − 182 .br
+ − 183 A regexp can be preceded by {lang}, thus restriciting it to match lines of
458
+ − 184 files of the specified language. Use \fBetags --help\fP to obtain a list
428
+ − 185 of the recognised languages. This feature is particularly useful inside
458
+ − 186 \fBregex files\fP. A regex file contains one regex per line. Empty lines,
428
+ − 187 and those lines beginning with space or tab are ignored. Lines beginning
+ − 188 with @ are references to regex files whose name follows the @ sign. Other
+ − 189 lines are considered regular expressions like those following \-\-regex.
+ − 190 .br
+ − 191 For example, the command
+ − 192 .br
+ − 193 etags \-\-regex=@regex.file *.c
+ − 194 .br
+ − 195 reads the regexes contained in the file regex.file.
+ − 196 .TP
+ − 197 .B \-R, \-\-no\-regex
+ − 198 Don't do any more regexp matching on the following files. May be
+ − 199 freely intermixed with filenames and the \fB\-\-regex\fP option.
+ − 200 .TP
+ − 201 .B \-t, \-\-typedefs
+ − 202 Record typedefs in C code as tags. Since this is the default behaviour
+ − 203 of \fBetags\fP, only \fBctags\fP accepts this option.
+ − 204 .TP
+ − 205 .B \-T, \-\-typedefs\-and\-c++
+ − 206 Generate tag entries for typedefs, struct, enum, and union tags, and
+ − 207 C++ member functions. Since this is the default behaviour
+ − 208 of \fBetags\fP, only \fBctags\fP accepts this option.
+ − 209 .TP
+ − 210 .B \-u, \-\-update
+ − 211 Update tag entries for \fIfiles\fP specified on command line, leaving
+ − 212 tag entries for other files in place. Currently, this is implemented
+ − 213 by deleting the existing entries for the given files and then
+ − 214 rewriting the new entries at the end of the tags file. It is often
+ − 215 faster to simply rebuild the entire tag file than to use this.
+ − 216 Only \fBctags\fP accepts this option.
+ − 217 .TP
+ − 218 .B \-v, \-\-vgrind
+ − 219 Instead of generating a tag file, write index (in \fBvgrind\fP format)
+ − 220 to standard output. Only \fBctags\fP accepts this option.
+ − 221 .TP
+ − 222 .B \-w, \-\-no\-warn
+ − 223 Suppress warning messages about duplicate entries. The \fBetags\fP
+ − 224 program does not check for duplicate entries, so this option is not
+ − 225 allowed with it.
+ − 226 .TP
+ − 227 .B \-x, \-\-cxref
+ − 228 Instead of generating a tag file, write a cross reference (in
+ − 229 \fBcxref\fP format) to standard output. Only \fBctags\fP accepts this option.
+ − 230 .TP
+ − 231 .B \-h, \-H, \-\-help
+ − 232 Print usage information.
+ − 233 .TP
+ − 234 .B \-V, \-\-version
+ − 235 Print the current version of the program (same as the version of the
+ − 236 emacs \fBetags\fP is shipped with).
+ − 237
+ − 238 .SH "SEE ALSO"
+ − 239 `\|\fBemacs\fP\|' entry in \fBinfo\fP; \fIGNU Emacs Manual\fP, Richard
+ − 240 Stallman.
+ − 241 .br
+ − 242 .BR cxref ( 1 ),
+ − 243 .BR emacs ( 1 ),
+ − 244 .BR vgrind ( 1 ),
+ − 245 .BR vi ( 1 ).
+ − 246
+ − 247 .SH COPYING
+ − 248 Copyright (c) 1999 Free Software Foundation, Inc.
+ − 249 .PP
+ − 250 Permission is granted to make and distribute verbatim copies of
+ − 251 this manual provided the copyright notice and this permission notice
+ − 252 are preserved on all copies.
+ − 253 .PP
+ − 254 Permission is granted to copy and distribute modified versions of this
+ − 255 manual under the conditions for verbatim copying, provided that the
+ − 256 entire resulting derived work is distributed under the terms of a
+ − 257 permission notice identical to this one.
+ − 258 .PP
+ − 259 Permission is granted to copy and distribute translations of this
+ − 260 manual into another language, under the above conditions for modified
+ − 261 versions, except that this permission notice may be included in
+ − 262 translations approved by the Free Software Foundation instead of in
+ − 263 the original English.