Mercurial > emacs
annotate man/maintaining.texi @ 45809:cd830b0ced4d
* etags.c (erlang_atom, erlang_attribute): Bugs corrected.
(invalidate_nodes): Bug corrected.
(print_help): Better help for regexps.
author | Francesco Potortì <pot@gnu.org> |
---|---|
date | Thu, 13 Jun 2002 17:53:35 +0000 |
parents | 0cbd872ef18b |
children | 22138a27a5f3 |
rev | line source |
---|---|
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1 @c This is part of the Emacs manual. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
2 @c Copyright (C) 1985,86,87,93,94,95,97,99,00,2001 Free Software Foundation, Inc. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
3 @c See file emacs.texi for copying conditions. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
4 @node Maintaining, Abbrevs, Building, Top |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
5 @chapter Maintaining Programs |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
6 @cindex Lisp editing |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
7 @cindex C editing |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
8 @cindex program editing |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
9 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
10 This chapter describes Emacs features for maintaining programs. The |
38952 | 11 version control features (@pxref{Version Control}) are also |
12 particularly useful for this purpose. | |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
13 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
14 @menu |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
15 * Change Log:: Maintaining a change history for your program. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
16 * Tags:: Go direct to any function in your program in one |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
17 command. Tags remembers which file it is in. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
18 * Emerge:: A convenient way of merging two versions of a program. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
19 @end menu |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
20 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
21 @node Change Log |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
22 @section Change Logs |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
23 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
24 @cindex change log |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
25 @kindex C-x 4 a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
26 @findex add-change-log-entry-other-window |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
27 The Emacs command @kbd{C-x 4 a} adds a new entry to the change log |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
28 file for the file you are editing |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
29 (@code{add-change-log-entry-other-window}). If that file is actually |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
30 a backup file, it makes an entry appropriate for the file's |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
31 parent---that is useful for making log entries for functions that |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
32 have been deleted in the current version. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
33 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
34 A change log file contains a chronological record of when and why you |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
35 have changed a program, consisting of a sequence of entries describing |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
36 individual changes. Normally it is kept in a file called |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
37 @file{ChangeLog} in the same directory as the file you are editing, or |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
38 one of its parent directories. A single @file{ChangeLog} file can |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
39 record changes for all the files in its directory and all its |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
40 subdirectories. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
41 |
39623
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
42 You should put a copyright notice and permission notice at the |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
43 end of the change log file. Here is an example: |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
44 |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
45 @example |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
46 Copyright 1997, 1998 Free Software Foundation, Inc. |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
47 Copying and distribution of this file, with or without modification, are |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
48 permitted provided the copyright notice and this notice are preserved. |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
49 @end example |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
50 |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
51 @noindent |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
52 Of course, you should substitute the proper years and copyright holder. |
eff57c5f75db
Explain where and how to put the copyright notice and permission
Richard M. Stallman <rms@gnu.org>
parents:
39267
diff
changeset
|
53 |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
54 A change log entry starts with a header line that contains the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
55 current date, your name, and your email address (taken from the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
56 variable @code{user-mail-address}). Aside from these header lines, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
57 every line in the change log starts with a space or a tab. The bulk |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
58 of the entry consists of @dfn{items}, each of which starts with a line |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
59 starting with whitespace and a star. Here are two entries, both dated |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
60 in May 1993, each with two items: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
61 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
62 @iftex |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
63 @medbreak |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
64 @end iftex |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
65 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
66 1993-05-25 Richard Stallman <rms@@gnu.org> |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
67 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
68 * man.el: Rename symbols `man-*' to `Man-*'. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
69 (manual-entry): Make prompt string clearer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
70 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
71 * simple.el (blink-matching-paren-distance): |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
72 Change default to 12,000. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
73 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
74 1993-05-24 Richard Stallman <rms@@gnu.org> |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
75 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
76 * vc.el (minor-mode-map-alist): Don't use it if it's void. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
77 (vc-cancel-version): Doc fix. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
78 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
79 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
80 One entry can describe several changes; each change should have its |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
81 own item. Normally there should be a blank line between items. When |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
82 items are related (parts of the same change, in different places), group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
83 them by leaving no blank line between them. The second entry above |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
84 contains two items grouped in this way. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
85 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
86 @kbd{C-x 4 a} visits the change log file and creates a new entry |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
87 unless the most recent entry is for today's date and your name. It |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
88 also creates a new item for the current file. For many languages, it |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
89 can even guess the name of the function or other object that was |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
90 changed. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
91 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
92 @vindex add-log-keep-changes-together |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
93 When the option @code{add-log-keep-changes-together} is |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
94 non-@code{nil}, @kbd{C-x 4 a} adds to any existing entry for the file |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
95 rather than starting a new entry. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
96 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
97 @vindex change-log-version-info-enabled |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
98 @vindex change-log-version-number-regexp-list |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
99 @cindex file version in change log entries |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
100 If the value of the variable @code{change-log-version-info-enabled} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
101 is non-@code{nil}, @kbd{C-x 4 a} adds the file's version number to the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
102 change log entry. It finds the version number by searching the first |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
103 ten percent of the file, using regular expressions from the variable |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
104 @code{change-log-version-number-regexp-list}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
105 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
106 @cindex Change Log mode |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
107 @findex change-log-mode |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
108 The change log file is visited in Change Log mode. In this major |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
109 mode, each bunch of grouped items counts as one paragraph, and each |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
110 entry is considered a page. This facilitates editing the entries. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
111 @kbd{C-j} and auto-fill indent each new line like the previous line; |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
112 this is convenient for entering the contents of an entry. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
113 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
114 @findex change-log-merge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
115 You can use the command @kbd{M-x change-log-merge} to merge other |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
116 log files into a buffer in Change Log Mode, preserving the date |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
117 ordering of entries. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
118 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
119 @findex change-log-redate |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
120 @cindex converting change log date style |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
121 Versions of Emacs before 20.1 used a different format for the time of |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
122 the change log entry: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
123 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
124 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
125 Fri May 25 11:23:23 1993 Richard Stallman <rms@@gnu.org> |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
126 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
127 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
128 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
129 The @kbd{M-x change-log-redate} command converts all the old-style |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
130 date entries in the change log file visited in the current buffer to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
131 the new format, to make the file uniform in style. This is handy when |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
132 entries are contributed by many different people, some of whom use old |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
133 versions of Emacs. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
134 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
135 Version control systems are another way to keep track of changes in your |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
136 program and keep a change log. @xref{Log Buffer}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
137 |
40792
7ea12eee7004
Comment out the Authors node.
Richard M. Stallman <rms@gnu.org>
parents:
39623
diff
changeset
|
138 @ignore |
7ea12eee7004
Comment out the Authors node.
Richard M. Stallman <rms@gnu.org>
parents:
39623
diff
changeset
|
139 @c This is commented out because the command is specific |
7ea12eee7004
Comment out the Authors node.
Richard M. Stallman <rms@gnu.org>
parents:
39623
diff
changeset
|
140 @c to maintenance of Emacs itself. |
7ea12eee7004
Comment out the Authors node.
Richard M. Stallman <rms@gnu.org>
parents:
39623
diff
changeset
|
141 |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
142 @node Authors |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
143 @section @file{AUTHORS} files |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
144 @cindex @file{AUTHORS} file |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
145 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
146 Programs which have many contributors usually include a file named |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
147 @file{AUTHORS} in their distribution, which lists the individual |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
148 contributions. Emacs has a special command for maintaining the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
149 @file{AUTHORS} file that is part of the Emacs distribution. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
150 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
151 @findex authors |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
152 The @kbd{M-x authors} command prompts for the name of the root of the |
38860 | 153 Emacs source directory. It then scans @file{ChangeLog} files and Lisp |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
154 source files under that directory for information about authors of |
38952 | 155 individual packages, and people who made changes in source files, and |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
156 puts the information it gleans into a buffer named @samp{*Authors*}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
157 You can then edit the contents of that buffer and merge it with the |
38261 | 158 existing @file{AUTHORS} file. |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
159 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
160 Do not assume that this command finds all the contributors; don't |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
161 assume that a person not listed in the output was not a contributor. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
162 If you merged in someone's contribution and did not put his name |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
163 in the change log, he won't show up in @kbd{M-x authors} either. |
40792
7ea12eee7004
Comment out the Authors node.
Richard M. Stallman <rms@gnu.org>
parents:
39623
diff
changeset
|
164 @end ignore |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
165 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
166 @node Tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
167 @section Tags Tables |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
168 @cindex tags table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
169 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
170 A @dfn{tags table} is a description of how a multi-file program is |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
171 broken up into files. It lists the names of the component files and the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
172 names and positions of the functions (or other named subunits) in each |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
173 file. Grouping the related files makes it possible to search or replace |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
174 through all the files with one command. Recording the function names |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
175 and positions makes possible the @kbd{M-.} command which finds the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
176 definition of a function by looking up which of the files it is in. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
177 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
178 Tags tables are stored in files called @dfn{tags table files}. The |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
179 conventional name for a tags table file is @file{TAGS}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
180 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
181 Each entry in the tags table records the name of one tag, the name of the |
43724
16affaf7292b
etags honours #line directives.
Francesco Potortì <pot@gnu.org>
parents:
42342
diff
changeset
|
182 file that the tag is defined in (implicitly), and the position in that |
16affaf7292b
etags honours #line directives.
Francesco Potortì <pot@gnu.org>
parents:
42342
diff
changeset
|
183 file of the tag's definition. When a file parsed by @code{etags} is |
43856
7d0cb2cc5e60
Use Cweb, not bison as an example of etags using #line.
Francesco Potortì <pot@gnu.org>
parents:
43724
diff
changeset
|
184 generated from a different source file, like a C file generated from a |
7d0cb2cc5e60
Use Cweb, not bison as an example of etags using #line.
Francesco Potortì <pot@gnu.org>
parents:
43724
diff
changeset
|
185 Cweb source file, the tags of the parsed file reference the source |
7d0cb2cc5e60
Use Cweb, not bison as an example of etags using #line.
Francesco Potortì <pot@gnu.org>
parents:
43724
diff
changeset
|
186 file. |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
187 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
188 Just what names from the described files are recorded in the tags table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
189 depends on the programming language of the described file. They |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
190 normally include all file names, functions and subroutines, and may |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
191 also include global variables, data types, and anything else |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
192 convenient. Each name recorded is called a @dfn{tag}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
193 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
194 @cindex C++ class browser, tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
195 @cindex tags, C++ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
196 @cindex class browser, C++ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
197 @cindex Ebrowse |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
198 See also the Ebrowse facility, which is tailored for C++. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
199 @xref{Top,, Ebrowse, ebrowse, Ebrowse User's Manual}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
200 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
201 @menu |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
202 * Tag Syntax:: Tag syntax for various types of code and text files. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
203 * Create Tags Table:: Creating a tags table with @code{etags}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
204 * Etags Regexps:: Create arbitrary tags using regular expressions. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
205 * Select Tags Table:: How to visit a tags table. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
206 * Find Tag:: Commands to find the definition of a specific tag. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
207 * Tags Search:: Using a tags table for searching and replacing. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
208 * List Tags:: Listing and finding tags defined in a file. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
209 @end menu |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
210 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
211 @node Tag Syntax |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
212 @subsection Source File Tag Syntax |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
213 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
214 Here is how tag syntax is defined for the most popular languages: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
215 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
216 @itemize @bullet |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
217 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
218 In C code, any C function or typedef is a tag, and so are definitions of |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
219 @code{struct}, @code{union} and @code{enum}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
220 @code{#define} macro definitions and @code{enum} constants are also |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
221 tags, unless you specify @samp{--no-defines} when making the tags table. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
222 Similarly, global variables are tags, unless you specify |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
223 @samp{--no-globals}. Use of @samp{--no-globals} and @samp{--no-defines} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
224 can make the tags table file much smaller. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
225 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
226 You can tag function declarations and external variables in addition |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
227 to function definitions by giving the @samp{--declarations} option to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
228 @code{etags}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
229 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
230 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
231 In C++ code, in addition to all the tag constructs of C code, member |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
232 functions are also recognized, and optionally member variables if you |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
233 use the @samp{--members} option. Tags for variables and functions in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
234 classes are named @samp{@var{class}::@var{variable}} and |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
235 @samp{@var{class}::@var{function}}. @code{operator} definitions have |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
236 tag names like @samp{operator+}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
237 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
238 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
239 In Java code, tags include all the constructs recognized in C++, plus |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
240 the @code{interface}, @code{extends} and @code{implements} constructs. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
241 Tags for variables and functions in classes are named |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
242 @samp{@var{class}.@var{variable}} and @samp{@var{class}.@var{function}}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
243 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
244 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
245 In La@TeX{} text, the argument of any of the commands @code{\chapter}, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
246 @code{\section}, @code{\subsection}, @code{\subsubsection}, |
45659
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
247 @code{\eqno}, @code{\label}, @code{\ref}, @code{\cite}, |
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
248 @code{\bibitem}, @code{\part}, @code{\appendix}, @code{\entry}, |
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
249 @code{\index}, @code{\def}, @code{\newcomand}, @code{\renewcommand}, |
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
250 @code{\newenvironment} or @code{\renewenvironment} is a tag.@refill |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
251 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
252 Other commands can make tags as well, if you specify them in the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
253 environment variable @env{TEXTAGS} before invoking @code{etags}. The |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
254 value of this environment variable should be a colon-separated list of |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
255 command names. For example, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
256 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
257 @example |
45659
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
258 TEXTAGS="mycommand:myothercommand" |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
259 export TEXTAGS |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
260 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
261 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
262 @noindent |
45659
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
263 specifies (using Bourne shell syntax) that the commands |
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
264 @samp{\mycommand} and @samp{\myothercommand} also define tags. |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
265 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
266 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
267 In Lisp code, any function defined with @code{defun}, any variable |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
268 defined with @code{defvar} or @code{defconst}, and in general the first |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
269 argument of any expression that starts with @samp{(def} in column zero, is |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
270 a tag. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
271 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
272 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
273 In Scheme code, tags include anything defined with @code{def} or with a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
274 construct whose name starts with @samp{def}. They also include variables |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
275 set with @code{set!} at top level in the file. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
276 @end itemize |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
277 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
278 Several other languages are also supported: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
279 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
280 @itemize @bullet |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
281 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
282 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
283 In Ada code, functions, procedures, packages, tasks, and types are |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
284 tags. Use the @samp{--packages-only} option to create tags for |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
285 packages only. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
286 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
287 In Ada, the same name can be used for different kinds of entity |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
288 (e.g.@:, for a procedure and for a function). Also, for things like |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
289 packages, procedures and functions, there is the spec (i.e.@: the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
290 interface) and the body (i.e.@: the implementation). To make it |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
291 easier to pick the definition you want, Ada tag name have suffixes |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
292 indicating the type of entity: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
293 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
294 @table @samp |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
295 @item /b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
296 package body. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
297 @item /f |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
298 function. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
299 @item /k |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
300 task. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
301 @item /p |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
302 procedure. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
303 @item /s |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
304 package spec. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
305 @item /t |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
306 type. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
307 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
308 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
309 Thus, @kbd{M-x find-tag @key{RET} bidule/b @key{RET}} will go |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
310 directly to the body of the package @code{bidule}, while @kbd{M-x |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
311 find-tag @key{RET} bidule @key{RET}} will just search for any tag |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
312 @code{bidule}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
313 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
314 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
315 In assembler code, labels appearing at the beginning of a line, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
316 followed by a colon, are tags. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
317 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
318 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
319 In Bison or Yacc input files, each rule defines as a tag the nonterminal |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
320 it constructs. The portions of the file that contain C code are parsed |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
321 as C code. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
322 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
323 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
324 In Cobol code, tags are paragraph names; that is, any word starting in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
325 column 8 and followed by a period. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
326 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
327 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
328 In Erlang code, the tags are the functions, records, and macros defined |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
329 in the file. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
330 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
331 @item |
39267 | 332 In Fortran code, functions, subroutines and block data are tags. |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
333 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
334 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
335 In makefiles, targets are tags. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
336 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
337 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
338 In Objective C code, tags include Objective C definitions for classes, |
42342 | 339 class categories, methods, and protocols. Tags for variables and |
340 functions in classes are named @samp{@var{class}::@var{variable}} and | |
341 @samp{@var{class}::@var{function}}. | |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
342 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
343 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
344 In Pascal code, the tags are the functions and procedures defined in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
345 the file. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
346 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
347 @item |
42342 | 348 In Perl code, the tags are the packages, subroutines and variables |
349 defined by the @code{package}, @code{sub}, @code{my} and @code{local} | |
350 keywords. Use @samp{--globals} if you want to tag global variables. | |
351 Tags for subroutines are named @samp{@var{package}::@var{sub}}. The | |
352 name for subroutines defined in the default package is | |
353 @samp{main::@var{sub}}. | |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
354 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
355 @item |
42043
0fe5fe39786c
Etags changes for Prolog and PHP.
Francesco Potortì <pot@gnu.org>
parents:
41864
diff
changeset
|
356 In PHP code, tags are functions, classes and defines. When using the |
0fe5fe39786c
Etags changes for Prolog and PHP.
Francesco Potortì <pot@gnu.org>
parents:
41864
diff
changeset
|
357 @samp{--members} option, vars are tags too. |
0fe5fe39786c
Etags changes for Prolog and PHP.
Francesco Potortì <pot@gnu.org>
parents:
41864
diff
changeset
|
358 |
0fe5fe39786c
Etags changes for Prolog and PHP.
Francesco Potortì <pot@gnu.org>
parents:
41864
diff
changeset
|
359 @item |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
360 In PostScript code, the tags are the functions. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
361 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
362 @item |
42043
0fe5fe39786c
Etags changes for Prolog and PHP.
Francesco Potortì <pot@gnu.org>
parents:
41864
diff
changeset
|
363 In Prolog code, tags are predicates and rules at the beginning of |
0fe5fe39786c
Etags changes for Prolog and PHP.
Francesco Potortì <pot@gnu.org>
parents:
41864
diff
changeset
|
364 line. |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
365 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
366 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
367 In Python code, @code{def} or @code{class} at the beginning of a line |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
368 generate a tag. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
369 @end itemize |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
370 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
371 You can also generate tags based on regexp matching (@pxref{Etags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
372 Regexps}) to handle other formats and languages. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
373 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
374 @node Create Tags Table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
375 @subsection Creating Tags Tables |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
376 @cindex @code{etags} program |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
377 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
378 The @code{etags} program is used to create a tags table file. It knows |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
379 the syntax of several languages, as described in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
380 @iftex |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
381 the previous section. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
382 @end iftex |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
383 @ifinfo |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
384 @ref{Tag Syntax}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
385 @end ifinfo |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
386 Here is how to run @code{etags}: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
387 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
388 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
389 etags @var{inputfiles}@dots{} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
390 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
391 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
392 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
393 The @code{etags} program reads the specified files, and writes a tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
394 table named @file{TAGS} in the current working directory. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
395 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
396 If the specified files don't exist, @code{etags} looks for |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
397 compressed versions of them and uncompresses them to read them. Under |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
398 MS-DOS, @code{etags} also looks for file names like @file{mycode.cgz} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
399 if it is given @samp{mycode.c} on the command line and @file{mycode.c} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
400 does not exist. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
401 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
402 @code{etags} recognizes the language used in an input file based on |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
403 its file name and contents. You can specify the language with the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
404 @samp{--language=@var{name}} option, described below. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
405 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
406 If the tags table data become outdated due to changes in the files |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
407 described in the table, the way to update the tags table is the same |
38264
e781108d8f69
Clarify when it's good to update a tags table and why.
Richard M. Stallman <rms@gnu.org>
parents:
38261
diff
changeset
|
408 way it was made in the first place. If the tags table fails to record |
e781108d8f69
Clarify when it's good to update a tags table and why.
Richard M. Stallman <rms@gnu.org>
parents:
38261
diff
changeset
|
409 a tag, or records it for the wrong file, then Emacs cannot possibly |
e781108d8f69
Clarify when it's good to update a tags table and why.
Richard M. Stallman <rms@gnu.org>
parents:
38261
diff
changeset
|
410 find its definition until you update the tags table. However, if the |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
411 position recorded in the tags table becomes a little bit wrong (due to |
38264
e781108d8f69
Clarify when it's good to update a tags table and why.
Richard M. Stallman <rms@gnu.org>
parents:
38261
diff
changeset
|
412 other editing), the only consequence is a slight delay in finding the |
e781108d8f69
Clarify when it's good to update a tags table and why.
Richard M. Stallman <rms@gnu.org>
parents:
38261
diff
changeset
|
413 tag. Even if the stored position is very far wrong, Emacs will still |
e781108d8f69
Clarify when it's good to update a tags table and why.
Richard M. Stallman <rms@gnu.org>
parents:
38261
diff
changeset
|
414 find the tag, after searching most of the file for it. Even that |
e781108d8f69
Clarify when it's good to update a tags table and why.
Richard M. Stallman <rms@gnu.org>
parents:
38261
diff
changeset
|
415 delay is hardly noticeable with today's computers. |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
416 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
417 So you should update a tags table when you define new tags that you want |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
418 to have listed, or when you move tag definitions from one file to another, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
419 or when changes become substantial. Normally there is no need to update |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
420 the tags table after each edit, or even every day. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
421 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
422 One tags table can virtually include another. Specify the included |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
423 tags file name with the @samp{--include=@var{file}} option when |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
424 creating the file that is to include it. The latter file then acts as |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
425 if it covered all the source files specified in the included file, as |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
426 well as the files it directly contains. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
427 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
428 If you specify the source files with relative file names when you run |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
429 @code{etags}, the tags file will contain file names relative to the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
430 directory where the tags file was initially written. This way, you can |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
431 move an entire directory tree containing both the tags file and the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
432 source files, and the tags file will still refer correctly to the source |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
433 files. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
434 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
435 If you specify absolute file names as arguments to @code{etags}, then |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
436 the tags file will contain absolute file names. This way, the tags file |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
437 will still refer to the same files even if you move it, as long as the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
438 source files remain in the same place. Absolute file names start with |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
439 @samp{/}, or with @samp{@var{device}:/} on MS-DOS and MS-Windows. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
440 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
441 When you want to make a tags table from a great number of files, you |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
442 may have problems listing them on the command line, because some systems |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
443 have a limit on its length. The simplest way to circumvent this limit |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
444 is to tell @code{etags} to read the file names from its standard input, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
445 by typing a dash in place of the file names, like this: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
446 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
447 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
448 find . -name "*.[chCH]" -print | etags - |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
449 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
450 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
451 Use the option @samp{--language=@var{name}} to specify the language |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
452 explicitly. You can intermix these options with file names; each one |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
453 applies to the file names that follow it. Specify |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
454 @samp{--language=auto} to tell @code{etags} to resume guessing the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
455 language from the file names and file contents. Specify |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
456 @samp{--language=none} to turn off language-specific processing |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
457 entirely; then @code{etags} recognizes tags by regexp matching alone |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
458 (@pxref{Etags Regexps}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
459 |
45659
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
460 The option @samp{--parse-stdin=@var{file}} is mostly useful when |
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
461 calling @code{etags} from programs. It can be used (only once) in |
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
462 place of a file name on the command line. @code{Etags} will read from |
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
463 standard input and mark the produced tags as belonging to the file |
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
464 @var{file}. |
c1e620d6140c
Document --parse-stdin=FILE for Etags.
Francesco Potortì <pot@gnu.org>
parents:
43856
diff
changeset
|
465 |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
466 @samp{etags --help} prints the list of the languages @code{etags} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
467 knows, and the file name rules for guessing the language. It also prints |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
468 a list of all the available @code{etags} options, together with a short |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
469 explanation. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
470 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
471 @node Etags Regexps |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
472 @subsection Etags Regexps |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
473 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
474 The @samp{--regex} option provides a general way of recognizing tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
475 based on regexp matching. You can freely intermix it with file names. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
476 Each @samp{--regex} option adds to the preceding ones, and applies only |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
477 to the following files. The syntax is: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
478 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
479 @smallexample |
45801
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
480 --regex=[@var{@{language@}}]/@var{tagregexp}/[@var{nameregexp}/]@var{modifiers} |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
481 @end smallexample |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
482 |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
483 or else: |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
484 |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
485 @smallexample |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
486 --regex=@@@var{regexfile} |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
487 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
488 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
489 @noindent |
45801
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
490 where @var{tagregexp} is used to find the tags. It is always |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
491 anchored, that is, it behaves as if preceded by @samp{^}. If you want |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
492 to account for indentation, just match any initial number of blanks by |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
493 beginning your regular expression with @samp{[ \t]*}. In the regular |
45666
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
494 expressions, @samp{\} quotes the next character, and all the |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
495 @code{gcc} character escape sequences are supported. Here is the list |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
496 of the character escape sequences: |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
497 |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
498 @table @samp |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
499 @item \a |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
500 BEL (bell). |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
501 @item \b |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
502 BS (back space). |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
503 @item \d |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
504 DEL (delete). |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
505 @item \e |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
506 ESC (delete). |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
507 @item \f |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
508 FF (form feed). |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
509 @item \n |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
510 NL (new line). |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
511 @item \r |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
512 CR (carriage return). |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
513 @item \t |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
514 TAB (horizontal tab). |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
515 @item \v |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
516 VT (vertical tab). |
621742dde467
Document Etags regexp char escape sequences.
Francesco Potortì <pot@gnu.org>
parents:
45659
diff
changeset
|
517 @end table |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
518 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
519 The syntax of regular expressions in @code{etags} is the same as in |
45669
c8a6b0050bb0
Etags regexps support the same set of operators as in Emacs.
Francesco Potortì <pot@gnu.org>
parents:
45666
diff
changeset
|
520 Emacs. |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
521 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
522 You should not match more characters with @var{tagregexp} than that |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
523 needed to recognize what you want to tag. If the match is such that |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
524 more characters than needed are unavoidably matched by @var{tagregexp} |
45801
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
525 (as will sometimes be the case), you should add a @var{nameregexp}, to |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
526 pick out just the tag. This will enable Emacs to find tags more |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
527 accurately and to do completion on tag names more reliably. You can |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
528 find some examples below. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
529 |
45801
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
530 A @samp{--regex} option can be restricted to match only files of a |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
531 given language using the optional prefix @var{@{language@}}. This is |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
532 particularly useful when storing many predefined regular expressions |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
533 for @code{etags} in a file. |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
534 |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
535 The @var{modifiers} are a sequence of 0 or more characters that |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
536 modify the way @code{etags} does the matching. Without modifiers, |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
537 each regexp is applied sequentially to each line of the input file, in |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
538 a case-sensitive way. The modifiers and their meanings are: |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
539 |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
540 @table @samp |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
541 @item i |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
542 ignore case when matching. |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
543 @item m |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
544 do not match line by line; rather, match the whole file, so that |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
545 multi-line matches are possible. |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
546 @item s |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
547 implies @samp{m}, and causes dots in @var{tagregexp} to match newlines |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
548 as well. |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
549 @end table |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
550 |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
551 A @var{regexfile} is the name of a file where regular expressions |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
552 are stored, one per line. Lines beginning with space or tab are |
0cbd872ef18b
New multi-line regexp and new regexp syntax.
Francesco Potortì <pot@gnu.org>
parents:
45669
diff
changeset
|
553 ignored, and can be used for adding comments. |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
554 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
555 The @samp{-R} option deletes all the regexps defined with |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
556 @samp{--regex} options. It applies to the file names following it, as |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
557 you can see from the following example: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
558 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
559 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
560 etags --regex=/@var{reg1}/ voo.doo --regex=/@var{reg2}/ \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
561 bar.ber -R --lang=lisp los.er |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
562 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
563 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
564 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
565 Here @code{etags} chooses the parsing language for @file{voo.doo} and |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
566 @file{bar.ber} according to their contents. @code{etags} also uses |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
567 @var{reg1} to recognize additional tags in @file{voo.doo}, and both |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
568 @var{reg1} and @var{reg2} to recognize additional tags in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
569 @file{bar.ber}. @code{etags} uses the Lisp tags rules, and no regexp |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
570 matching, to recognize tags in @file{los.er}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
571 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
572 You can specify a regular expression for a particular language, by |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
573 writing @samp{@{lang@}} in front of it. Then @code{etags} will use |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
574 the regular expression only for files of that language. (@samp{etags |
39267 | 575 --help} prints the list of languages recognized by @code{etags}.) The |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
576 following example tags the @code{DEFVAR} macros in the Emacs source |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
577 files, for the C language only: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
578 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
579 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
580 --regex='@{c@}/[ \t]*DEFVAR_[A-Z_ \t(]+"\([^"]+\)"/' |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
581 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
582 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
583 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
584 This feature is particularly useful when you store a list of regular |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
585 expressions in a file. The following option syntax instructs |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
586 @code{etags} to read two files of regular expressions. The regular |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
587 expressions contained in the second file are matched without regard to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
588 case. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
589 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
590 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
591 --regex=@@first-file --ignore-case-regex=@@second-file |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
592 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
593 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
594 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
595 A regex file contains one regular expressions per line. Empty lines, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
596 and lines beginning with space or tab are ignored. When the first |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
597 character in a line is @samp{@@}, @code{etags} assumes that the rest |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
598 of the line is the name of a file of regular expressions; thus, one |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
599 such file can include another file. All the other lines are taken to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
600 be regular expressions. If the first non-whitespace text on the line |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
601 is @samp{--}, that line is a comment. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
602 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
603 For example, one can create a file called @samp{emacs.tags} with the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
604 following contents: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
605 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
606 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
607 -- This is for GNU Emacs C source files |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
608 @{c@}/[ \t]*DEFVAR_[A-Z_ \t(]+"\([^"]+\)"/\1/ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
609 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
610 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
611 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
612 and then use it like this: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
613 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
614 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
615 etags --regex=@@emacs.tags *.[ch] */*.[ch] |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
616 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
617 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
618 Here are some more examples. The regexps are quoted to protect them |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
619 from shell interpretation. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
620 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
621 @itemize @bullet |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
622 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
623 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
624 Tag Octave files: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
625 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
626 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
627 etags --language=none \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
628 --regex='/[ \t]*function.*=[ \t]*\([^ \t]*\)[ \t]*(/\1/' \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
629 --regex='/###key \(.*\)/\1/' \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
630 --regex='/[ \t]*global[ \t].*/' \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
631 *.m |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
632 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
633 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
634 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
635 Note that tags are not generated for scripts, so that you have to add |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
636 a line by yourself of the form @samp{###key @var{scriptname}} if you |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
637 want to jump to it. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
638 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
639 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
640 Tag Tcl files: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
641 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
642 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
643 etags --language=none --regex='/proc[ \t]+\([^ \t]+\)/\1/' *.tcl |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
644 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
645 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
646 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
647 Tag VHDL files: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
648 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
649 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
650 etags --language=none \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
651 --regex='/[ \t]*\(ARCHITECTURE\|CONFIGURATION\) +[^ ]* +OF/' \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
652 --regex='/[ \t]*\(ATTRIBUTE\|ENTITY\|FUNCTION\|PACKAGE\ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
653 \( BODY\)?\|PROCEDURE\|PROCESS\|TYPE\)[ \t]+\([^ \t(]+\)/\3/' |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
654 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
655 @end itemize |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
656 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
657 @node Select Tags Table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
658 @subsection Selecting a Tags Table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
659 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
660 @vindex tags-file-name |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
661 @findex visit-tags-table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
662 Emacs has at any time one @dfn{selected} tags table, and all the commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
663 for working with tags tables use the selected one. To select a tags table, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
664 type @kbd{M-x visit-tags-table}, which reads the tags table file name as an |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
665 argument. The name @file{TAGS} in the default directory is used as the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
666 default file name. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
667 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
668 All this command does is store the file name in the variable |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
669 @code{tags-file-name}. Emacs does not actually read in the tags table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
670 contents until you try to use them. Setting this variable yourself is just |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
671 as good as using @code{visit-tags-table}. The variable's initial value is |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
672 @code{nil}; that value tells all the commands for working with tags tables |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
673 that they must ask for a tags table file name to use. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
674 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
675 Using @code{visit-tags-table} when a tags table is already loaded |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
676 gives you a choice: you can add the new tags table to the current list |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
677 of tags tables, or start a new list. The tags commands use all the tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
678 tables in the current list. If you start a new list, the new tags table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
679 is used @emph{instead} of others. If you add the new table to the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
680 current list, it is used @emph{as well as} the others. When the tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
681 commands scan the list of tags tables, they don't always start at the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
682 beginning of the list; they start with the first tags table (if any) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
683 that describes the current file, proceed from there to the end of the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
684 list, and then scan from the beginning of the list until they have |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
685 covered all the tables in the list. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
686 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
687 @vindex tags-table-list |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
688 You can specify a precise list of tags tables by setting the variable |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
689 @code{tags-table-list} to a list of strings, like this: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
690 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
691 @c keep this on two lines for formatting in smallbook |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
692 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
693 @group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
694 (setq tags-table-list |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
695 '("~/emacs" "/usr/local/lib/emacs/src")) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
696 @end group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
697 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
698 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
699 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
700 This tells the tags commands to look at the @file{TAGS} files in your |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
701 @file{~/emacs} directory and in the @file{/usr/local/lib/emacs/src} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
702 directory. The order depends on which file you are in and which tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
703 table mentions that file, as explained above. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
704 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
705 Do not set both @code{tags-file-name} and @code{tags-table-list}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
706 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
707 @node Find Tag |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
708 @subsection Finding a Tag |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
709 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
710 The most important thing that a tags table enables you to do is to find |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
711 the definition of a specific tag. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
712 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
713 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
714 @item M-.@: @var{tag} @key{RET} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
715 Find first definition of @var{tag} (@code{find-tag}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
716 @item C-u M-. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
717 Find next alternate definition of last tag specified. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
718 @item C-u - M-. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
719 Go back to previous tag found. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
720 @item C-M-. @var{pattern} @key{RET} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
721 Find a tag whose name matches @var{pattern} (@code{find-tag-regexp}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
722 @item C-u C-M-. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
723 Find the next tag whose name matches the last pattern used. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
724 @item C-x 4 .@: @var{tag} @key{RET} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
725 Find first definition of @var{tag}, but display it in another window |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
726 (@code{find-tag-other-window}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
727 @item C-x 5 .@: @var{tag} @key{RET} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
728 Find first definition of @var{tag}, and create a new frame to select the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
729 buffer (@code{find-tag-other-frame}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
730 @item M-* |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
731 Pop back to where you previously invoked @kbd{M-.} and friends. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
732 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
733 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
734 @kindex M-. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
735 @findex find-tag |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
736 @kbd{M-.}@: (@code{find-tag}) is the command to find the definition of |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
737 a specified tag. It searches through the tags table for that tag, as a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
738 string, and then uses the tags table info to determine the file that the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
739 definition is in and the approximate character position in the file of |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
740 the definition. Then @code{find-tag} visits that file, moves point to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
741 the approximate character position, and searches ever-increasing |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
742 distances away to find the tag definition. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
743 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
744 If an empty argument is given (just type @key{RET}), the balanced |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
745 expression in the buffer before or around point is used as the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
746 @var{tag} argument. @xref{Expressions}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
747 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
748 You don't need to give @kbd{M-.} the full name of the tag; a part |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
749 will do. This is because @kbd{M-.} finds tags in the table which |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
750 contain @var{tag} as a substring. However, it prefers an exact match |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
751 to a substring match. To find other tags that match the same |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
752 substring, give @code{find-tag} a numeric argument, as in @kbd{C-u |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
753 M-.}; this does not read a tag name, but continues searching the tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
754 table's text for another tag containing the same substring last used. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
755 If you have a real @key{META} key, @kbd{M-0 M-.}@: is an easier |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
756 alternative to @kbd{C-u M-.}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
757 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
758 @kindex C-x 4 . |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
759 @findex find-tag-other-window |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
760 @kindex C-x 5 . |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
761 @findex find-tag-other-frame |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
762 Like most commands that can switch buffers, @code{find-tag} has a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
763 variant that displays the new buffer in another window, and one that |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
764 makes a new frame for it. The former is @kbd{C-x 4 .}, which invokes |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
765 the command @code{find-tag-other-window}. The latter is @kbd{C-x 5 .}, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
766 which invokes @code{find-tag-other-frame}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
767 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
768 To move back to places you've found tags recently, use @kbd{C-u - |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
769 M-.}; more generally, @kbd{M-.} with a negative numeric argument. This |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
770 command can take you to another buffer. @kbd{C-x 4 .} with a negative |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
771 argument finds the previous tag location in another window. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
772 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
773 @kindex M-* |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
774 @findex pop-tag-mark |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
775 @vindex find-tag-marker-ring-length |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
776 As well as going back to places you've found tags recently, you can go |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
777 back to places @emph{from where} you found them. Use @kbd{M-*}, which |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
778 invokes the command @code{pop-tag-mark}, for this. Typically you would |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
779 find and study the definition of something with @kbd{M-.} and then |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
780 return to where you were with @kbd{M-*}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
781 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
782 Both @kbd{C-u - M-.} and @kbd{M-*} allow you to retrace your steps to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
783 a depth determined by the variable @code{find-tag-marker-ring-length}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
784 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
785 @findex find-tag-regexp |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
786 @kindex C-M-. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
787 The command @kbd{C-M-.} (@code{find-tag-regexp}) visits the tags that |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
788 match a specified regular expression. It is just like @kbd{M-.} except |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
789 that it does regexp matching instead of substring matching. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
790 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
791 @node Tags Search |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
792 @subsection Searching and Replacing with Tags Tables |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
793 @cindex search and replace in multiple files |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
794 @cindex multiple-file search and replace |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
795 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
796 The commands in this section visit and search all the files listed in the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
797 selected tags table, one by one. For these commands, the tags table serves |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
798 only to specify a sequence of files to search. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
799 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
800 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
801 @item M-x tags-search @key{RET} @var{regexp} @key{RET} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
802 Search for @var{regexp} through the files in the selected tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
803 table. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
804 @item M-x tags-query-replace @key{RET} @var{regexp} @key{RET} @var{replacement} @key{RET} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
805 Perform a @code{query-replace-regexp} on each file in the selected tags table. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
806 @item M-, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
807 Restart one of the commands above, from the current location of point |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
808 (@code{tags-loop-continue}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
809 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
810 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
811 @findex tags-search |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
812 @kbd{M-x tags-search} reads a regexp using the minibuffer, then |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
813 searches for matches in all the files in the selected tags table, one |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
814 file at a time. It displays the name of the file being searched so you |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
815 can follow its progress. As soon as it finds an occurrence, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
816 @code{tags-search} returns. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
817 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
818 @kindex M-, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
819 @findex tags-loop-continue |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
820 Having found one match, you probably want to find all the rest. To find |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
821 one more match, type @kbd{M-,} (@code{tags-loop-continue}) to resume the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
822 @code{tags-search}. This searches the rest of the current buffer, followed |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
823 by the remaining files of the tags table.@refill |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
824 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
825 @findex tags-query-replace |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
826 @kbd{M-x tags-query-replace} performs a single |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
827 @code{query-replace-regexp} through all the files in the tags table. It |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
828 reads a regexp to search for and a string to replace with, just like |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
829 ordinary @kbd{M-x query-replace-regexp}. It searches much like @kbd{M-x |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
830 tags-search}, but repeatedly, processing matches according to your |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
831 input. @xref{Replace}, for more information on query replace. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
832 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
833 @vindex tags-case-fold-search |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
834 @cindex case-sensitivity and tags search |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
835 You can control the case-sensitivity of tags search commands by |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
836 customizing the value of the variable @code{tags-case-fold-search}. The |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
837 default is to use the same setting as the value of |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
838 @code{case-fold-search} (@pxref{Search Case}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
839 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
840 It is possible to get through all the files in the tags table with a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
841 single invocation of @kbd{M-x tags-query-replace}. But often it is |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
842 useful to exit temporarily, which you can do with any input event that |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
843 has no special query replace meaning. You can resume the query replace |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
844 subsequently by typing @kbd{M-,}; this command resumes the last tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
845 search or replace command that you did. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
846 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
847 The commands in this section carry out much broader searches than the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
848 @code{find-tag} family. The @code{find-tag} commands search only for |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
849 definitions of tags that match your substring or regexp. The commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
850 @code{tags-search} and @code{tags-query-replace} find every occurrence |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
851 of the regexp, as ordinary search commands and replace commands do in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
852 the current buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
853 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
854 These commands create buffers only temporarily for the files that they |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
855 have to search (those which are not already visited in Emacs buffers). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
856 Buffers in which no match is found are quickly killed; the others |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
857 continue to exist. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
858 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
859 It may have struck you that @code{tags-search} is a lot like |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
860 @code{grep}. You can also run @code{grep} itself as an inferior of |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
861 Emacs and have Emacs show you the matching lines one by one. This works |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
862 much like running a compilation; finding the source locations of the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
863 @code{grep} matches works like finding the compilation errors. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
864 @xref{Compilation}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
865 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
866 @node List Tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
867 @subsection Tags Table Inquiries |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
868 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
869 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
870 @item M-x list-tags @key{RET} @var{file} @key{RET} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
871 Display a list of the tags defined in the program file @var{file}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
872 @item M-x tags-apropos @key{RET} @var{regexp} @key{RET} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
873 Display a list of all tags matching @var{regexp}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
874 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
875 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
876 @findex list-tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
877 @kbd{M-x list-tags} reads the name of one of the files described by |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
878 the selected tags table, and displays a list of all the tags defined in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
879 that file. The ``file name'' argument is really just a string to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
880 compare against the file names recorded in the tags table; it is read as |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
881 a string rather than as a file name. Therefore, completion and |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
882 defaulting are not available, and you must enter the file name the same |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
883 way it appears in the tags table. Do not include a directory as part of |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
884 the file name unless the file name recorded in the tags table includes a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
885 directory. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
886 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
887 @findex tags-apropos |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
888 @vindex tags-apropos-verbose |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
889 @kbd{M-x tags-apropos} is like @code{apropos} for tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
890 (@pxref{Apropos}). It finds all the tags in the selected tags table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
891 whose entries match @var{regexp}, and displays them. If the variable |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
892 @code{tags-apropos-verbose} is non-@code{nil}, it displays the names |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
893 of the tags files together with the tag names. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
894 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
895 @vindex tags-tag-face |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
896 @vindex tags-apropos-additional-actions |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
897 You can customize the appearance of the output with the face |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
898 @code{tags-tag-face}. You can display additional output with @kbd{M-x |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
899 tags-apropos} by customizing the variable |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
900 @code{tags-apropos-additional-actions}---see its documentation for |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
901 details. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
902 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
903 You can also use the collection of tag names to complete a symbol |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
904 name in the buffer. @xref{Symbol Completion}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
905 |
38211
5ef494421061
Fix mistakes in @node Emerge.
Richard M. Stallman <rms@gnu.org>
parents:
38198
diff
changeset
|
906 @node Emerge |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
907 @section Merging Files with Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
908 @cindex Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
909 @cindex merging files |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
910 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
911 It's not unusual for programmers to get their signals crossed and modify |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
912 the same program in two different directions. To recover from this |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
913 confusion, you need to merge the two versions. Emerge makes this |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
914 easier. See also @ref{Comparing Files}, for commands to compare |
41864
16dc446b245f
Don't omit first argument of @ref.
Andreas Schwab <schwab@suse.de>
parents:
40792
diff
changeset
|
915 in a more manual fashion, and @ref{Top, Ediff,, ediff, The Ediff Manual}. |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
916 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
917 @menu |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
918 * Overview of Emerge:: How to start Emerge. Basic concepts. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
919 * Submodes of Emerge:: Fast mode vs. Edit mode. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
920 Skip Prefers mode and Auto Advance mode. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
921 * State of Difference:: You do the merge by specifying state A or B |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
922 for each difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
923 * Merge Commands:: Commands for selecting a difference, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
924 changing states of differences, etc. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
925 * Exiting Emerge:: What to do when you've finished the merge. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
926 * Combining in Emerge:: How to keep both alternatives for a difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
927 * Fine Points of Emerge:: Misc. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
928 @end menu |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
929 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
930 @node Overview of Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
931 @subsection Overview of Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
932 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
933 To start Emerge, run one of these four commands: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
934 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
935 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
936 @item M-x emerge-files |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
937 @findex emerge-files |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
938 Merge two specified files. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
939 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
940 @item M-x emerge-files-with-ancestor |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
941 @findex emerge-files-with-ancestor |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
942 Merge two specified files, with reference to a common ancestor. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
943 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
944 @item M-x emerge-buffers |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
945 @findex emerge-buffers |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
946 Merge two buffers. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
947 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
948 @item M-x emerge-buffers-with-ancestor |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
949 @findex emerge-buffers-with-ancestor |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
950 Merge two buffers with reference to a common ancestor in a third |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
951 buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
952 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
953 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
954 @cindex merge buffer (Emerge) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
955 @cindex A and B buffers (Emerge) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
956 The Emerge commands compare two files or buffers, and display the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
957 comparison in three buffers: one for each input text (the @dfn{A buffer} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
958 and the @dfn{B buffer}), and one (the @dfn{merge buffer}) where merging |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
959 takes place. The merge buffer shows the full merged text, not just the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
960 differences. Wherever the two input texts differ, you can choose which |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
961 one of them to include in the merge buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
962 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
963 The Emerge commands that take input from existing buffers use only the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
964 accessible portions of those buffers, if they are narrowed |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
965 (@pxref{Narrowing}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
966 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
967 If a common ancestor version is available, from which the two texts to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
968 be merged were both derived, Emerge can use it to guess which |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
969 alternative is right. Wherever one current version agrees with the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
970 ancestor, Emerge presumes that the other current version is a deliberate |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
971 change which should be kept in the merged version. Use the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
972 @samp{with-ancestor} commands if you want to specify a common ancestor |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
973 text. These commands read three file or buffer names---variant A, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
974 variant B, and the common ancestor. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
975 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
976 After the comparison is done and the buffers are prepared, the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
977 interactive merging starts. You control the merging by typing special |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
978 @dfn{merge commands} in the merge buffer. The merge buffer shows you a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
979 full merged text, not just differences. For each run of differences |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
980 between the input texts, you can choose which one of them to keep, or |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
981 edit them both together. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
982 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
983 The merge buffer uses a special major mode, Emerge mode, with commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
984 for making these choices. But you can also edit the buffer with |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
985 ordinary Emacs commands. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
986 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
987 At any given time, the attention of Emerge is focused on one |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
988 particular difference, called the @dfn{selected} difference. This |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
989 difference is marked off in the three buffers like this: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
990 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
991 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
992 vvvvvvvvvvvvvvvvvvvv |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
993 @var{text that differs} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
994 ^^^^^^^^^^^^^^^^^^^^ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
995 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
996 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
997 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
998 Emerge numbers all the differences sequentially and the mode |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
999 line always shows the number of the selected difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1000 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1001 Normally, the merge buffer starts out with the A version of the text. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1002 But when the A version of a difference agrees with the common ancestor, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1003 then the B version is initially preferred for that difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1004 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1005 Emerge leaves the merged text in the merge buffer when you exit. At |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1006 that point, you can save it in a file with @kbd{C-x C-w}. If you give a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1007 numeric argument to @code{emerge-files} or |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1008 @code{emerge-files-with-ancestor}, it reads the name of the output file |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1009 using the minibuffer. (This is the last file name those commands read.) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1010 Then exiting from Emerge saves the merged text in the output file. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1011 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1012 Normally, Emerge commands save the output buffer in its file when you |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1013 exit. If you abort Emerge with @kbd{C-]}, the Emerge command does not |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1014 save the output buffer, but you can save it yourself if you wish. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1015 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1016 @node Submodes of Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1017 @subsection Submodes of Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1018 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1019 You can choose between two modes for giving merge commands: Fast mode |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1020 and Edit mode. In Fast mode, basic merge commands are single |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1021 characters, but ordinary Emacs commands are disabled. This is |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1022 convenient if you use only merge commands. In Edit mode, all merge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1023 commands start with the prefix key @kbd{C-c C-c}, and the normal Emacs |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1024 commands are also available. This allows editing the merge buffer, but |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1025 slows down Emerge operations. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1026 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1027 Use @kbd{e} to switch to Edit mode, and @kbd{C-c C-c f} to switch to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1028 Fast mode. The mode line indicates Edit and Fast modes with @samp{E} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1029 and @samp{F}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1030 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1031 Emerge has two additional submodes that affect how particular merge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1032 commands work: Auto Advance mode and Skip Prefers mode. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1033 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1034 If Auto Advance mode is in effect, the @kbd{a} and @kbd{b} commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1035 advance to the next difference. This lets you go through the merge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1036 faster as long as you simply choose one of the alternatives from the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1037 input. The mode line indicates Auto Advance mode with @samp{A}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1038 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1039 If Skip Prefers mode is in effect, the @kbd{n} and @kbd{p} commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1040 skip over differences in states prefer-A and prefer-B (@pxref{State of |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1041 Difference}). Thus you see only differences for which neither version |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1042 is presumed ``correct.'' The mode line indicates Skip Prefers mode with |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1043 @samp{S}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1044 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1045 @findex emerge-auto-advance-mode |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1046 @findex emerge-skip-prefers-mode |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1047 Use the command @kbd{s a} (@code{emerge-auto-advance-mode}) to set or |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1048 clear Auto Advance mode. Use @kbd{s s} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1049 (@code{emerge-skip-prefers-mode}) to set or clear Skip Prefers mode. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1050 These commands turn on the mode with a positive argument, turns it off |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1051 with a negative or zero argument, and toggle the mode with no argument. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1052 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1053 @node State of Difference |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1054 @subsection State of a Difference |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1055 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1056 In the merge buffer, a difference is marked with lines of @samp{v} and |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1057 @samp{^} characters. Each difference has one of these seven states: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1058 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1059 @table @asis |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1060 @item A |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1061 The difference is showing the A version. The @kbd{a} command always |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1062 produces this state; the mode line indicates it with @samp{A}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1063 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1064 @item B |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1065 The difference is showing the B version. The @kbd{b} command always |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1066 produces this state; the mode line indicates it with @samp{B}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1067 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1068 @item default-A |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1069 @itemx default-B |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1070 The difference is showing the A or the B state by default, because you |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1071 haven't made a choice. All differences start in the default-A state |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1072 (and thus the merge buffer is a copy of the A buffer), except those for |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1073 which one alternative is ``preferred'' (see below). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1074 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1075 When you select a difference, its state changes from default-A or |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1076 default-B to plain A or B. Thus, the selected difference never has |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1077 state default-A or default-B, and these states are never displayed in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1078 the mode line. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1079 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1080 The command @kbd{d a} chooses default-A as the default state, and @kbd{d |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1081 b} chooses default-B. This chosen default applies to all differences |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1082 which you haven't ever selected and for which no alternative is preferred. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1083 If you are moving through the merge sequentially, the differences you |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1084 haven't selected are those following the selected one. Thus, while |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1085 moving sequentially, you can effectively make the A version the default |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1086 for some sections of the merge buffer and the B version the default for |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1087 others by using @kbd{d a} and @kbd{d b} between sections. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1088 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1089 @item prefer-A |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1090 @itemx prefer-B |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1091 The difference is showing the A or B state because it is |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1092 @dfn{preferred}. This means that you haven't made an explicit choice, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1093 but one alternative seems likely to be right because the other |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1094 alternative agrees with the common ancestor. Thus, where the A buffer |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1095 agrees with the common ancestor, the B version is preferred, because |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1096 chances are it is the one that was actually changed. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1097 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1098 These two states are displayed in the mode line as @samp{A*} and @samp{B*}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1099 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1100 @item combined |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1101 The difference is showing a combination of the A and B states, as a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1102 result of the @kbd{x c} or @kbd{x C} commands. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1103 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1104 Once a difference is in this state, the @kbd{a} and @kbd{b} commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1105 don't do anything to it unless you give them a numeric argument. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1106 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1107 The mode line displays this state as @samp{comb}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1108 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1109 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1110 @node Merge Commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1111 @subsection Merge Commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1112 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1113 Here are the Merge commands for Fast mode; in Edit mode, precede them |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1114 with @kbd{C-c C-c}: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1115 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1116 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1117 @item p |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1118 Select the previous difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1119 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1120 @item n |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1121 Select the next difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1122 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1123 @item a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1124 Choose the A version of this difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1125 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1126 @item b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1127 Choose the B version of this difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1128 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1129 @item C-u @var{n} j |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1130 Select difference number @var{n}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1131 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1132 @item . |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1133 Select the difference containing point. You can use this command in the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1134 merge buffer or in the A or B buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1135 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1136 @item q |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1137 Quit---finish the merge. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1138 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1139 @item C-] |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1140 Abort---exit merging and do not save the output. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1141 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1142 @item f |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1143 Go into Fast mode. (In Edit mode, this is actually @kbd{C-c C-c f}.) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1144 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1145 @item e |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1146 Go into Edit mode. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1147 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1148 @item l |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1149 Recenter (like @kbd{C-l}) all three windows. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1150 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1151 @item - |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1152 Specify part of a prefix numeric argument. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1153 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1154 @item @var{digit} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1155 Also specify part of a prefix numeric argument. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1156 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1157 @item d a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1158 Choose the A version as the default from here down in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1159 the merge buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1160 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1161 @item d b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1162 Choose the B version as the default from here down in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1163 the merge buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1164 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1165 @item c a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1166 Copy the A version of this difference into the kill ring. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1167 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1168 @item c b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1169 Copy the B version of this difference into the kill ring. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1170 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1171 @item i a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1172 Insert the A version of this difference at point. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1173 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1174 @item i b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1175 Insert the B version of this difference at point. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1176 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1177 @item m |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1178 Put point and mark around the difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1179 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1180 @item ^ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1181 Scroll all three windows down (like @kbd{M-v}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1182 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1183 @item v |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1184 Scroll all three windows up (like @kbd{C-v}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1185 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1186 @item < |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1187 Scroll all three windows left (like @kbd{C-x <}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1188 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1189 @item > |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1190 Scroll all three windows right (like @kbd{C-x >}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1191 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1192 @item | |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1193 Reset horizontal scroll on all three windows. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1194 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1195 @item x 1 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1196 Shrink the merge window to one line. (Use @kbd{C-u l} to restore it |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1197 to full size.) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1198 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1199 @item x c |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1200 Combine the two versions of this difference (@pxref{Combining in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1201 Emerge}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1202 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1203 @item x f |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1204 Show the names of the files/buffers Emerge is operating on, in a Help |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1205 window. (Use @kbd{C-u l} to restore windows.) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1206 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1207 @item x j |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1208 Join this difference with the following one. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1209 (@kbd{C-u x j} joins this difference with the previous one.) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1210 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1211 @item x s |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1212 Split this difference into two differences. Before you use this |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1213 command, position point in each of the three buffers at the place where |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1214 you want to split the difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1215 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1216 @item x t |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1217 Trim identical lines off the top and bottom of the difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1218 Such lines occur when the A and B versions are |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1219 identical but differ from the ancestor version. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1220 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1221 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1222 @node Exiting Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1223 @subsection Exiting Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1224 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1225 The @kbd{q} command (@code{emerge-quit}) finishes the merge, storing |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1226 the results into the output file if you specified one. It restores the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1227 A and B buffers to their proper contents, or kills them if they were |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1228 created by Emerge and you haven't changed them. It also disables the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1229 Emerge commands in the merge buffer, since executing them later could |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1230 damage the contents of the various buffers. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1231 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1232 @kbd{C-]} aborts the merge. This means exiting without writing the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1233 output file. If you didn't specify an output file, then there is no |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1234 real difference between aborting and finishing the merge. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1235 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1236 If the Emerge command was called from another Lisp program, then its |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1237 return value is @code{t} for successful completion, or @code{nil} if you |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1238 abort. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1239 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1240 @node Combining in Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1241 @subsection Combining the Two Versions |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1242 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1243 Sometimes you want to keep @emph{both} alternatives for a particular |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1244 difference. To do this, use @kbd{x c}, which edits the merge buffer |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1245 like this: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1246 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1247 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1248 @group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1249 #ifdef NEW |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1250 @var{version from A buffer} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1251 #else /* not NEW */ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1252 @var{version from B buffer} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1253 #endif /* not NEW */ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1254 @end group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1255 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1256 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1257 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1258 @vindex emerge-combine-versions-template |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1259 While this example shows C preprocessor conditionals delimiting the two |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1260 alternative versions, you can specify the strings to use by setting |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1261 the variable @code{emerge-combine-versions-template} to a string of your |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1262 choice. In the string, @samp{%a} says where to put version A, and |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1263 @samp{%b} says where to put version B. The default setting, which |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1264 produces the results shown above, looks like this: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1265 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1266 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1267 @group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1268 "#ifdef NEW\n%a#else /* not NEW */\n%b#endif /* not NEW */\n" |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1269 @end group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1270 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1271 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1272 @node Fine Points of Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1273 @subsection Fine Points of Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1274 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1275 During the merge, you mustn't try to edit the A and B buffers yourself. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1276 Emerge modifies them temporarily, but ultimately puts them back the way |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1277 they were. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1278 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1279 You can have any number of merges going at once---just don't use any one |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1280 buffer as input to more than one merge at once, since the temporary |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1281 changes made in these buffers would get in each other's way. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1282 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1283 Starting Emerge can take a long time because it needs to compare the |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1284 files fully. Emacs can't do anything else until @code{diff} finishes. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1285 Perhaps in the future someone will change Emerge to do the comparison in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1286 the background when the input files are large---then you could keep on |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1287 doing other things with Emacs until Emerge is ready to accept |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1288 commands. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1289 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1290 @vindex emerge-startup-hook |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1291 After setting up the merge, Emerge runs the hook |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1292 @code{emerge-startup-hook} (@pxref{Hooks}). |