Mercurial > emacs
annotate man/maintaining.texi @ 40926:14c471312660
(checkdoc-file-comments-engine):
Turn off error in some re-search-forward calls.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 11 Nov 2001 20:06:58 +0000 |
parents | 7ea12eee7004 |
children | 16dc446b245f |
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 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
182 file that the tag is defined in (implicitly), and the position in that file |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
183 of the tag's definition. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
184 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
185 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
|
186 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
|
187 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
|
188 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
|
189 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
|
190 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
191 @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
|
192 @cindex tags, C++ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
193 @cindex class browser, C++ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
194 @cindex Ebrowse |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
195 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
|
196 @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
|
197 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
198 @menu |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
199 * 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
|
200 * 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
|
201 * 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
|
202 * 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
|
203 * 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
|
204 * 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
|
205 * 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
|
206 @end menu |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
207 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
208 @node Tag Syntax |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
209 @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
|
210 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
211 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
|
212 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
213 @itemize @bullet |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
214 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
215 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
|
216 @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
|
217 @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
|
218 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
|
219 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
|
220 @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
|
221 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
|
222 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
223 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
|
224 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
|
225 @code{etags}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
226 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
227 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
228 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
|
229 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
|
230 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
|
231 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
|
232 @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
|
233 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
|
234 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
235 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
236 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
|
237 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
|
238 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
|
239 @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
|
240 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
241 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
242 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
|
243 @code{\section}, @code{\subsection}, @code{\subsubsection}, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
244 @code{\eqno}, @code{\label}, @code{\ref}, @code{\cite}, @code{\bibitem}, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
245 @code{\part}, @code{\appendix}, @code{\entry}, or @code{\index}, is a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
246 tag.@refill |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
247 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
248 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
|
249 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
|
250 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
|
251 command names. For example, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
252 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
253 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
254 TEXTAGS="def:newcommand:newenvironment" |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
255 export TEXTAGS |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
256 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
257 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
258 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
259 specifies (using Bourne shell syntax) that the commands @samp{\def}, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
260 @samp{\newcommand} and @samp{\newenvironment} also define tags. |
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 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
263 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
|
264 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
|
265 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
|
266 a tag. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
267 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
268 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
269 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
|
270 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
|
271 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
|
272 @end itemize |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
273 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
274 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
|
275 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
276 @itemize @bullet |
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 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
279 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
|
280 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
|
281 packages only. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
282 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
283 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
|
284 (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
|
285 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
|
286 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
|
287 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
|
288 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
|
289 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
290 @table @samp |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
291 @item /b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
292 package body. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
293 @item /f |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
294 function. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
295 @item /k |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
296 task. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
297 @item /p |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
298 procedure. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
299 @item /s |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
300 package spec. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
301 @item /t |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
302 type. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
303 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
304 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
305 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
|
306 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
|
307 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
|
308 @code{bidule}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
309 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
310 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
311 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
|
312 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
|
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 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
|
316 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
|
317 as C code. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
318 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
319 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
320 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
|
321 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
|
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 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
|
325 in the file. |
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 |
39267 | 328 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
|
329 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
330 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
331 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
|
332 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
333 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
334 In Objective C code, tags include Objective C definitions for classes, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
335 class categories, methods, and protocols. |
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 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
|
339 the file. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
340 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
341 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
342 In Perl code, the tags are the procedures defined by the @code{sub}, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
343 @code{my} and @code{local} keywords. Use @samp{--globals} if you want |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
344 to tag global variables. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
345 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
346 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
347 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
|
348 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
349 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
350 In Prolog code, a tag name appears at the left margin. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
351 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
352 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
353 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
|
354 generate a tag. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
355 @end itemize |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
356 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
357 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
|
358 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
|
359 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
360 @node Create Tags Table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
361 @subsection Creating Tags Tables |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
362 @cindex @code{etags} program |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
363 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
364 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
|
365 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
|
366 @iftex |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
367 the previous section. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
368 @end iftex |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
369 @ifinfo |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
370 @ref{Tag Syntax}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
371 @end ifinfo |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
372 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
|
373 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
374 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
375 etags @var{inputfiles}@dots{} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
376 @end example |
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 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
379 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
|
380 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
|
381 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
382 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
|
383 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
|
384 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
|
385 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
|
386 does not exist. |
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 @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
|
389 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
|
390 @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
|
391 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
392 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
|
393 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
|
394 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
|
395 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
|
396 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
|
397 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
|
398 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
|
399 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
|
400 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
|
401 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
|
402 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
403 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
|
404 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
|
405 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
|
406 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
|
407 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
408 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
|
409 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
|
410 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
|
411 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
|
412 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
|
413 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
414 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
|
415 @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
|
416 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
|
417 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
|
418 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
|
419 files. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
420 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
421 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
|
422 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
|
423 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
|
424 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
|
425 @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
|
426 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
427 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
|
428 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
|
429 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
|
430 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
|
431 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
|
432 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
433 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
434 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
|
435 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
436 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
437 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
|
438 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
|
439 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
|
440 @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
|
441 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
|
442 @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
|
443 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
|
444 (@pxref{Etags Regexps}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
445 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
446 @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
|
447 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
|
448 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
|
449 explanation. |
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 @node Etags Regexps |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
452 @subsection Etags Regexps |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
453 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
454 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
|
455 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
|
456 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
|
457 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
|
458 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
459 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
460 --regex=/@var{tagregexp}[/@var{nameregexp}]/ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
461 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
462 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
463 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
464 where @var{tagregexp} is used to match the lines to tag. It is always |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
465 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
|
466 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
|
467 beginning your regular expression with @samp{[ \t]*}. In the regular |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
468 expressions, @samp{\} quotes the next character, and @samp{\t} stands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
469 for the tab character. Note that @code{etags} does not handle the other |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
470 C escape sequences for special characters. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
471 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
472 @cindex interval operator (in regexps) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
473 The syntax of regular expressions in @code{etags} is the same as in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
474 Emacs, augmented with the @dfn{interval operator}, which works as in |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
475 @code{grep} and @code{ed}. The syntax of an interval operator is |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
476 @samp{\@{@var{m},@var{n}\@}}, and its meaning is to match the preceding |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
477 expression at least @var{m} times and up to @var{n} times. |
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 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
|
480 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
|
481 more characters than needed are unavoidably matched by @var{tagregexp} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
482 (as will usually be the case), you should add a @var{nameregexp}, to |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
483 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
|
484 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
|
485 find some examples below. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
486 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
487 The option @samp{--ignore-case-regex} (or @samp{-c}) works like |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
488 @samp{--regex}, except that matching ignores case. This is |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
489 appropriate for certain programming languages. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
490 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
491 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
|
492 @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
|
493 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
|
494 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
495 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
496 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
|
497 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
|
498 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
499 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
500 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
501 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
|
502 @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
|
503 @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
|
504 @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
|
505 @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
|
506 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
|
507 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
508 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
|
509 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
|
510 the regular expression only for files of that language. (@samp{etags |
39267 | 511 --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
|
512 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
|
513 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
|
514 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
515 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
516 --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
|
517 @end smallexample |
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 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
520 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
|
521 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
|
522 @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
|
523 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
|
524 case. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
525 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
526 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
527 --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
|
528 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
529 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
530 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
531 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
|
532 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
|
533 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
|
534 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
|
535 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
|
536 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
|
537 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
|
538 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
539 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
|
540 following contents: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
541 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
542 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
543 -- 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
|
544 @{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
|
545 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
546 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
547 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
548 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
|
549 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
550 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
551 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
|
552 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
553 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
554 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
|
555 from shell interpretation. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
556 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
557 @itemize @bullet |
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 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
560 Tag Octave files: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
561 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
562 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
563 etags --language=none \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
564 --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
|
565 --regex='/###key \(.*\)/\1/' \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
566 --regex='/[ \t]*global[ \t].*/' \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
567 *.m |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
568 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
569 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
570 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
571 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
|
572 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
|
573 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
|
574 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
575 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
576 Tag Tcl files: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
577 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
578 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
579 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
|
580 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
581 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
582 @item |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
583 Tag VHDL files: |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
584 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
585 @smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
586 etags --language=none \ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
587 --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
|
588 --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
|
589 \( 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
|
590 @end smallexample |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
591 @end itemize |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
592 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
593 @node Select Tags Table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
594 @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
|
595 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
596 @vindex tags-file-name |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
597 @findex visit-tags-table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
598 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
|
599 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
|
600 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
|
601 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
|
602 default file name. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
603 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
604 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
|
605 @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
|
606 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
|
607 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
|
608 @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
|
609 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
|
610 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
611 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
|
612 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
|
613 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
|
614 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
|
615 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
|
616 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
|
617 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
|
618 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
|
619 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
|
620 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
|
621 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
|
622 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
623 @vindex tags-table-list |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
624 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
|
625 @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
|
626 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
627 @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
|
628 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
629 @group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
630 (setq tags-table-list |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
631 '("~/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
|
632 @end group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
633 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
634 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
635 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
636 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
|
637 @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
|
638 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
|
639 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
|
640 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
641 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
|
642 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
643 @node Find Tag |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
644 @subsection Finding a Tag |
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 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
|
647 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
|
648 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
649 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
650 @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
|
651 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
|
652 @item C-u M-. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
653 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
|
654 @item C-u - M-. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
655 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
|
656 @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
|
657 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
|
658 @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
|
659 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
|
660 @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
|
661 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
|
662 (@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
|
663 @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
|
664 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
|
665 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
|
666 @item M-* |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
667 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
|
668 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
669 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
670 @kindex M-. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
671 @findex find-tag |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
672 @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
|
673 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
|
674 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
|
675 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
|
676 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
|
677 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
|
678 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
|
679 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
680 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
|
681 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
|
682 @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
|
683 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
684 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
|
685 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
|
686 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
|
687 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
|
688 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
|
689 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
|
690 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
|
691 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
|
692 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
|
693 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
694 @kindex C-x 4 . |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
695 @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
|
696 @kindex C-x 5 . |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
697 @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
|
698 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
|
699 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
|
700 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
|
701 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
|
702 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
|
703 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
704 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
|
705 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
|
706 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
|
707 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
|
708 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
709 @kindex M-* |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
710 @findex pop-tag-mark |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
711 @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
|
712 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
|
713 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
|
714 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
|
715 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
|
716 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
|
717 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
718 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
|
719 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
|
720 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
721 @findex find-tag-regexp |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
722 @kindex C-M-. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
723 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
|
724 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
|
725 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
|
726 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
727 @node Tags Search |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
728 @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
|
729 @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
|
730 @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
|
731 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
732 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
|
733 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
|
734 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
|
735 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
736 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
737 @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
|
738 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
|
739 table. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
740 @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
|
741 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
|
742 @item M-, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
743 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
|
744 (@code{tags-loop-continue}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
745 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
746 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
747 @findex tags-search |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
748 @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
|
749 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
|
750 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
|
751 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
|
752 @code{tags-search} returns. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
753 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
754 @kindex M-, |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
755 @findex tags-loop-continue |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
756 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
|
757 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
|
758 @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
|
759 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
|
760 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
761 @findex tags-query-replace |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
762 @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
|
763 @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
|
764 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
|
765 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
|
766 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
|
767 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
|
768 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
769 @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
|
770 @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
|
771 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
|
772 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
|
773 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
|
774 @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
|
775 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
776 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
|
777 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
|
778 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
|
779 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
|
780 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
|
781 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
|
782 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
783 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
|
784 @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
|
785 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
|
786 @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
|
787 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
|
788 the current buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
789 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
790 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
|
791 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
|
792 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
|
793 continue to exist. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
794 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
795 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
|
796 @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
|
797 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
|
798 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
|
799 @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
|
800 @xref{Compilation}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
801 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
802 @node List Tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
803 @subsection Tags Table Inquiries |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
804 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
805 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
806 @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
|
807 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
|
808 @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
|
809 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
|
810 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
811 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
812 @findex list-tags |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
813 @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
|
814 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
|
815 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
|
816 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
|
817 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
|
818 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
|
819 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
|
820 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
|
821 directory. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
822 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
823 @findex tags-apropos |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
824 @vindex tags-apropos-verbose |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
825 @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
|
826 (@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
|
827 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
|
828 @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
|
829 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
|
830 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
831 @vindex tags-tag-face |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
832 @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
|
833 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
|
834 @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
|
835 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
|
836 @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
|
837 details. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
838 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
839 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
|
840 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
|
841 |
38211
5ef494421061
Fix mistakes in @node Emerge.
Richard M. Stallman <rms@gnu.org>
parents:
38198
diff
changeset
|
842 @node Emerge |
38198
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
843 @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
|
844 @cindex Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
845 @cindex merging files |
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 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
|
848 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
|
849 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
|
850 easier. See also @ref{Comparing Files}, for commands to compare |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
851 in a more manual fashion, and @ref{,Ediff,, ediff, The Ediff Manual}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
852 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
853 @menu |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
854 * 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
|
855 * 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
|
856 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
|
857 * 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
|
858 for each difference. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
859 * 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
|
860 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
|
861 * 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
|
862 * 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
|
863 * 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
|
864 @end menu |
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 Overview of Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
867 @subsection Overview of Emerge |
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 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
|
870 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
871 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
872 @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
|
873 @findex emerge-files |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
874 Merge two specified files. |
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 @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
|
877 @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
|
878 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
|
879 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
880 @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
|
881 @findex emerge-buffers |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
882 Merge two buffers. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
883 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
884 @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
|
885 @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
|
886 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
|
887 buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
888 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
889 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
890 @cindex merge buffer (Emerge) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
891 @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
|
892 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
|
893 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
|
894 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
|
895 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
|
896 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
|
897 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
|
898 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
899 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
|
900 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
|
901 (@pxref{Narrowing}). |
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 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
|
904 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
|
905 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
|
906 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
|
907 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
|
908 @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
|
909 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
|
910 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
|
911 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
912 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
|
913 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
|
914 @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
|
915 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
|
916 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
|
917 edit them both together. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
918 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
919 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
|
920 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
|
921 ordinary Emacs commands. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
922 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
923 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
|
924 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
|
925 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
|
926 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
927 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
928 vvvvvvvvvvvvvvvvvvvv |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
929 @var{text that differs} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
930 ^^^^^^^^^^^^^^^^^^^^ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
931 @end example |
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 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
934 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
|
935 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
|
936 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
937 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
|
938 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
|
939 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
|
940 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
941 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
|
942 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
|
943 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
|
944 @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
|
945 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
|
946 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
|
947 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
948 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
|
949 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
|
950 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
|
951 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
952 @node Submodes of Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
953 @subsection Submodes of Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
954 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
955 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
|
956 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
|
957 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
|
958 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
|
959 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
|
960 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
|
961 slows down Emerge operations. |
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 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
|
964 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
|
965 and @samp{F}. |
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 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
|
968 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
|
969 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
970 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
|
971 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
|
972 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
|
973 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
|
974 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
975 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
|
976 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
|
977 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
|
978 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
|
979 @samp{S}. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
980 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
981 @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
|
982 @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
|
983 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
|
984 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
|
985 (@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
|
986 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
|
987 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
|
988 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
989 @node State of Difference |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
990 @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
|
991 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
992 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
|
993 @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
|
994 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
995 @table @asis |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
996 @item A |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
997 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
|
998 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
|
999 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1000 @item B |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1001 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
|
1002 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
|
1003 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1004 @item default-A |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1005 @itemx default-B |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1006 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
|
1007 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
|
1008 (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
|
1009 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
|
1010 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1011 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
|
1012 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
|
1013 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
|
1014 the mode line. |
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 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
|
1017 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
|
1018 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
|
1019 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
|
1020 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
|
1021 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
|
1022 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
|
1023 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
|
1024 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1025 @item prefer-A |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1026 @itemx prefer-B |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1027 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
|
1028 @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
|
1029 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
|
1030 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
|
1031 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
|
1032 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
|
1033 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1034 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
|
1035 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1036 @item combined |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1037 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
|
1038 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
|
1039 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1040 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
|
1041 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
|
1042 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1043 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
|
1044 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1045 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1046 @node Merge Commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1047 @subsection Merge Commands |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1048 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1049 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
|
1050 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
|
1051 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1052 @table @kbd |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1053 @item p |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1054 Select the previous 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 @item n |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1057 Select the next difference. |
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 @item a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1060 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
|
1061 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1062 @item b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1063 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
|
1064 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1065 @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
|
1066 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
|
1067 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1068 @item . |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1069 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
|
1070 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
|
1071 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1072 @item q |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1073 Quit---finish the merge. |
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 @item C-] |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1076 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
|
1077 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1078 @item f |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1079 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
|
1080 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1081 @item e |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1082 Go into Edit mode. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1083 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1084 @item l |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1085 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
|
1086 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1087 @item - |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1088 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
|
1089 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1090 @item @var{digit} |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1091 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
|
1092 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1093 @item d a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1094 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
|
1095 the merge buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1096 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1097 @item d b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1098 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
|
1099 the merge buffer. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1100 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1101 @item c a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1102 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
|
1103 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1104 @item c b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1105 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
|
1106 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1107 @item i a |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1108 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
|
1109 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1110 @item i b |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1111 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
|
1112 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1113 @item m |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1114 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
|
1115 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1116 @item ^ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1117 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
|
1118 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1119 @item v |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1120 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
|
1121 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1122 @item < |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1123 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
|
1124 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1125 @item > |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1126 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
|
1127 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1128 @item | |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1129 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
|
1130 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1131 @item x 1 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1132 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
|
1133 to full size.) |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1134 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1135 @item x c |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1136 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
|
1137 Emerge}). |
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 x f |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1140 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
|
1141 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
|
1142 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1143 @item x j |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1144 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
|
1145 (@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
|
1146 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1147 @item x s |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1148 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
|
1149 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
|
1150 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
|
1151 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1152 @item x t |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1153 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
|
1154 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
|
1155 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
|
1156 @end table |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1157 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1158 @node Exiting Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1159 @subsection Exiting Emerge |
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 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
|
1162 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
|
1163 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
|
1164 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
|
1165 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
|
1166 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
|
1167 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1168 @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
|
1169 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
|
1170 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
|
1171 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1172 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
|
1173 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
|
1174 abort. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1175 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1176 @node Combining in Emerge |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1177 @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
|
1178 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1179 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
|
1180 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
|
1181 like this: |
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 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1184 @group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1185 #ifdef NEW |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1186 @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
|
1187 #else /* not NEW */ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1188 @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
|
1189 #endif /* not NEW */ |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1190 @end group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1191 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1192 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1193 @noindent |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1194 @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
|
1195 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
|
1196 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
|
1197 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
|
1198 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
|
1199 @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
|
1200 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
|
1201 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1202 @example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1203 @group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1204 "#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
|
1205 @end group |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1206 @end example |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1207 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1208 @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
|
1209 @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
|
1210 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1211 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
|
1212 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
|
1213 they were. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1214 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1215 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
|
1216 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
|
1217 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
|
1218 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1219 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
|
1220 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
|
1221 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
|
1222 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
|
1223 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
|
1224 commands. |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1225 |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1226 @vindex emerge-startup-hook |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1227 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
|
1228 @code{emerge-startup-hook} (@pxref{Hooks}). |
1381135c49a4
Initial version consists of sections moved from Editing Programs chapter.
Richard M. Stallman <rms@gnu.org>
parents:
diff
changeset
|
1229 |