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

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1
2 @iftex
3 @unnumbered XEmacs Features
4
5 This section describes the difference between Emacs Version 18 and
6 XEmacs.
7
8 @unnumberedsec General Changes
9
10 @itemize @bullet
11 @item
12 XEmacs has a new vi emulation mode called evi mode. To
13 start evi mode in Emacs, type the command @kbd{M-x evi}. If you want
14 Emacs to automatically put you in evi-mode all the time, include this
15 line in your @file{.emacs} file:
16 @example
17 (setq term-setup-hook 'evi)
18 @end example
19 @xref{evi Mode} for a brief discussion.
20 @item
21 Earlier versions of Emacs only allowed keybindings to ASCII character
22 sequences. XEmacs has greatly expanded this by allowing you to
23 use a vector of key sequences which are in turn composed of a modifier
24 and a keysym. @xref{Keystrokes} for more information.
25
26 @item
27 The keymap data structure has been reimplemented to allow the use of a
28 character set larger than ASCII. Keymaps are no longer alists and/or
29 vectors; they are a new primary data type. Consequently, code which
30 manipulated keymaps with list or array manipulation functions will no
31 longer work. It must use the functions @code{define-key} or
32 @code{map-keymap} and @code{set-keymap-parent} (the new keymap
33 functions). @xref{Key Bindings} for more information.
34
35 @item
36 Input and display of all ISO-8859-1 characters is supported.
37
38 @item
39 Multiple fonts, including variable-width fonts, and fonts of differing
40 heights, are supported.
41
42 @item
43 There is a new @file{tags} package and a new UNIX manual browsing
44 package. They are similar to earlier versions; for more information look
45 at the source code.
46
47 @item
48 There is a new implementation of Dired, with many new features. The
49 online info for Dired, @i{not} the Dired node of Emacs info, provides
50 more detail.
51
52 @item
53 GNUS (a network news reader), VM (an alternative mail reader), ILISP (a
54 package for interacting with inferior Lisp processes), ANGE-FTP (a package
55 for making FTP-accessible files appear just like files on the local disk,
56 even to Dired), Calendar (an Emacs-based calendar and appointment-
57 management tool), and W3 (an interface to the World Wide Web) are a part
58 of the XEmacs Lisp library. See the related documentation in the
59 online info browser.
60
61 @item
62 Emacs now supports floating-point numbers.
63
64 @item
65 When you send mail, mail aliases are now expanded in the buffer. In
66 earlier versions, they were expanded after the mail-sending command was
67 executed.
68
69 @item
70 The initial value of @code{load-path} is computed when Emacs starts up,
71 instead of being hardcoded in when Emacs is compiled. As a result, you
72 can now move the Emacs executable and Lisp library to a
73 different location in the file system without having to recompile.
74
75 @item
76 Any existing subdirectories of the Emacs Lisp directory are now added to the
77 @code{load-path} by default.
78
79 @item
80 On some machines, you can change the audible bell using the
81 @code{sound-alist} variable. @xref{Audible Bell} for more information.
82
83 @item
84 You can use multiple X windows to display multiple Emacs frames.
85
86 @item
87 You can use the X selection mechanism to copy material from other
88 applications and into other applications. You can also use all Emacs
89 region commands on a region selected with the mouse. @xref{Mouse
90 Selection} for more information.
91
92 @item
93 By default, the variable @code{zmacs-regions} is set to highlight the region
94 between point and the mark. This unifies X selection and Emacs selection
95 behavior.
96
97 @item
98 XEmacs has a menu bar for mouse-controlled operations in addition to
99 keystrokes. @xref{Pull-down Menus}.
100
101 @item
102 You can look in the file @file{/usr/local/lib/xemacs-19.11/etc/Emacs.ad} for
103 a list of Emacs X resources. You can set these resources in your X
104 environment to set your preferences for color, fonts, location, and the size
105 of XEmacs frames. Refer to your X documentation for more information
106 about resources.
107
108 @unnumberedsec New Commands and Variables
109
110 There are many new functions in XEmacs, and many existing functions
111 whose semantics have been expanded. Most of these are only of interest
112 to the Emacs-Lisp programmer; see the NEWS file @kbd{C-h n} for a complete
113 list. What follows is a partial list of the new interactive commands:
114
115 @findex byte-compile-and-load-file
116 @findex byte-compile-buffer
117 @item
118 @code{byte-compile-and-load-file} and @code{byte-compile-buffer}
119 byte-compile the contents of a file or buffer.
120
121 @findex conx
122 The new @code{conx} function lets you generate random sentences for your
123 amusement.
124
125 @findex compile-defun
126 @item
127 @code{compile-defun} compiles and evaluates the current top-level
128 form.
129
130 @findex find-this-file
131 @findex find-this-file-other-window
132 @item
133 @code{find-this-file} and @code{find-this-file-other-window} can be used
134 interactively with a prefix argument to switch to the filename at point
135 in the buffer. @code{find-this-file-other-window} displays the file in
136 another window.
137
138 @findex invert-face
139 @findex make-face-bold
140 @findex make-face-bold-italic
141 @findex make-face-italic
142 @findex make-face-unbold
143 @findex make-face-unitalic
144 @findex set-face-background
145 @findex set-face-background-pixmap
146 @findex set-face-font
147 @findex set-face-foreground
148 @findex set-face-underline-p
149 @item
150 Several new functions have been added that allow you to customize the
151 color and font attributes of a region of text: @code{invert-face},
152 @code{make-face-bold}, @code{make-face-bold-italic},
153 @code{make-face-italic}, @code{make-face-unbold},
154 @code{make-face-unitalic}, @code{set-face-background},
155 @code{set-face-background-pixmap}, @code{set-face-font},
156 @code{set-face-foreground}, and @code{set-face-underline-p}.
157
158 @findex load-default-sounds
159 @findex load-sound-file
160 @findex play-sound
161 @item
162 @code{load-default-sounds} and @code{load-sound-file} allow you to
163 customize the audible bell sound. @code{load-default-sounds} loads and
164 installs sound files. @code{load-sound-file} reads in audio files and
165 adds them to the sound alist. @code{play-sound} plays the specified
166 sound type.
167
168 @findex locate-library
169 @item
170 @code{locate-library} finds the file that the function
171 @code{load-library} loads, and it displays the file's full pathname.
172
173 @findex make-directory
174 @findex remove-directory
175 @item
176 @code{make-directory} creates a directory, while @code{remove-directory}
177 removes a directory.
178
179 @findex mark-beginning-of-buffer
180 @findex mark-end-of-buffer
181 @item
182 @code{mark-beginning-of-buffer} and @code{mark-end-of-buffer} push the
183 mark to the beginning or end of a buffer, respectively.
184
185 @findex mouse-del-char
186 @findex mouse-delete-window
187 @findex mouse-keep-one-window
188 @findex mouse-kill-line
189 @findex mouse-line-length
190 @findex mouse-scroll
191 @findex mouse-select
192 @findex mouse-select-and-split
193 @findex mouse-set-mark
194 @findex mouse-set-point
195 @findex mouse-track
196 @findex mouse-track-adjust
197 @findex mouse-track-and-copy-to-cutbuffer
198 @findex mouse-track-delete-and-insert
199 @findex mouse-track-insert
200 @findex mouse-window-to-region
201 Several functions have been added that allow you to perform various
202 editing, region, and window operations using the mouse:
203 @code{mouse-del-char}, @code{mouse-delete-window},
204 @code{mouse-keep-one-window}, @code{mouse-kill-line},
205 @code{mouse-line-length}, @code{mouse-scroll}, @code{mouse-select},
206 @code{mouse-select-and-split}, @code{mouse-set-mark},
207 @code{mouse-set-point}, @code{mouse-track}, @code{mouse-track-adjust},
208 @code{mouse-track-and-copy-to-cutbuffer},
209 @code{mouse-track-delete-and-insert}, @code{mouse-track-insert}, and
210 @code{mouse-window-to-region}.
211
212 @findex compare-windows
213 @item
214 @code{compare-windows} takes an argument @var{ignore-whitespace}.
215 The argument means ignore changes in whitespace.
216
217 @end itemize
218
219 You can conditionalize your @file{.emacs} file as follows so that XEmacs
220 commands are invoked only when you are in XEmacs:
221
222 @cindex version number
223 @example
224 (cond ((string-match "Lucid" emacs-version)
225 ;;
226 ;; Code for any version of Lucid Emacs or XEmacs goes here
227 ;;
228 ))
229
230 (cond ((and (string-match "XEmacs" emacs-version)
231 (or (> emacs-major-version 19)
232 (>= emacs-minor-version 12)))
233 ;;
234 ;; Code which requires XEmacs version 19.12 or newer goes here
235 ;;
236 ))
237
238 (cond ((>= emacs-major-version 19)
239 ;;
240 ;; Code for any vintage-19 emacs goes here
241 ;;
242 ))
243
244 (cond ((and (not (string-match "Lucid" emacs-version))
245 (= emacs-major-version 19))
246 ;;
247 ;; Code specific to FSF Emacs 19 (not XEmacs) goes here
248 ;;
249 ))
250
251 (cond ((< emacs-major-version 19)
252 ;;
253 ;; Code specific to emacs 18 goes here
254 ;;
255 ))
256 @end example
257
258 Of particular interest for use in @file{.emacs} files are:
259
260 @itemize @bullet
261 @findex add-menu
262 @findex add-menu-item
263 @findex delete-menu-item
264 @findex disable-menu-item
265 @findex enable-menu-item
266 @findex relabel-menu-item
267 @item
268 @code{add-menu} lets you add a new menu to the menubar or a submenu to a
269 pull-down menu. @code{add-menu-item}, @code{disable-menu-item},
270 @code{delete-menu-item}, @code{enable-menu-item}, and
271 @code{relabel-menu-item} allow you to customize the XEmacs
272 pull-down menus.
273
274 @findex make-frame
275 @item
276 @code{make-frame} creates a new Emacs frame (X window).
277
278 @end itemize
279
280 These new variables are only present in XEmacs:
281
282 @itemize @bullet
283
284 @vindex minibuffer-confirm-incomplete
285 @item
286 @code{minibuffer-confirm-incomplete} prompts for confirmation in
287 contexts where @code{completing-read} allows answers that are not valid
288 completions.
289
290 @vindex x-mode-pointer-shape
291 @vindex x-nontext-pointer-shape
292 @vindex x-pointer-background-color
293 @vindex x-pointer-foreground-color
294 @vindex x-pointer-shape
295 @item
296 Several variables have been added that allow you to customize the color
297 and shape of the mouse pointer: @code{x-pointer-background-color},
298 @code{x-pointer-foreground-color}, @code{x-mode-pointer-shape},
299 @code{x-pointer-shape}, and @* @code{x-nontext-pointer-shape}.
300
301 @vindex zmacs-regions
302 @item
303 @code{zmacs-regions} determines whether LISPM-style active regions
304 should be used.
305 @end itemize
306
307 @unnumberedsec Changes in Key Bindings
308
309 XEmacs has the following new default function keybindings:
310
311 @table @kbd
312 @item @key{HELP}
313 Same as @kbd{C-h}.
314
315 @item @key{UNDO}
316 Same as @kbd{M-x undo}.
317
318 @item @key{CUT}
319 Same as the Cut menu item; that is, it copies the selected text to
320 the X Clipboard selection.
321
322 @item @key{COPY}
323 Same as the Copy menu item.
324
325 @item @key{PASTE}
326 Same as the Paste menu item.
327
328 @item @key{PGUP}
329 Same as @kbd{M-v}.
330
331 @item @key{PGDN}
332 Same as @kbd{C-v}.
333
334 @item @key{HOME}
335 Same as @kbd{M-<}.
336
337 @item @key{END}
338 Same as @kbd{M->}.
339
340 @item @key{LEFT-ARROW}
341 Same as the function @code{backward-char}.
342
343 @item @key{RIGHT-ARROW}
344 Same as the function @code{forward-char}.
345
346 @item @key{UP-ARROW}
347 Same as the function @code{previous-line}.
348
349 @item @key{DOWN-ARROW}
350 Same as the function @code{next-line}.
351
352 @end table
353
354
355 @end iftex