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