annotate man/screen.texi @ 28081:6360842e5962

(easy-mmode-define-keymap): Extend to allow more flexibility. (easy-mmode-set-keymap-parents, easy-mmode-define-syntax): New functions. (easy-mmode-defmap, easy-mmode-defsyntax, easy-mmode-define-derived-mode): New macros.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 10 Mar 2000 01:16:34 +0000
parents ac7e9e5e2ccb
children aad48d49f25c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1 @c This is part of the Emacs manual.
Dave Love <fx@gnu.org>
parents:
diff changeset
2 @c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
3 @c See file emacs.texi for copying conditions.
Dave Love <fx@gnu.org>
parents:
diff changeset
4 @node Screen, User Input, Acknowledgments, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
5 @chapter The Organization of the Screen
Dave Love <fx@gnu.org>
parents:
diff changeset
6 @cindex screen
Dave Love <fx@gnu.org>
parents:
diff changeset
7 @cindex parts of the screen
Dave Love <fx@gnu.org>
parents:
diff changeset
8 @c
Dave Love <fx@gnu.org>
parents:
diff changeset
9
Dave Love <fx@gnu.org>
parents:
diff changeset
10 On a text-only terminal, the Emacs display occupies the whole screen.
Dave Love <fx@gnu.org>
parents:
diff changeset
11 On the X Window System, Emacs creates its own X windows to use. We use
Dave Love <fx@gnu.org>
parents:
diff changeset
12 the term @dfn{frame} to mean an entire text-only screen or an entire X
Dave Love <fx@gnu.org>
parents:
diff changeset
13 window used by Emacs. Emacs uses both kinds of frames in the same way
Dave Love <fx@gnu.org>
parents:
diff changeset
14 to display your editing. Emacs normally starts out with just one frame,
Dave Love <fx@gnu.org>
parents:
diff changeset
15 but you can create additional frames if you wish. @xref{Frames}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16
Dave Love <fx@gnu.org>
parents:
diff changeset
17 When you start Emacs, the entire frame except for the first and last
Dave Love <fx@gnu.org>
parents:
diff changeset
18 lines is devoted to the text you are editing. This area is called the
Dave Love <fx@gnu.org>
parents:
diff changeset
19 @dfn{window}. The first line is a @dfn{menu bar}, and the last line is
Dave Love <fx@gnu.org>
parents:
diff changeset
20 a special @dfn{echo area} or @dfn{minibuffer window} where prompts
Dave Love <fx@gnu.org>
parents:
diff changeset
21 appear and where you can enter responses. See below for more
Dave Love <fx@gnu.org>
parents:
diff changeset
22 information about these special lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
23
Dave Love <fx@gnu.org>
parents:
diff changeset
24 You can subdivide the large text window horizontally or vertically
Dave Love <fx@gnu.org>
parents:
diff changeset
25 into multiple text windows, each of which can be used for a different
Dave Love <fx@gnu.org>
parents:
diff changeset
26 file (@pxref{Windows}). In this manual, the word ``window'' always
Dave Love <fx@gnu.org>
parents:
diff changeset
27 refers to the subdivisions of a frame within Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
28
Dave Love <fx@gnu.org>
parents:
diff changeset
29 The window that the cursor is in is the @dfn{selected window}, in
Dave Love <fx@gnu.org>
parents:
diff changeset
30 which editing takes place. Most Emacs commands implicitly apply to the
Dave Love <fx@gnu.org>
parents:
diff changeset
31 text in the selected window (though mouse commands generally operate on
Dave Love <fx@gnu.org>
parents:
diff changeset
32 whatever window you click them in, whether selected or not). The other
Dave Love <fx@gnu.org>
parents:
diff changeset
33 windows display text for reference only, unless/until you select them.
Dave Love <fx@gnu.org>
parents:
diff changeset
34 If you use multiple frames under the X Window System, then giving the
Dave Love <fx@gnu.org>
parents:
diff changeset
35 input focus to a particular frame selects a window in that frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
36
Dave Love <fx@gnu.org>
parents:
diff changeset
37 Each window's last line is a @dfn{mode line}, which describes what is
Dave Love <fx@gnu.org>
parents:
diff changeset
38 going on in that window. It appears in inverse video, if the terminal
Dave Love <fx@gnu.org>
parents:
diff changeset
39 supports that, and its contents begin with @w{@samp{--:-- @ *scratch*}}
Dave Love <fx@gnu.org>
parents:
diff changeset
40 when Emacs starts. The mode line displays status information such as
Dave Love <fx@gnu.org>
parents:
diff changeset
41 what buffer is being displayed above it in the window, what major and
Dave Love <fx@gnu.org>
parents:
diff changeset
42 minor modes are in use, and whether the buffer contains unsaved changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
43
Dave Love <fx@gnu.org>
parents:
diff changeset
44 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
45 * Point:: The place in the text where editing commands operate.
Dave Love <fx@gnu.org>
parents:
diff changeset
46 * Echo Area:: Short messages appear at the bottom of the screen.
Dave Love <fx@gnu.org>
parents:
diff changeset
47 * Mode Line:: Interpreting the mode line.
Dave Love <fx@gnu.org>
parents:
diff changeset
48 * Menu Bar:: How to use the menu bar.
Dave Love <fx@gnu.org>
parents:
diff changeset
49 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
50
Dave Love <fx@gnu.org>
parents:
diff changeset
51 @node Point
Dave Love <fx@gnu.org>
parents:
diff changeset
52 @section Point
Dave Love <fx@gnu.org>
parents:
diff changeset
53 @cindex point
Dave Love <fx@gnu.org>
parents:
diff changeset
54 @cindex cursor
Dave Love <fx@gnu.org>
parents:
diff changeset
55
Dave Love <fx@gnu.org>
parents:
diff changeset
56 Within Emacs, the terminal's cursor shows the location at which
Dave Love <fx@gnu.org>
parents:
diff changeset
57 editing commands will take effect. This location is called @dfn{point}.
Dave Love <fx@gnu.org>
parents:
diff changeset
58 Many Emacs commands move point through the text, so that you can edit at
Dave Love <fx@gnu.org>
parents:
diff changeset
59 different places in it. You can also place point by clicking mouse
Dave Love <fx@gnu.org>
parents:
diff changeset
60 button 1.
Dave Love <fx@gnu.org>
parents:
diff changeset
61
Dave Love <fx@gnu.org>
parents:
diff changeset
62 While the cursor appears to point @emph{at} a character, you should
Dave Love <fx@gnu.org>
parents:
diff changeset
63 think of point as @emph{between} two characters; it points @emph{before}
Dave Love <fx@gnu.org>
parents:
diff changeset
64 the character that appears under the cursor. For example, if your text
Dave Love <fx@gnu.org>
parents:
diff changeset
65 looks like @samp{frob} with the cursor over the @samp{b}, then point is
Dave Love <fx@gnu.org>
parents:
diff changeset
66 between the @samp{o} and the @samp{b}. If you insert the character
Dave Love <fx@gnu.org>
parents:
diff changeset
67 @samp{!} at that position, the result is @samp{fro!b}, with point
Dave Love <fx@gnu.org>
parents:
diff changeset
68 between the @samp{!} and the @samp{b}. Thus, the cursor remains over
Dave Love <fx@gnu.org>
parents:
diff changeset
69 the @samp{b}, as before.
Dave Love <fx@gnu.org>
parents:
diff changeset
70
Dave Love <fx@gnu.org>
parents:
diff changeset
71 Sometimes people speak of ``the cursor'' when they mean ``point,'' or
Dave Love <fx@gnu.org>
parents:
diff changeset
72 speak of commands that move point as ``cursor motion'' commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
73
Dave Love <fx@gnu.org>
parents:
diff changeset
74 Terminals have only one cursor, and when output is in progress it must
Dave Love <fx@gnu.org>
parents:
diff changeset
75 appear where the typing is being done. This does not mean that point is
Dave Love <fx@gnu.org>
parents:
diff changeset
76 moving. It is only that Emacs has no way to show you the location of point
Dave Love <fx@gnu.org>
parents:
diff changeset
77 except when the terminal is idle.
Dave Love <fx@gnu.org>
parents:
diff changeset
78
Dave Love <fx@gnu.org>
parents:
diff changeset
79 If you are editing several files in Emacs, each in its own buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
80 each buffer has its own point location. A buffer that is not currently
Dave Love <fx@gnu.org>
parents:
diff changeset
81 displayed remembers where point is in case you display it again later.
Dave Love <fx@gnu.org>
parents:
diff changeset
82
Dave Love <fx@gnu.org>
parents:
diff changeset
83 When there are multiple windows in a frame, each window has its own
Dave Love <fx@gnu.org>
parents:
diff changeset
84 point location. The cursor shows the location of point in the selected
Dave Love <fx@gnu.org>
parents:
diff changeset
85 window. This also is how you can tell which window is selected. If the
Dave Love <fx@gnu.org>
parents:
diff changeset
86 same buffer appears in more than one window, each window has its own
Dave Love <fx@gnu.org>
parents:
diff changeset
87 position for point in that buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
88
Dave Love <fx@gnu.org>
parents:
diff changeset
89 When there are multiple frames, each frame can display one cursor.
Dave Love <fx@gnu.org>
parents:
diff changeset
90 The cursor in the selected frame is solid; the cursor in other frames is
Dave Love <fx@gnu.org>
parents:
diff changeset
91 a hollow box, and appears in the window that would be selected if you
Dave Love <fx@gnu.org>
parents:
diff changeset
92 give the input focus to that frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
93
Dave Love <fx@gnu.org>
parents:
diff changeset
94 The term `point' comes from the character @samp{.}, which was the
Dave Love <fx@gnu.org>
parents:
diff changeset
95 command in TECO (the language in which the original Emacs was written)
Dave Love <fx@gnu.org>
parents:
diff changeset
96 for accessing the value now called `point'.
Dave Love <fx@gnu.org>
parents:
diff changeset
97
Dave Love <fx@gnu.org>
parents:
diff changeset
98 @node Echo Area
Dave Love <fx@gnu.org>
parents:
diff changeset
99 @section The Echo Area
Dave Love <fx@gnu.org>
parents:
diff changeset
100 @cindex echo area
Dave Love <fx@gnu.org>
parents:
diff changeset
101 @c
Dave Love <fx@gnu.org>
parents:
diff changeset
102
Dave Love <fx@gnu.org>
parents:
diff changeset
103 The line at the bottom of the frame (below the mode line) is the
Dave Love <fx@gnu.org>
parents:
diff changeset
104 @dfn{echo area}. It is used to display small amounts of text for
Dave Love <fx@gnu.org>
parents:
diff changeset
105 several purposes.
Dave Love <fx@gnu.org>
parents:
diff changeset
106
Dave Love <fx@gnu.org>
parents:
diff changeset
107 @dfn{Echoing} means displaying the characters that you type. Outside
Dave Love <fx@gnu.org>
parents:
diff changeset
108 Emacs, the operating system normally echoes all your input. Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
109 handles echoing differently.
Dave Love <fx@gnu.org>
parents:
diff changeset
110
Dave Love <fx@gnu.org>
parents:
diff changeset
111 Single-character commands do not echo in Emacs, and multi-character
Dave Love <fx@gnu.org>
parents:
diff changeset
112 commands echo only if you pause while typing them. As soon as you pause
Dave Love <fx@gnu.org>
parents:
diff changeset
113 for more than a second in the middle of a command, Emacs echoes all the
Dave Love <fx@gnu.org>
parents:
diff changeset
114 characters of the command so far. This is to @dfn{prompt} you for the
Dave Love <fx@gnu.org>
parents:
diff changeset
115 rest of the command. Once echoing has started, the rest of the command
Dave Love <fx@gnu.org>
parents:
diff changeset
116 echoes immediately as you type it. This behavior is designed to give
Dave Love <fx@gnu.org>
parents:
diff changeset
117 confident users fast response, while giving hesitant users maximum
Dave Love <fx@gnu.org>
parents:
diff changeset
118 feedback. You can change this behavior by setting a variable
Dave Love <fx@gnu.org>
parents:
diff changeset
119 (@pxref{Display Vars}).
Dave Love <fx@gnu.org>
parents:
diff changeset
120
Dave Love <fx@gnu.org>
parents:
diff changeset
121 @cindex error message in the echo area
Dave Love <fx@gnu.org>
parents:
diff changeset
122 If a command cannot be executed, it may print an @dfn{error message} in
Dave Love <fx@gnu.org>
parents:
diff changeset
123 the echo area. Error messages are accompanied by a beep or by flashing the
Dave Love <fx@gnu.org>
parents:
diff changeset
124 screen. Also, any input you have typed ahead is thrown away when an error
Dave Love <fx@gnu.org>
parents:
diff changeset
125 happens.
Dave Love <fx@gnu.org>
parents:
diff changeset
126
Dave Love <fx@gnu.org>
parents:
diff changeset
127 Some commands print informative messages in the echo area. These
Dave Love <fx@gnu.org>
parents:
diff changeset
128 messages look much like error messages, but they are not announced with
Dave Love <fx@gnu.org>
parents:
diff changeset
129 a beep and do not throw away input. Sometimes the message tells you
Dave Love <fx@gnu.org>
parents:
diff changeset
130 what the command has done, when this is not obvious from looking at the
Dave Love <fx@gnu.org>
parents:
diff changeset
131 text being edited. Sometimes the sole purpose of a command is to print
Dave Love <fx@gnu.org>
parents:
diff changeset
132 a message giving you specific information---for example, @kbd{C-x =}
Dave Love <fx@gnu.org>
parents:
diff changeset
133 prints a message describing the character position of point in the text
Dave Love <fx@gnu.org>
parents:
diff changeset
134 and its current column in the window. Commands that take a long time
Dave Love <fx@gnu.org>
parents:
diff changeset
135 often display messages ending in @samp{...} while they are working, and
Dave Love <fx@gnu.org>
parents:
diff changeset
136 add @samp{done} at the end when they are finished.
Dave Love <fx@gnu.org>
parents:
diff changeset
137
Dave Love <fx@gnu.org>
parents:
diff changeset
138 @cindex @samp{*Messages*} buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
139 @cindex saved echo area messages
Dave Love <fx@gnu.org>
parents:
diff changeset
140 @cindex messages saved from echo area
Dave Love <fx@gnu.org>
parents:
diff changeset
141 Echo-area informative messages are saved in an editor buffer named
Dave Love <fx@gnu.org>
parents:
diff changeset
142 @samp{*Messages*}. (We have not explained buffers yet; see
Dave Love <fx@gnu.org>
parents:
diff changeset
143 @ref{Buffers}, for more information about them.) If you miss a message
Dave Love <fx@gnu.org>
parents:
diff changeset
144 that appears briefly on the screen, you can switch to the
Dave Love <fx@gnu.org>
parents:
diff changeset
145 @samp{*Messages*} buffer to see it again. (Successive progress messages
Dave Love <fx@gnu.org>
parents:
diff changeset
146 are often collapsed into one in that buffer.)
Dave Love <fx@gnu.org>
parents:
diff changeset
147
Dave Love <fx@gnu.org>
parents:
diff changeset
148 @vindex message-log-max
Dave Love <fx@gnu.org>
parents:
diff changeset
149 The size of @samp{*Messages*} is limited to a certain number of lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
150 The variable @code{message-log-max} specifies how many lines. Once the
Dave Love <fx@gnu.org>
parents:
diff changeset
151 buffer has that many lines, each line added at the end deletes one line
Dave Love <fx@gnu.org>
parents:
diff changeset
152 from the beginning. @xref{Variables}, for how to set variables such as
Dave Love <fx@gnu.org>
parents:
diff changeset
153 @code{message-log-max}.
Dave Love <fx@gnu.org>
parents:
diff changeset
154
Dave Love <fx@gnu.org>
parents:
diff changeset
155 The echo area is also used to display the @dfn{minibuffer}, a window that
Dave Love <fx@gnu.org>
parents:
diff changeset
156 is used for reading arguments to commands, such as the name of a file to be
Dave Love <fx@gnu.org>
parents:
diff changeset
157 edited. When the minibuffer is in use, the echo area begins with a prompt
Dave Love <fx@gnu.org>
parents:
diff changeset
158 string that usually ends with a colon; also, the cursor appears in that line
Dave Love <fx@gnu.org>
parents:
diff changeset
159 because it is the selected window. You can always get out of the
Dave Love <fx@gnu.org>
parents:
diff changeset
160 minibuffer by typing @kbd{C-g}. @xref{Minibuffer}.
Dave Love <fx@gnu.org>
parents:
diff changeset
161
Dave Love <fx@gnu.org>
parents:
diff changeset
162 @node Mode Line
Dave Love <fx@gnu.org>
parents:
diff changeset
163 @section The Mode Line
Dave Love <fx@gnu.org>
parents:
diff changeset
164 @cindex mode line
Dave Love <fx@gnu.org>
parents:
diff changeset
165 @cindex top level
Dave Love <fx@gnu.org>
parents:
diff changeset
166 @c
Dave Love <fx@gnu.org>
parents:
diff changeset
167
Dave Love <fx@gnu.org>
parents:
diff changeset
168 Each text window's last line is a @dfn{mode line}, which describes what
Dave Love <fx@gnu.org>
parents:
diff changeset
169 is going on in that window. When there is only one text window, the
Dave Love <fx@gnu.org>
parents:
diff changeset
170 mode line appears right above the echo area; it is the next-to-last line
Dave Love <fx@gnu.org>
parents:
diff changeset
171 on the frame. The mode line is in inverse video if the terminal
Dave Love <fx@gnu.org>
parents:
diff changeset
172 supports that, and it starts and ends with dashes.
Dave Love <fx@gnu.org>
parents:
diff changeset
173
Dave Love <fx@gnu.org>
parents:
diff changeset
174 Normally, the mode line looks like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
175
Dave Love <fx@gnu.org>
parents:
diff changeset
176 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
177 -@var{cs}:@var{ch} @var{buf} (@var{major} @var{minor})--@var{line}--@var{pos}------
Dave Love <fx@gnu.org>
parents:
diff changeset
178 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
179
Dave Love <fx@gnu.org>
parents:
diff changeset
180 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
181 This gives information about the buffer being displayed in the window: the
Dave Love <fx@gnu.org>
parents:
diff changeset
182 buffer's name, what major and minor modes are in use, whether the buffer's
Dave Love <fx@gnu.org>
parents:
diff changeset
183 text has been changed, and how far down the buffer you are currently
Dave Love <fx@gnu.org>
parents:
diff changeset
184 looking.
Dave Love <fx@gnu.org>
parents:
diff changeset
185
Dave Love <fx@gnu.org>
parents:
diff changeset
186 @var{ch} contains two stars @samp{**} if the text in the buffer has
Dave Love <fx@gnu.org>
parents:
diff changeset
187 been edited (the buffer is ``modified''), or @samp{--} if the buffer has
Dave Love <fx@gnu.org>
parents:
diff changeset
188 not been edited. For a read-only buffer, it is @samp{%*} if the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
189 is modified, and @samp{%%} otherwise.
Dave Love <fx@gnu.org>
parents:
diff changeset
190
Dave Love <fx@gnu.org>
parents:
diff changeset
191 @var{buf} is the name of the window's @dfn{buffer}. In most cases
Dave Love <fx@gnu.org>
parents:
diff changeset
192 this is the same as the name of a file you are editing. @xref{Buffers}.
Dave Love <fx@gnu.org>
parents:
diff changeset
193
Dave Love <fx@gnu.org>
parents:
diff changeset
194 The buffer displayed in the selected window (the window that the
Dave Love <fx@gnu.org>
parents:
diff changeset
195 cursor is in) is also Emacs's selected buffer, the one that editing
Dave Love <fx@gnu.org>
parents:
diff changeset
196 takes place in. When we speak of what some command does to ``the
Dave Love <fx@gnu.org>
parents:
diff changeset
197 buffer,'' we are talking about the currently selected buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
198
Dave Love <fx@gnu.org>
parents:
diff changeset
199 @var{line} is @samp{L} followed by the current line number of point.
Dave Love <fx@gnu.org>
parents:
diff changeset
200 This is present when Line Number mode is enabled (which it normally is).
Dave Love <fx@gnu.org>
parents:
diff changeset
201 You can optionally display the current column number too, by turning on
Dave Love <fx@gnu.org>
parents:
diff changeset
202 Column Number mode (which is not enabled by default because it is
Dave Love <fx@gnu.org>
parents:
diff changeset
203 somewhat slower). @xref{Optional Mode Line}.
Dave Love <fx@gnu.org>
parents:
diff changeset
204
Dave Love <fx@gnu.org>
parents:
diff changeset
205 @var{pos} tells you whether there is additional text above the top of
Dave Love <fx@gnu.org>
parents:
diff changeset
206 the window, or below the bottom. If your buffer is small and it is all
Dave Love <fx@gnu.org>
parents:
diff changeset
207 visible in the window, @var{pos} is @samp{All}. Otherwise, it is
Dave Love <fx@gnu.org>
parents:
diff changeset
208 @samp{Top} if you are looking at the beginning of the buffer, @samp{Bot}
Dave Love <fx@gnu.org>
parents:
diff changeset
209 if you are looking at the end of the buffer, or @samp{@var{nn}%}, where
Dave Love <fx@gnu.org>
parents:
diff changeset
210 @var{nn} is the percentage of the buffer above the top of the
Dave Love <fx@gnu.org>
parents:
diff changeset
211 window.@refill
Dave Love <fx@gnu.org>
parents:
diff changeset
212
Dave Love <fx@gnu.org>
parents:
diff changeset
213 @var{major} is the name of the @dfn{major mode} in effect in the
Dave Love <fx@gnu.org>
parents:
diff changeset
214 buffer. At any time, each buffer is in one and only one of the possible
Dave Love <fx@gnu.org>
parents:
diff changeset
215 major modes. The major modes available include Fundamental mode (the
Dave Love <fx@gnu.org>
parents:
diff changeset
216 least specialized), Text mode, Lisp mode, C mode, Texinfo mode, and many
Dave Love <fx@gnu.org>
parents:
diff changeset
217 others. @xref{Major Modes}, for details of how the modes differ and how
Dave Love <fx@gnu.org>
parents:
diff changeset
218 to select one.@refill
Dave Love <fx@gnu.org>
parents:
diff changeset
219
Dave Love <fx@gnu.org>
parents:
diff changeset
220 Some major modes display additional information after the major mode
Dave Love <fx@gnu.org>
parents:
diff changeset
221 name. For example, Rmail buffers display the current message number and
Dave Love <fx@gnu.org>
parents:
diff changeset
222 the total number of messages. Compilation buffers and Shell buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
223 display the status of the subprocess.
Dave Love <fx@gnu.org>
parents:
diff changeset
224
Dave Love <fx@gnu.org>
parents:
diff changeset
225 @var{minor} is a list of some of the @dfn{minor modes} that are turned
Dave Love <fx@gnu.org>
parents:
diff changeset
226 on at the moment in the window's chosen buffer. For example,
Dave Love <fx@gnu.org>
parents:
diff changeset
227 @samp{Fill} means that Auto Fill mode is on. @samp{Abbrev} means that
Dave Love <fx@gnu.org>
parents:
diff changeset
228 Word Abbrev mode is on. @samp{Ovwrt} means that Overwrite mode is on.
Dave Love <fx@gnu.org>
parents:
diff changeset
229 @xref{Minor Modes}, for more information. @samp{Narrow} means that the
Dave Love <fx@gnu.org>
parents:
diff changeset
230 buffer being displayed has editing restricted to only a portion of its
Dave Love <fx@gnu.org>
parents:
diff changeset
231 text. This is not really a minor mode, but is like one.
Dave Love <fx@gnu.org>
parents:
diff changeset
232 @xref{Narrowing}. @samp{Def} means that a keyboard macro is being
Dave Love <fx@gnu.org>
parents:
diff changeset
233 defined. @xref{Keyboard Macros}.
Dave Love <fx@gnu.org>
parents:
diff changeset
234
Dave Love <fx@gnu.org>
parents:
diff changeset
235 In addition, if Emacs is currently inside a recursive editing level,
Dave Love <fx@gnu.org>
parents:
diff changeset
236 square brackets (@samp{[@dots{}]}) appear around the parentheses that
Dave Love <fx@gnu.org>
parents:
diff changeset
237 surround the modes. If Emacs is in one recursive editing level within
Dave Love <fx@gnu.org>
parents:
diff changeset
238 another, double square brackets appear, and so on. Since recursive
Dave Love <fx@gnu.org>
parents:
diff changeset
239 editing levels affect Emacs globally, not just one buffer, the square
Dave Love <fx@gnu.org>
parents:
diff changeset
240 brackets appear in every window's mode line or not in any of them.
Dave Love <fx@gnu.org>
parents:
diff changeset
241 @xref{Recursive Edit}.@refill
Dave Love <fx@gnu.org>
parents:
diff changeset
242
Dave Love <fx@gnu.org>
parents:
diff changeset
243 Non-windowing terminals can only show a single Emacs frame at a time
Dave Love <fx@gnu.org>
parents:
diff changeset
244 (@pxref{Frames}). On such terminals, the mode line displays the name of
Dave Love <fx@gnu.org>
parents:
diff changeset
245 the selected frame, after @var{ch}. The initial frame's name is
Dave Love <fx@gnu.org>
parents:
diff changeset
246 @samp{F1}.
Dave Love <fx@gnu.org>
parents:
diff changeset
247
Dave Love <fx@gnu.org>
parents:
diff changeset
248 @var{cs} states the coding system used for the file you are editing.
Dave Love <fx@gnu.org>
parents:
diff changeset
249 A dash indicates the default state of affairs: no code conversion,
Dave Love <fx@gnu.org>
parents:
diff changeset
250 except for end-of-line translation if the file contents call for that.
Dave Love <fx@gnu.org>
parents:
diff changeset
251 @samp{=} means no conversion whatsoever. Nontrivial code conversions
Dave Love <fx@gnu.org>
parents:
diff changeset
252 are represented by various letters---for example, @samp{1} refers to ISO
Dave Love <fx@gnu.org>
parents:
diff changeset
253 Latin-1. @xref{Coding Systems}, for more information. If you are using
Dave Love <fx@gnu.org>
parents:
diff changeset
254 an input method, a string of the form @samp{@var{i}>} is added to the
Dave Love <fx@gnu.org>
parents:
diff changeset
255 beginning of @var{cs}; @var{i} identifies the input method. (Some input
Dave Love <fx@gnu.org>
parents:
diff changeset
256 methods show @samp{+} or @samp{@@} instead of @samp{>}.) @xref{Input
Dave Love <fx@gnu.org>
parents:
diff changeset
257 Methods}.
Dave Love <fx@gnu.org>
parents:
diff changeset
258
Dave Love <fx@gnu.org>
parents:
diff changeset
259 When you are using a character-only terminal (not a window system),
Dave Love <fx@gnu.org>
parents:
diff changeset
260 @var{cs} uses three characters to describe, respectively, the coding
Dave Love <fx@gnu.org>
parents:
diff changeset
261 system for keyboard input, the coding system for terminal output, and
Dave Love <fx@gnu.org>
parents:
diff changeset
262 the coding system used for the file you are editing.
Dave Love <fx@gnu.org>
parents:
diff changeset
263
Dave Love <fx@gnu.org>
parents:
diff changeset
264 When multibyte characters are not enabled, @var{cs} does not appear at
Dave Love <fx@gnu.org>
parents:
diff changeset
265 all. @xref{Enabling Multibyte}.
Dave Love <fx@gnu.org>
parents:
diff changeset
266
Dave Love <fx@gnu.org>
parents:
diff changeset
267 @cindex end-of-line conversion, mode-line indication
Dave Love <fx@gnu.org>
parents:
diff changeset
268 The colon after @var{cs} can change to another string in certain
Dave Love <fx@gnu.org>
parents:
diff changeset
269 circumstances. Emacs uses newline to separate lines in the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
270 Some files use different conventions for separating lines: either
Dave Love <fx@gnu.org>
parents:
diff changeset
271 carriage-return linefeed (the MS-DOS convention) or just carriage-return
Dave Love <fx@gnu.org>
parents:
diff changeset
272 (the Macintosh convention). If the buffer's file uses carriage-return
Dave Love <fx@gnu.org>
parents:
diff changeset
273 linefeed, the colon changes to either a backslash (@samp{\}) or
Dave Love <fx@gnu.org>
parents:
diff changeset
274 @samp{(DOS)}, depending on the operating system. If the file uses just
Dave Love <fx@gnu.org>
parents:
diff changeset
275 carriage-return, the colon indicator changes to either a forward slash
Dave Love <fx@gnu.org>
parents:
diff changeset
276 (@samp{/}) or @samp{(Mac)}. On some systems, Emacs displays
Dave Love <fx@gnu.org>
parents:
diff changeset
277 @samp{(Unix)} instead of the colon even for files that use newline to
Dave Love <fx@gnu.org>
parents:
diff changeset
278 separate lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
279
Dave Love <fx@gnu.org>
parents:
diff changeset
280 @vindex eol-mnemonic-unix
Dave Love <fx@gnu.org>
parents:
diff changeset
281 @vindex eol-mnemonic-dos
Dave Love <fx@gnu.org>
parents:
diff changeset
282 @vindex eol-mnemonic-mac
Dave Love <fx@gnu.org>
parents:
diff changeset
283 @vindex eol-mnemonic-undecided
Dave Love <fx@gnu.org>
parents:
diff changeset
284 You can customize the mode line display for each of the end-of-line
Dave Love <fx@gnu.org>
parents:
diff changeset
285 formats by setting each of the variables @code{eol-mnemonic-unix},
Dave Love <fx@gnu.org>
parents:
diff changeset
286 @code{eol-mnemonic-dos}, @code{eol-mnemonic-mac}, and
Dave Love <fx@gnu.org>
parents:
diff changeset
287 @code{eol-mnemonic-undecided} to any string you find appropriate.
Dave Love <fx@gnu.org>
parents:
diff changeset
288 @xref{Variables}, for an explanation how to set variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
289
Dave Love <fx@gnu.org>
parents:
diff changeset
290 @xref{Optional Mode Line}, for features that add other handy
Dave Love <fx@gnu.org>
parents:
diff changeset
291 information to the mode line, such as the current column number of
Dave Love <fx@gnu.org>
parents:
diff changeset
292 point, the current time, and whether new mail for you has arrived.
Dave Love <fx@gnu.org>
parents:
diff changeset
293
Dave Love <fx@gnu.org>
parents:
diff changeset
294 @node Menu Bar
Dave Love <fx@gnu.org>
parents:
diff changeset
295 @section The Menu Bar
Dave Love <fx@gnu.org>
parents:
diff changeset
296 @cindex menu bar
Dave Love <fx@gnu.org>
parents:
diff changeset
297
Dave Love <fx@gnu.org>
parents:
diff changeset
298 Each Emacs frame normally has a @dfn{menu bar} at the top which you
Dave Love <fx@gnu.org>
parents:
diff changeset
299 can use to perform certain common operations. There's no need to list
Dave Love <fx@gnu.org>
parents:
diff changeset
300 them here, as you can more easily see for yourself.
Dave Love <fx@gnu.org>
parents:
diff changeset
301
Dave Love <fx@gnu.org>
parents:
diff changeset
302 @kindex M-`
Dave Love <fx@gnu.org>
parents:
diff changeset
303 @kindex F10
Dave Love <fx@gnu.org>
parents:
diff changeset
304 @findex tmm-menubar
Dave Love <fx@gnu.org>
parents:
diff changeset
305 When you are using a window system, you can use the mouse to choose a
Dave Love <fx@gnu.org>
parents:
diff changeset
306 command from the menu bar. An arrow pointing right, after the menu
Dave Love <fx@gnu.org>
parents:
diff changeset
307 item, indicates that the item leads to a subsidiary menu; @samp{...} at
Dave Love <fx@gnu.org>
parents:
diff changeset
308 the end means that the command will read arguments from the keyboard
Dave Love <fx@gnu.org>
parents:
diff changeset
309 before it actually does anything.
Dave Love <fx@gnu.org>
parents:
diff changeset
310
Dave Love <fx@gnu.org>
parents:
diff changeset
311 To view the full command name and documentation for a menu item, type
Dave Love <fx@gnu.org>
parents:
diff changeset
312 @kbd{C-h k}, and then select the menu bar with the mouse in the usual
Dave Love <fx@gnu.org>
parents:
diff changeset
313 way (@pxref{Key Help}).
Dave Love <fx@gnu.org>
parents:
diff changeset
314
Dave Love <fx@gnu.org>
parents:
diff changeset
315 On text-only terminals with no mouse, you can use the menu bar by
Dave Love <fx@gnu.org>
parents:
diff changeset
316 typing @kbd{M-`} or @key{F10} (these run the command
Dave Love <fx@gnu.org>
parents:
diff changeset
317 @code{tmm-menubar}). This command enters a mode in which you can select
Dave Love <fx@gnu.org>
parents:
diff changeset
318 a menu item from the keyboard. A provisional choice appears in the echo
Dave Love <fx@gnu.org>
parents:
diff changeset
319 area. You can use the left and right arrow keys to move through the
Dave Love <fx@gnu.org>
parents:
diff changeset
320 menu to different choices. When you have found the choice you want,
Dave Love <fx@gnu.org>
parents:
diff changeset
321 type @key{RET} to select it.
Dave Love <fx@gnu.org>
parents:
diff changeset
322
Dave Love <fx@gnu.org>
parents:
diff changeset
323 Each menu item also has an assigned letter or digit which designates
Dave Love <fx@gnu.org>
parents:
diff changeset
324 that item; it is usually the initial of some word in the item's name.
Dave Love <fx@gnu.org>
parents:
diff changeset
325 This letter or digit is separated from the item name by @samp{=>}. You
Dave Love <fx@gnu.org>
parents:
diff changeset
326 can type the item's letter or digit to select the item.
Dave Love <fx@gnu.org>
parents:
diff changeset
327
Dave Love <fx@gnu.org>
parents:
diff changeset
328 Some of the commands in the menu bar have ordinary key bindings as
Dave Love <fx@gnu.org>
parents:
diff changeset
329 well; if so, the menu lists one equivalent key binding in parentheses
Dave Love <fx@gnu.org>
parents:
diff changeset
330 after the item itself.