Mercurial > emacs
annotate doc/man/etags.1 @ 93807:0e59bf9fa65c
*** empty log message ***
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Mon, 07 Apr 2008 01:27:59 +0000 |
parents | 107ccd98fa12 |
children | 187da50507c8 |
rev | line source |
---|---|
83913 | 1 .\" Copyright (C) 1992, 2001, 2002, 2003, 2004, |
87649 | 2 .\" 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
83913 | 3 .\" See section COPYING for conditions for redistribution |
4 .TH etags 1 "23nov2001" "GNU Tools" "GNU Tools" | |
5 .de BP | |
6 .sp | |
7 .ti -.2i | |
8 \(** | |
9 .. | |
10 | |
11 .SH NAME | |
12 etags, ctags \- generate tag file for Emacs, vi | |
13 .SH SYNOPSIS | |
14 .hy 0 | |
15 .na | |
16 \fBetags\fP [\|\-aCDGIRVh\|] [\|\-i \fIfile\fP\|] [\|\-l \fIlanguage\fP\|] | |
17 .if n .br | |
18 [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|] | |
19 [\|\-\-parse\-stdin=\fIfile\fP\|] | |
20 .br | |
21 [\|\-\-append\|] [\|\-\-no\-defines\|] | |
22 [\|\-\-no\-globals\|] [\|\-\-include=\fIfile\fP\|] | |
23 [\|\-\-ignore\-indentation\|] [\|\-\-language=\fIlanguage\fP\|] | |
24 [\|\-\-no\-members\|] [\|\-\-output=\fItagfile\fP\|] | |
25 [\|\-\-regex=\fIregexp\fP\|] [\|\-\-no\-regex\|] | |
26 [\|\-\-help\|] [\|\-\-version\|] | |
27 \fIfile\fP .\|.\|. | |
28 | |
29 \fBctags\fP [\|\-aCdgIRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|] | |
30 .if n .br | |
31 [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|] | |
32 [\|\-\-parse\-stdin=\fIfile\fP\|] | |
33 .br | |
34 [\|\-\-append\|] [\|\-\-backward\-search\|] | |
86317
2aa93dd1b1cb
Ctags and Etags now share the same defaults, so remove
Francesco Potortì <pot@gnu.org>
parents:
86089
diff
changeset
|
35 [\|\-\-cxref\|] [\|\-\-no\-defines\|] [\|\-\-forward\-search\|] |
2aa93dd1b1cb
Ctags and Etags now share the same defaults, so remove
Francesco Potortì <pot@gnu.org>
parents:
86089
diff
changeset
|
36 [\|\-\-no\-globals\|] [\|\-\-ignore\-indentation\|] |
2aa93dd1b1cb
Ctags and Etags now share the same defaults, so remove
Francesco Potortì <pot@gnu.org>
parents:
86089
diff
changeset
|
37 [\|\-\-language=\fIlanguage\fP\|] [\|\-\-no\-members\|] |
83913 | 38 [\|\-\-output=\fItagfile\fP\|] [\|\-\-regex=\fIregexp\fP\|] |
39 [\|\-\-update\|] | |
40 [\|\-\-help\|] [\|\-\-version\|] | |
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 | |
51 \&. Both forms of the program understand | |
52 the syntax of C, Objective C, C++, Java, Fortran, Ada, Cobol, Erlang, HTML, | |
53 LaTeX, Emacs Lisp/Common Lisp, Lua, makefile, Pascal, Perl, PHP, Postscript, | |
54 Python, Prolog, Scheme and | |
55 most assembler\-like syntaxes. | |
56 Both forms read the files specified on the command line, and write a tag | |
57 table (defaults: \fBTAGS\fP for \fBetags\fP, \fBtags\fP for | |
58 \fBctags\fP) in the current working directory. | |
59 Files specified with relative file names will be recorded in the tag | |
60 table with file names relative to the directory where the tag table | |
86089
127279e2403a
Note that you can use "-" with -o in Etags.
Francesco Potortì <pot@gnu.org>
parents:
83913
diff
changeset
|
61 resides. If the tag table is in /dev or is the standard output, |
127279e2403a
Note that you can use "-" with -o in Etags.
Francesco Potortì <pot@gnu.org>
parents:
83913
diff
changeset
|
62 however, the file names are made relative to the working directory. |
127279e2403a
Note that you can use "-" with -o in Etags.
Francesco Potortì <pot@gnu.org>
parents:
83913
diff
changeset
|
63 Files specified with absolute file names will be recorded |
83913 | 64 with absolute file names. Files generated from a source file\-\-like |
65 a C file generated from a source Cweb file\-\-will be recorded with | |
66 the name of the source file. | |
67 The programs recognize the language used in an input file based on its | |
68 file name and contents. The \fB\-\-language\fP switch can be used to force | |
69 parsing of the file names following the switch according to the given | |
70 language, overriding guesses based on filename extensions. | |
71 .SH OPTIONS | |
72 Some options make sense only for the \fBvi\fP style tag files produced | |
73 by ctags; | |
74 \fBetags\fP does not recognize them. | |
75 The programs accept unambiguous abbreviations for long option names. | |
76 .TP | |
77 .B \-a, \-\-append | |
78 Append to existing tag file. (For \fBvi\fP-format tag files, see also | |
79 \fB\-\-update\fP.) | |
80 .TP | |
81 .B \-B, \-\-backward\-search | |
82 Tag files written in the format expected by \fBvi\fP contain regular | |
83 expression search instructions; the \fB\-B\fP option writes them using | |
84 the delimiter `\|\fB?\fP\|', to search \fIbackwards\fP through files. | |
85 The default is to use the delimiter `\|\fB/\fP\|', to search \fIforwards\fP | |
86 through files. | |
87 Only \fBctags\fP accepts this option. | |
88 .TP | |
89 .B \-\-declarations | |
90 In C and derived languages, create tags for function declarations, | |
91 and create tags for extern variables unless \-\-no\-globals is used. | |
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 .TP | |
98 .B \-\-no\-globals | |
99 Do not tag global variables. Typically this reduces the file size by | |
86317
2aa93dd1b1cb
Ctags and Etags now share the same defaults, so remove
Francesco Potortì <pot@gnu.org>
parents:
86089
diff
changeset
|
100 one fourth. |
83913 | 101 .TP |
102 \fB\-i\fP \fIfile\fP, \fB\-\-include=\fIfile\fP | |
103 Include a note in the tag file indicating that, when searching for a | |
104 tag, one should also consult the tags file \fIfile\fP after checking the | |
105 current file. Only \fBetags\fP accepts this option. | |
106 .TP | |
107 .B \-I, \-\-ignore\-indentation | |
108 Don't rely on indentation as much as we normally do. Currently, this | |
109 means not to assume that a closing brace in the first column is the | |
110 final brace of a function or structure definition in C and C++. | |
111 .TP | |
112 \fB\-l\fP \fIlanguage\fP, \fB\-\-language=\fIlanguage\fP | |
113 Parse the following files according to the given language. More than | |
114 one such options may be intermixed with filenames. Use \fB\-\-help\fP | |
115 to get a list of the available languages and their default filename | |
116 extensions. The `auto' language can be used to restore automatic | |
117 detection of language based on the file name. The `none' | |
118 language may be used to disable language parsing altogether; only | |
119 regexp matching is done in this case (see the \fB\-\-regex\fP option). | |
120 .TP | |
121 .B \-\-members | |
122 Create tag entries for variables that are members of structure-like | |
86317
2aa93dd1b1cb
Ctags and Etags now share the same defaults, so remove
Francesco Potortì <pot@gnu.org>
parents:
86089
diff
changeset
|
123 constructs in C++, Objective C, Java. This is the default. |
83913 | 124 .TP |
125 .B \-\-no\-members | |
86317
2aa93dd1b1cb
Ctags and Etags now share the same defaults, so remove
Francesco Potortì <pot@gnu.org>
parents:
86089
diff
changeset
|
126 Do not tag member variables. |
83913 | 127 .TP |
128 .B \-\-packages\-only | |
129 Only tag packages in Ada files. | |
130 .TP | |
131 \fB\-\-parse\-stdin=\fIfile\fP | |
132 May be used (only once) in place of a file name on the command line. | |
133 \fBetags\fP will read from standard input and mark the produced tags | |
134 as belonging to the file \fBFILE\fP. | |
135 .TP | |
136 \fB\-o\fP \fItagfile\fP, \fB\-\-output=\fItagfile\fP | |
86089
127279e2403a
Note that you can use "-" with -o in Etags.
Francesco Potortì <pot@gnu.org>
parents:
83913
diff
changeset
|
137 Explicit name of file for tag table; for \fBetags\fP only, a file name |
127279e2403a
Note that you can use "-" with -o in Etags.
Francesco Potortì <pot@gnu.org>
parents:
83913
diff
changeset
|
138 of \- means standard output; overrides default \fBTAGS\fP or \fBtags\fP. |
127279e2403a
Note that you can use "-" with -o in Etags.
Francesco Potortì <pot@gnu.org>
parents:
83913
diff
changeset
|
139 (But ignored with \fB\-v\fP or \fB\-x\fP.) |
83913 | 140 .TP |
141 \fB\-r\fP \fIregexp\fP, \fB\-\-regex=\fIregexp\fP | |
142 | |
143 Make tags based on regexp matching for the files following this option, | |
144 in addition to the tags made with the standard parsing based on | |
145 language. May be freely intermixed with filenames and the \fB\-R\fP | |
146 option. The regexps are cumulative, i.e. each such option will add to | |
147 the previous ones. The regexps are of one of the forms: | |
148 .br | |
149 [\fB{\fP\fIlanguage\fP\fB}\fP]\fB/\fP\fItagregexp/\fP[\fInameregexp\fP\fB/\fP]\fImodifiers\fP | |
150 .br | |
151 \fB@\fP\fIregexfile\fP | |
152 .br | |
153 | |
154 where \fItagregexp\fP is used to match the tag. It should not match | |
155 useless characters. If the match is such that more characters than | |
156 needed are unavoidably matched by \fItagregexp\fP, it may be useful to | |
157 add a \fInameregexp\fP, to narrow down the tag scope. \fBctags\fP | |
158 ignores regexps without a \fInameregexp\fP. The syntax of regexps is | |
159 the same as in emacs. The following character escape sequences are | |
160 supported: \\a, \\b, \\d, \\e, \\f, \\n, \\r, \\t, \\v, which | |
161 respectively stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, | |
162 CR, TAB, VT. | |
163 .br | |
164 The \fImodifiers\fP are a sequence of 0 or more characters among | |
165 \fIi\fP, which means to ignore case when matching; \fIm\fP, which means | |
166 that the \fItagregexp\fP will be matched against the whole file contents | |
167 at once, rather than line by line, and the matching sequence can match | |
168 multiple lines; and \fIs\fP, which implies \fIm\fP and means that the | |
169 dot character in \fItagregexp\fP matches the newline char as well. | |
170 .br | |
171 The separator, which is \fB/\fP in the examples, can be any character | |
172 different from space, tab, braces and \fB@\fP. If the separator | |
173 character is needed inside the regular expression, it must be quoted | |
174 by preceding it with \fB\\\fP. | |
175 .br | |
176 The optional \fB{\fP\fIlanguage\fP\fB}\fP prefix means that the tag | |
177 should be | |
178 created only for files of language \fIlanguage\fP, and ignored | |
179 otherwise. This is particularly useful when storing many predefined | |
180 regexps in a file. | |
181 .br | |
182 In its second form, \fIregexfile\fP is the name of a file that contains | |
183 a number of arguments to the \fI\-\-regex\=\fP option, | |
184 one per line. Lines beginning with a space or tab are assumed | |
185 to be comments, and ignored. | |
186 | |
187 .br | |
188 Here are some examples. All the regexps are quoted to protect them | |
189 from shell interpretation. | |
190 .br | |
191 | |
192 Tag the DEFVAR macros in the emacs source files: | |
193 .br | |
194 \fI\-\-regex\='/[ \\t]*DEFVAR_[A-Z_ \\t(]+"\\([^"]+\\)"/'\fP | |
195 .\"" This comment is to avoid confusion to Emacs syntax highlighting | |
196 .br | |
197 | |
198 Tag VHDL files (this example is a single long line, broken here for | |
199 formatting reasons): | |
200 .br | |
201 \fI\-\-language\=none\ \-\-regex='/[\ \\t]*\\(ARCHITECTURE\\|\\ | |
202 CONFIGURATION\\)\ +[^\ ]*\ +OF/'\ \-\-regex\='/[\ \\t]*\\ | |
203 \\(ATTRIBUTE\\|ENTITY\\|FUNCTION\\|PACKAGE\\(\ BODY\\)?\\ | |
204 \\|PROCEDURE\\|PROCESS\\|TYPE\\)[\ \\t]+\\([^\ \\t(]+\\)/\\3/'\fP | |
205 .br | |
206 | |
207 Tag TCL files (this last example shows the usage of a \fItagregexp\fP): | |
208 .br | |
209 \fI\-\-lang\=none \-\-regex\='/proc[\ \\t]+\\([^\ \\t]+\\)/\\1/'\fP | |
210 | |
211 .br | |
212 A regexp can be preceded by {\fIlang\fP}, thus restricting it to match | |
213 lines of files of the specified language. Use \fBetags \-\-help\fP to obtain | |
214 a list of the recognised languages. This feature is particularly useful inside | |
215 \fBregex files\fP. A regex file contains one regex per line. Empty lines, | |
216 and those lines beginning with space or tab are ignored. Lines beginning | |
217 with @ are references to regex files whose name follows the @ sign. Other | |
218 lines are considered regular expressions like those following \fB\-\-regex\fP. | |
219 .br | |
220 For example, the command | |
221 .br | |
222 \fIetags \-\-regex=@regex.file *.c\fP | |
223 .br | |
224 reads the regexes contained in the file regex.file. | |
225 .TP | |
226 .B \-R, \-\-no\-regex | |
227 Don't do any more regexp matching on the following files. May be | |
228 freely intermixed with filenames and the \fB\-\-regex\fP option. | |
229 .TP | |
230 .B \-u, \-\-update | |
231 Update tag entries for \fIfiles\fP specified on command line, leaving | |
232 tag entries for other files in place. Currently, this is implemented | |
233 by deleting the existing entries for the given files and then | |
234 rewriting the new entries at the end of the tags file. It is often | |
235 faster to simply rebuild the entire tag file than to use this. | |
236 Only \fBctags\fP accepts this option. | |
237 .TP | |
238 .B \-v, \-\-vgrind | |
239 Instead of generating a tag file, write index (in \fBvgrind\fP format) | |
240 to standard output. Only \fBctags\fP accepts this option. | |
241 .TP | |
242 .B \-x, \-\-cxref | |
243 Instead of generating a tag file, write a cross reference (in | |
244 \fBcxref\fP format) to standard output. Only \fBctags\fP accepts this option. | |
245 .TP | |
246 .B \-h, \-H, \-\-help | |
247 Print usage information. Followed by one or more \-\-language=LANG | |
248 prints detailed information about how tags are created for LANG. | |
249 .TP | |
250 .B \-V, \-\-version | |
251 Print the current version of the program (same as the version of the | |
252 emacs \fBetags\fP is shipped with). | |
253 | |
254 .SH "SEE ALSO" | |
255 `\|\fBemacs\fP\|' entry in \fBinfo\fP; \fIGNU Emacs Manual\fP, Richard | |
256 Stallman. | |
257 .br | |
258 .BR cxref ( 1 ), | |
259 .BR emacs ( 1 ), | |
260 .BR vgrind ( 1 ), | |
261 .BR vi ( 1 ). | |
262 | |
263 .SH COPYING | |
264 Copyright | |
265 .if t \(co | |
266 .if n (c) | |
87649 | 267 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
83913 | 268 .PP |
269 Permission is granted to make and distribute verbatim copies of this | |
270 document provided the copyright notice and this permission notice are | |
271 preserved on all copies. | |
272 .PP | |
273 Permission is granted to copy and distribute modified versions of | |
274 this document under the conditions for verbatim copying, provided that | |
275 the entire resulting derived work is distributed under the terms of | |
276 a permission notice identical to this one. | |
277 .PP | |
278 Permission is granted to copy and distribute translations of this | |
279 document into another language, under the above conditions for | |
280 modified versions, except that this permission notice may be stated | |
281 in a translation approved by the Free Software Foundation. | |
282 | |
283 .\" arch-tag: 9534977f-af78-42f0-991d-1df6b6c05573 |