comparison man/xemacs/frame.texi @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children b2472a1930f2
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 @node Frame, Keystrokes, Concept Index, Top
2 @comment node-name, next, previous, up
3 @chapter The XEmacs Frame
4 @cindex frame
5 @cindex window
6 @cindex buffer
7
8 @table @asis
9 @item Frame
10 In many environments, such as a tty terminal, an XEmacs frame
11 literally takes up the whole screen. If you are
12 running XEmacs in a multi-window system like the X Window System, the
13 XEmacs frame takes up one X window. @xref{XEmacs under X}, for more
14 information.@refill
15
16 @item Window
17 No matter what environment you are running in, XEmacs allows you to look
18 at several buffers at the same time by having several windows be part of
19 the frame. Often, the whole frame is taken up by just one window, but
20 you can split the frame into two or more subwindows. If you are
21 running XEmacs under the X window system, that means you can have several
22 @dfn{XEmacs windows} inside the X window that contains the XEmacs frame.
23 You can even have multiple frames in different X windows, each with
24 their own set of subwindows.
25 @refill
26 @end table
27
28 Each XEmacs frame displays a variety of information:
29 @itemize @bullet
30 @item
31 The biggest area usually displays the text you are editing. It may
32 consist of one window or of two or more windows if you need to look at two
33 buffers a the same time.
34 @item
35 Below each text window's last line is a @dfn{mode line} (@pxref{Mode
36 Line}), which describes what is going on in that window. The mode line
37 is in inverse video if the terminal supports that. If there are several
38 XEmacs windows in one frame, each window has its own mode line.
39 @item
40 At the bottom of each XEmacs frame is the @dfn{echo area} or @dfn{minibuffer
41 window}(@pxref{Echo Area}). It is used by XEmacs to exchange information
42 with the user. There is only one echo area per XEmacs frame.
43 @item
44 If you are running XEmacs under the X Window System, a
45 menu bar at the top of the frame makes shortcuts to several of the
46 commands available (@pxref{Pull-down Menus}).
47 @end itemize
48
49 You can subdivide the XEmacs frame into multiple text windows, and use
50 each window for a different file (@pxref{Windows}). Multiple XEmacs
51 windows are tiled vertically on the XEmacs frame. The upper XEmacs window
52 is separated from the lower window by its mode line.
53
54 When there are multiple, tiled XEmacs windows on a single XEmacs frame,
55 the XEmacs window receiving input from the keyboard has the @dfn{keyboard
56 focus} and is called the @dfn{selected window}. The selected window
57 contains the cursor, which indicates the insertion point. If you are
58 working in an environment that permits multiple XEmacs frames, and you
59 move the focus from one XEmacs frame into another, the
60 selected window is the one that was last selected in that frame.
61
62 The same text can be displayed simultaneously in several XEmacs
63 windows, which can be in different XEmacs frames. If you alter the text
64 in an XEmacs buffer by editing it in one XEmacs window, the changes are
65 visible in all XEmacs windows containing that buffer.
66
67
68 @menu
69 * Point:: The place in the text where editing commands operate.
70 * Echo Area:: Short messages appear at the bottom of the frame.
71 * Mode Line:: Interpreting the mode line.
72 * XEmacs under X:: Some information on using XEmacs under the X
73 Window System.
74 @end menu
75
76 @node Point, Echo Area, Frame, Frame
77 @comment node-name, next, previous, up
78 @section Point
79 @cindex point
80 @cindex cursor
81
82 When XEmacs is running, the cursor shows the location at which editing
83 commands will take effect. This location is called @dfn{point}. You
84 can use keystrokes or the mouse cursor to move point through the text
85 and edit the text at different places.
86
87 While the cursor appears to point @var{at} a character, you should
88 think of point as @var{between} two characters: it points @var{before}
89 the character on which the cursor appears. Sometimes people speak
90 of ``the cursor'' when they mean ``point,'' or speak of commands that
91 move point as ``cursor motion'' commands.
92
93 Each XEmacs frame has only one cursor. When output is in progress, the cursor
94 must appear where the typing is being done. This does not mean that
95 point is moving. It is only that XEmacs has no way to show you the
96 location of point except when the terminal is idle.
97
98 If you are editing several files in XEmacs, each file has its own point
99 location. A file that is not being displayed remembers where point is.
100 Point becomes visible at the correct location when you look at the file again.
101
102 When there are multiple text windows, each window has its own point
103 location. The cursor shows the location of point in the selected
104 window. The visible cursor also shows you which window is selected. If
105 the same buffer appears in more than one window, point can be moved in
106 each window independently.
107
108 The term `point' comes from the character @samp{.}, which was the
109 command in TECO (the language in which the original Emacs was written)
110 for accessing the value now called `point'.
111
112 @node Echo Area, Mode Line, Point, Frame
113 @section The Echo Area
114 @cindex echo area
115
116 The line at the bottom of the frame (below the mode line) is the
117 @dfn{echo area}. XEmacs uses this area to communicate with the user:
118
119 @itemize @bullet
120 @item
121 @dfn{Echoing} means printing out the characters that the user types. XEmacs
122 never echoes single-character commands. Multi-character commands are
123 echoed only if you pause while typing them: As soon as you pause for more
124 than one second in the middle of a command, all the characters of the command
125 so far are echoed. This is intended to @dfn{prompt} you for the rest of
126 the command. Once echoing has started, the rest of the command is echoed
127 immediately as you type it. This behavior is designed to give confident
128 users fast response, while giving hesitant users maximum feedback. You
129 can change this behavior by setting a variable (@pxref{Display Vars}).
130 @item
131 If you issue a command that cannot be executed, XEmacs may print an
132 @dfn{error message} in the echo area. Error messages are accompanied by
133 a beep or by flashing the frame. Any input you have typed ahead is
134 thrown away when an error happens.
135 @item
136 Some commands print informative messages in the echo area. These
137 messages look similar to error messages, but are not announced with a
138 beep and do not throw away input. Sometimes a message tells you what the
139 command has done, when this is not obvious from looking at the text being
140 edited. Sometimes the sole purpose of a command is to print a message
141 giving you specific information. For example, the command @kbd{C-x =} is
142 used to print a message describing the character position of point in the
143 text and its current column in the window. Commands that take a long time
144 often display messages ending in @samp{...} while they are working, and
145 add @samp{done} at the end when they are finished.
146 @item
147 The echo area is also used to display the @dfn{minibuffer}, a window
148 that is used for reading arguments to commands, such as the name of a
149 file to be edited. When the minibuffer is in use, the echo area displays
150 with a prompt string that usually ends with a colon. The cursor
151 appears after the prompt. You can always get out of the minibuffer by
152 typing @kbd{C-g}. @xref{Minibuffer}.
153 @end itemize
154
155 @node Mode Line, XEmacs under X, Echo Area, Frame
156 @comment node-name, next, previous, up
157 @section The Mode Line
158 @cindex mode line
159 @cindex top level
160
161 Each text window's last line is a @dfn{mode line} which describes what is
162 going on in that window. When there is only one text window, the mode line
163 appears right above the echo area. The mode line is in inverse video if
164 the terminal supports that, starts and ends with dashes, and contains text
165 like @samp{XEmacs:@: @var{something}}.
166
167 If a mode line has something else in place of @samp{XEmacs:@:
168 @var{something}}, the window above it is in a special subsystem
169 such as Dired. The mode line then indicates the status of the
170 subsystem.
171
172 Normally, the mode line has the following appearance:
173
174 @example
175 --@var{ch}-XEmacs: @var{buf} (@var{major} @var{minor})----@var{pos}------
176 @end example
177
178 @noindent
179 This gives information about the buffer being displayed in the window: the
180 buffer's name, what major and minor modes are in use, whether the buffer's
181 text has been changed, and how far down the buffer you are currently
182 looking.
183
184 @var{ch} contains two stars (@samp{**}) if the text in the buffer has been
185 edited (the buffer is ``modified''), or two dashes (@samp{--}) if the
186 buffer has not been edited. Exception: for a read-only buffer, it is
187 @samp{%%}.
188
189 @var{buf} is the name of the window's chosen @dfn{buffer}. The chosen
190 buffer in the selected window (the window that the cursor is in) is also
191 XEmacs's selected buffer, the buffer in which editing takes place. When
192 we speak of what some command does to ``the buffer'', we mean the
193 currently selected buffer. @xref{Buffers}.
194
195 @var{pos} tells you whether there is additional text above the top of
196 the screen or below the bottom. If your file is small and it is
197 completely visible on the screen, @var{pos} is @samp{All}. Otherwise,
198 @var{pos} is @samp{Top} if you are looking at the beginning of the file,
199 @samp{Bot} if you are looking at the end of the file, or
200 @samp{@var{nn}%}, where @var{nn} is the percentage of the file above the
201 top of the screen.@refill
202
203 @var{major} is the name of the @dfn{major mode} in effect in the buffer. At
204 any time, each buffer is in one and only one major mode.
205 The available major modes include Fundamental mode (the least specialized),
206 Text mode, Lisp mode, and C mode. @xref{Major Modes}, for details
207 on how the modes differ and how you select one.@refill
208
209 @var{minor} is a list of some of the @dfn{minor modes} that are turned on
210 in the window's chosen buffer. For example, @samp{Fill} means that Auto
211 Fill mode is on. @code{Abbrev} means that Word Abbrev mode is on.
212 @code{Ovwrt} means that Overwrite mode is on. @xref{Minor Modes}, for more
213 information. @samp{Narrow} means that the buffer being displayed has
214 editing restricted to only a portion of its text. This is not really a
215 minor mode, but is like one. @xref{Narrowing}. @code{Def} means that a
216 keyboard macro is being defined. @xref{Keyboard Macros}.
217
218 Some buffers display additional information after the minor modes. For
219 example, Rmail buffers display the current message number and the total
220 number of messages. Compilation buffers and Shell mode display the status
221 of the subprocess.
222
223 If XEmacs is currently inside a recursive editing level, square
224 brackets (@samp{[@dots{}]}) appear around the parentheses that surround
225 the modes. If XEmacs is in one recursive editing level within another,
226 double square brackets appear, and so on. Since information on
227 recursive editing applies to XEmacs in general and not to any one buffer,
228 the square brackets appear in every mode line on the screen or not in
229 any of them. @xref{Recursive Edit}.@refill
230
231 @findex display-time
232 XEmacs can optionally display the time and system load in all mode lines.
233 To enable this feature, type @kbd{M-x display-time}. The information added
234 to the mode line usually appears after the file name, before the mode names
235 and their parentheses. It looks like this:
236
237 @example
238 @var{hh}:@var{mm}pm @var{l.ll} [@var{d}]
239 @end example
240
241 @noindent
242 (Some fields may be missing if your operating system cannot support them.)
243 @var{hh} and @var{mm} are the hour and minute, followed always by @samp{am}
244 or @samp{pm}. @var{l.ll} is the average number of running processes in the
245 whole system recently. @var{d} is an approximate index of the ratio of
246 disk activity to CPU activity for all users.
247
248 The word @samp{Mail} appears after the load level if there is mail for
249 you that you have not read yet.
250
251 @vindex mode-line-inverse-video
252 Customization note: the variable @code{mode-line-inverse-video}
253 controls whether the mode line is displayed in inverse video (assuming
254 the terminal supports it); @code{nil} means no inverse video. The
255 default is @code{t}. For X frames, simply set the foreground and
256 background colors appropriately.
257
258 @node XEmacs under X, , Mode Line, Frame
259 @section Using XEmacs Under the X Window System
260 @comment node-name, next, previous, up
261
262 XEmacs can be used with the X Window System and a window manager like
263 MWM or TWM. In that case, the X window manager opens, closes, and
264 resizes XEmacs frames. You use the window manager's mouse gestures to
265 perform the operations. Consult your window manager guide or reference
266 manual for information on manipulating X windows.
267
268 When you are working under X, each X window (that is, each XEmacs frame)
269 has a menu bar for mouse-controlled operations (@pxref{Pull-down Menus}).
270
271 @cindex multi-frame XEmacs
272 @findex make-frame
273 XEmacs under X is also a multi-frame XEmacs. You can use the @b{New
274 Frame} menu item from the @b{File} menu to create a new XEmacs frame in a
275 new X window from the same process. The different frames will share the
276 same buffer list, but you can look at different buffers in the different
277 frames.
278
279 @findex find-file-other-frame
280 The function @code{find-file-other-frame} is just like @code{find-file},
281 but creates a new frame to display the buffer in first. This is
282 normally bound to @kbd{C-x 5 C-f}, and is what the @b{Open File, New
283 Frame} menu item does.
284
285 @findex switch-to-buffer-other-frame
286 The function @code{switch-to-buffer-other-frame} is just like
287 @code{switch-to-buffer}, but creates a new frame to display the buffer
288 in first. This is normally bound to @kbd{C-x 5 b}.
289
290 @vindex default-frame-alist
291 You can specify a different default frame size other than the one provided.
292 Use the variable @code{default-frame-alist}, which is an alist of default
293 values for frame creation other than the first one. These may be set in
294 your init file, like this:
295
296 @example
297 (setq default-frame-alist '((width . 80) (height . 55)))
298 @end example
299
300 @vindex x-frame-defaults
301 For values specific to the first XEmacs frame, you must use X resources.
302 The variable @code{x-frame-defaults} takes an alist of default frame
303 creation parameters for X window frames. These override what is
304 specified in @file{~/.Xdefaults} but are overridden by the arguments to
305 the particular call to @code{x-create-frame}.
306
307 @vindex create-frame-hook
308 When you create a new frame, the variable @code{create-frame-hook}
309 is called with one argument, the frame just created.
310
311 If you want to close one or more of the X windows you created using
312 @b{New Frame}, use the @b{Delete Frame} menu item from the @b{File} menu.
313
314 @vindex frame-title-format
315 @vindex frame-icon-title-format
316 If you are working with multiple frames, some special information
317 applies:
318 @itemize @bullet
319 @item
320 Two variables, @code{frame-title-format} and
321 @code{frame-icon-title-format} determine the title of the frame and
322 the title of the icon that results if you shrink the frame.
323
324 @vindex auto-lower-frame
325 @vindex auto-raise-frame
326 @item
327 The variables @code{auto-lower-frame} and @code{auto-raise-frame}
328 position a frame. If true, @code{auto-lower-frame} lowers a frame to
329 the bottom when it is no longer selected. If true,
330 @code{auto-raise-frame} raises a frame to the top when it is
331 selected. Under X, most ICCCM-compliant window managers will have
332 options to do this for you, but these variables are provided in case you
333 are using a broken window manager.
334
335 @item
336 There is a new frame/modeline format directive, %S, which expands to
337 the name of the current frame (a frame's name is distinct from its
338 title; the name is used for resource lookup, among other things, and the
339 title is simply what appears above the window.)
340 @end itemize