Mercurial > emacs
comparison etc/NEWS @ 77652:7359af7113b3
Try to rearrange by related topics, and some order of importance.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Sat, 05 May 2007 22:39:58 +0000 |
parents | db1d22f6f9ba |
children | 5d52aaf30988 |
comparison
equal
deleted
inserted
replaced
77651:68bbc325e84e | 77652:7359af7113b3 |
---|---|
38 * Installation Changes in Emacs 22.1 | 38 * Installation Changes in Emacs 22.1 |
39 | 39 |
40 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' | 40 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' |
41 when you run configure. This requires Gtk+ 2.4 or newer. This port | 41 when you run configure. This requires Gtk+ 2.4 or newer. This port |
42 provides a way to display multilingual text in menus (with some caveats). | 42 provides a way to display multilingual text in menus (with some caveats). |
43 | |
44 ** The Emacs Lisp Reference Manual is now part of the distribution. | |
45 | |
46 The Emacs Lisp Reference Manual in Info format is built as part of the | |
47 Emacs build procedure and installed together with the Emacs User | |
48 Manual. A menu item was added to the menu bar to make it easily | |
49 accessible (Help->More Manuals->Emacs Lisp Reference). | |
50 | |
51 ** The Introduction to Programming in Emacs Lisp manual is now part of | |
52 the distribution. | |
53 | |
54 This manual is now part of the standard distribution and is installed, | |
55 together with the Emacs User Manual, into the Info directory. A menu | |
56 item was added to the menu bar to make it easily accessible | |
57 (Help->More Manuals->Introduction to Emacs Lisp). | |
58 | |
59 ** Leim is now part of the Emacs distribution. | |
60 You no longer need to download a separate tarball in order to build | |
61 Emacs with Leim. | |
62 | |
63 ** Support for MacOS X was added. | |
64 See the files mac/README and mac/INSTALL for build instructions. | |
65 | |
66 ** Mac OS 9 port now uses the Carbon API by default. You can also | |
67 create a non-Carbon build by specifying `NonCarbon' as a target. See | |
68 the files mac/README and mac/INSTALL for build instructions. | |
69 | |
70 ** Support for a Cygwin build of Emacs was added. | |
71 | |
72 ** Support for GNU/Linux systems on X86-64 machines was added. | |
73 | |
74 ** Support for GNU/Linux systems on S390 machines was added. | |
75 | |
76 ** Support for GNU/Linux systems on Tensilica Xtensa machines was added. | |
77 | |
78 ** Support for FreeBSD/Alpha has been added. | |
79 | |
80 ** New translations of the Emacs Tutorial are available in the | |
81 following languages: Brasilian Portuguese, Bulgarian, Chinese (both | |
82 with simplified and traditional characters), French, Russian, and | |
83 Italian. Type `C-u C-h t' to choose one of them in case your language | |
84 setup doesn't automatically select the right one. | |
85 | |
86 ** New translations of the Emacs reference card are available in the | |
87 Brasilian Portuguese and Russian. The corresponding PostScript files | |
88 are also included. | |
89 | |
90 ** A French translation of the `Emacs Survival Guide' is available. | |
91 | |
92 ** Emacs now supports new configure options `--program-prefix', | |
93 `--program-suffix' and `--program-transform-name' that affect the names of | |
94 installed programs. | |
95 | |
96 ** By default, Emacs now uses a setgid helper program to update game | |
97 scores. The directory ${localstatedir}/games/emacs is the normal | |
98 place for game scores to be stored. You can control this with the | |
99 configure option `--with-game-dir'. The specific user that Emacs uses | |
100 to own the game scores is controlled by `--with-game-user'. If access | |
101 to a game user is not available, then scores will be stored separately | |
102 in each user's home directory. | |
103 | |
104 ** Emacs now includes support for loading image libraries on demand. | |
105 (Currently this feature is only used on MS Windows.) You can configure | |
106 the supported image types and their associated dynamic libraries by | |
107 setting the variable `image-library-alist'. | |
108 | |
109 ** Emacs can now be built without sound support. | |
110 | |
111 ** Emacs Lisp source files are compressed by default if `gzip' is available. | |
112 | |
113 ** All images used in Emacs have been consolidated in etc/images and subdirs. | |
114 See also the changes to `find-image', documented below. | |
43 | 115 |
44 ** Emacs comes with a new set of icons. | 116 ** Emacs comes with a new set of icons. |
45 These icons are displayed on the taskbar and/or titlebar when Emacs | 117 These icons are displayed on the taskbar and/or titlebar when Emacs |
46 runs in a graphical environment. Source files for these icons can be | 118 runs in a graphical environment. Source files for these icons can be |
47 found in etc/images/icons. (You can't change the icons displayed by | 119 found in etc/images/icons. (You can't change the icons displayed by |
48 Emacs by changing these files directly. On X, the icon is compiled | 120 Emacs by changing these files directly. On X, the icon is compiled |
49 into the Emacs executable; see gnu.h in the source tree. On MS | 121 into the Emacs executable; see gnu.h in the source tree. On MS |
50 Windows, see nt/icons/emacs.ico.) | 122 Windows, see nt/icons/emacs.ico.) |
51 | 123 |
52 ** The Emacs Lisp Reference Manual is now part of the distribution. | |
53 | |
54 The Emacs Lisp Reference Manual in Info format is built as part of the | |
55 Emacs build procedure and installed together with the Emacs User | |
56 Manual. A menu item was added to the menu bar to make it easily | |
57 accessible (Help->More Manuals->Emacs Lisp Reference). | |
58 | |
59 ** The Introduction to Programming in Emacs Lisp manual is now part of | |
60 the distribution. | |
61 | |
62 This manual is now part of the standard distribution and is installed, | |
63 together with the Emacs User Manual, into the Info directory. A menu | |
64 item was added to the menu bar to make it easily accessible | |
65 (Help->More Manuals->Introduction to Emacs Lisp). | |
66 | |
67 ** Leim is now part of the Emacs distribution. | |
68 You no longer need to download a separate tarball in order to build | |
69 Emacs with Leim. | |
70 | |
71 ** New translations of the Emacs Tutorial are available in the | |
72 following languages: Brasilian Portuguese, Bulgarian, Chinese (both | |
73 with simplified and traditional characters), French, Russian, and | |
74 Italian. Type `C-u C-h t' to choose one of them in case your language | |
75 setup doesn't automatically select the right one. | |
76 | |
77 ** New translations of the Emacs reference card are available in the | |
78 Brasilian Portuguese and Russian. The corresponding PostScript files | |
79 are also included. | |
80 | |
81 ** A French translation of the `Emacs Survival Guide' is available. | |
82 | |
83 ** Emacs now includes support for loading image libraries on demand. | |
84 (Currently this feature is only used on MS Windows.) You can configure | |
85 the supported image types and their associated dynamic libraries by | |
86 setting the variable `image-library-alist'. | |
87 | |
88 ** Support for GNU/Linux systems on X86-64 machines was added. | |
89 | |
90 ** Support for GNU/Linux systems on S390 machines was added. | |
91 | |
92 ** Support for GNU/Linux systems on Tensilica Xtensa machines was added. | |
93 | |
94 ** Support for FreeBSD/Alpha has been added. | |
95 | |
96 ** Support for a Cygwin build of Emacs was added. | |
97 | |
98 ** Support for MacOS X was added. | |
99 See the files mac/README and mac/INSTALL for build instructions. | |
100 | |
101 ** Mac OS 9 port now uses the Carbon API by default. You can also | |
102 create a non-Carbon build by specifying `NonCarbon' as a target. See | |
103 the files mac/README and mac/INSTALL for build instructions. | |
104 | |
105 ** The `emacsserver' program has been removed, replaced with Lisp code. | 124 ** The `emacsserver' program has been removed, replaced with Lisp code. |
106 | 125 |
107 ** The `yow' program has been removed. | 126 ** The `yow' program has been removed. |
108 Use the corresponding Emacs feature instead. | 127 Use the corresponding Emacs feature instead. |
109 | 128 |
110 ** Emacs now supports new configure options `--program-prefix', | 129 ** The Emacs terminal emulation in term.el uses a different terminfo name. |
111 `--program-suffix' and `--program-transform-name' that affect the names of | 130 The Emacs terminal emulation in term.el now uses "eterm-color" as its |
112 installed programs. | 131 terminfo name, since term.el now supports color. |
113 | |
114 ** By default, Emacs now uses a setgid helper program to update game | |
115 scores. The directory ${localstatedir}/games/emacs is the normal | |
116 place for game scores to be stored. You can control this with the | |
117 configure option `--with-game-dir'. The specific user that Emacs uses | |
118 to own the game scores is controlled by `--with-game-user'. If access | |
119 to a game user is not available, then scores will be stored separately | |
120 in each user's home directory. | |
121 | |
122 ** Emacs can now be built without sound support. | |
123 | |
124 ** Building with -DENABLE_CHECKING does not automatically build with union | |
125 types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. | |
126 | |
127 ** When pure storage overflows while dumping, Emacs now prints how | |
128 much pure storage it will approximately need. | |
129 | 132 |
130 ** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the | 133 ** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the |
131 contents of buffers from a core dump and save them to files easily, should | 134 contents of buffers from a core dump and save them to files easily, should |
132 Emacs crash. | 135 Emacs crash. |
133 | 136 |
134 ** The Emacs terminal emulation in term.el uses a different terminfo name. | 137 ** Building with -DENABLE_CHECKING does not automatically build with union |
135 The Emacs terminal emulation in term.el now uses "eterm-color" as its | 138 types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. |
136 terminfo name, since term.el now supports color. | 139 |
137 | 140 ** When pure storage overflows while dumping, Emacs now prints how |
138 ** Emacs Lisp source files are compressed by default if `gzip' is available. | 141 much pure storage it will approximately need. |
139 | |
140 ** All images used in Emacs have been consolidated in etc/images and subdirs. | |
141 See also the changes to `find-image', documented below. | |
142 | 142 |
143 | 143 |
144 * Startup Changes in Emacs 22.1 | 144 * Startup Changes in Emacs 22.1 |
145 | 145 |
146 ** New command line option -Q or --quick. | 146 ** Init file changes |
147 This is like using -q --no-site-file, but in addition it also disables | 147 If the init file ~/.emacs does not exist, Emacs will try |
148 the fancy startup screen. | 148 ~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file |
149 | 149 ~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh. |
150 ** New command line option -D or --basic-display. | 150 |
151 Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and | 151 ** Emacs can now be invoked in full-screen mode on a windowed display. |
152 the blinking cursor. | 152 When Emacs is invoked on a window system, the new command-line options |
153 `--fullwidth', `--fullheight', and `--fullscreen' produce a frame | |
154 whose width, height, or both width and height take up the entire | |
155 screen size. (For now, this does not work with some window managers.) | |
156 | |
157 ** Emacs now displays a splash screen by default even if command-line | |
158 arguments were given. The new command-line option --no-splash | |
159 disables the splash screen; see also the variable | |
160 `inhibit-splash-screen' (which is also aliased as | |
161 `inhibit-startup-message'). | |
162 | |
163 ** New user option `inhibit-startup-buffer-menu'. | |
164 When loading many files, for instance with `emacs *', Emacs normally | |
165 displays a buffer menu. This option turns the buffer menu off. | |
153 | 166 |
154 ** New command line option -nbc or --no-blinking-cursor disables | 167 ** New command line option -nbc or --no-blinking-cursor disables |
155 the blinking cursor on graphical terminals. | 168 the blinking cursor on graphical terminals. |
156 | 169 |
157 ** The option --script FILE runs Emacs in batch mode and loads FILE. | 170 ** The option --script FILE runs Emacs in batch mode and loads FILE. |
158 It is useful for writing Emacs Lisp shell script files, because they | 171 It is useful for writing Emacs Lisp shell script files, because they |
159 can start with this line: | 172 can start with this line: |
160 | 173 |
161 #!/usr/bin/emacs --script | 174 #!/usr/bin/emacs --script |
162 | 175 |
176 ** The -f option, used from the command line to call a function, | |
177 now reads arguments for the function interactively if it is | |
178 an interactively callable function. | |
179 | |
163 ** The option --directory DIR now modifies `load-path' immediately. | 180 ** The option --directory DIR now modifies `load-path' immediately. |
164 Directories are added to the front of `load-path' in the order they | 181 Directories are added to the front of `load-path' in the order they |
165 appear on the command line. For example, with this command line: | 182 appear on the command line. For example, with this command line: |
166 | 183 |
167 emacs -batch -L .. -L /tmp --eval "(require 'foo)" | 184 emacs -batch -L .. -L /tmp --eval "(require 'foo)" |
168 | 185 |
169 Emacs looks for library `foo' in the parent directory, then in /tmp, then | 186 Emacs looks for library `foo' in the parent directory, then in /tmp, then |
170 in the other directories in `load-path'. (-L is short for --directory.) | 187 in the other directories in `load-path'. (-L is short for --directory.) |
171 | |
172 ** The command line option --no-windows has been changed to | |
173 --no-window-system. The old one still works, but is deprecated. | |
174 | |
175 ** If the environment variable DISPLAY specifies an unreachable X display, | |
176 Emacs will now startup as if invoked with the --no-window-system option. | |
177 | |
178 ** The -f option, used from the command line to call a function, | |
179 now reads arguments for the function interactively if it is | |
180 an interactively callable function. | |
181 | 188 |
182 ** When you specify a frame size with --geometry, the size applies to | 189 ** When you specify a frame size with --geometry, the size applies to |
183 all frames you create. A position specified with --geometry only | 190 all frames you create. A position specified with --geometry only |
184 affects the initial frame. | 191 affects the initial frame. |
185 | 192 |
187 with respect to its frame position: if you don't specify a position | 194 with respect to its frame position: if you don't specify a position |
188 (in your .emacs init file, in the Registry, or with the --geometry | 195 (in your .emacs init file, in the Registry, or with the --geometry |
189 command-line option), Emacs leaves the frame position to the Windows' | 196 command-line option), Emacs leaves the frame position to the Windows' |
190 window manager. | 197 window manager. |
191 | 198 |
192 ** Emacs can now be invoked in full-screen mode on a windowed display. | 199 ** The command line option --no-windows has been changed to |
193 When Emacs is invoked on a window system, the new command-line options | 200 --no-window-system. The old one still works, but is deprecated. |
194 `--fullwidth', `--fullheight', and `--fullscreen' produce a frame | 201 |
195 whose width, height, or both width and height take up the entire | 202 ** If the environment variable DISPLAY specifies an unreachable X display, |
196 screen size. (For now, this does not work with some window managers.) | 203 Emacs will now startup as if invoked with the --no-window-system option. |
197 | |
198 ** Emacs now displays a splash screen by default even if command-line | |
199 arguments were given. The new command-line option --no-splash | |
200 disables the splash screen; see also the variable | |
201 `inhibit-splash-screen' (which is also aliased as | |
202 `inhibit-startup-message'). | |
203 | |
204 ** The default is now to use a bitmap as the icon. | |
205 The command-line options --icon-type, -i have been replaced with | |
206 options --no-bitmap-icon, -nbi to turn the bitmap icon off. | |
207 | |
208 ** New user option `inhibit-startup-buffer-menu'. | |
209 When loading many files, for instance with `emacs *', Emacs normally | |
210 displays a buffer menu. This option turns the buffer menu off. | |
211 | |
212 ** Init file changes | |
213 If the init file ~/.emacs does not exist, Emacs will try | |
214 ~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file | |
215 ~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh. | |
216 | 204 |
217 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs | 205 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs |
218 automatically at startup, if it exists. When Emacs offers to save | 206 automatically at startup, if it exists. When Emacs offers to save |
219 modified buffers, it saves the abbrevs too if they have changed. It | 207 modified buffers, it saves the abbrevs too if they have changed. It |
220 can do this either silently or asking for confirmation first, | 208 can do this either silently or asking for confirmation first, |
221 according to the value of `save-abbrevs'. | 209 according to the value of `save-abbrevs'. |
222 | 210 |
211 ** New command line option -Q or --quick. | |
212 This is like using -q --no-site-file, but in addition it also disables | |
213 the fancy startup screen. | |
214 | |
215 ** New command line option -D or --basic-display. | |
216 Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and | |
217 the blinking cursor. | |
218 | |
219 ** The default is now to use a bitmap as the icon. | |
220 The command-line options --icon-type, -i have been replaced with | |
221 options --no-bitmap-icon, -nbi to turn the bitmap icon off. | |
222 | |
223 ** If the environment variable EMAIL is defined, Emacs now uses its value | 223 ** If the environment variable EMAIL is defined, Emacs now uses its value |
224 to compute the default value of `user-mail-address', in preference to | 224 to compute the default value of `user-mail-address', in preference to |
225 concatenation of `user-login-name' with the name of your host machine. | 225 concatenation of `user-login-name' with the name of your host machine. |
226 | 226 |
227 | 227 |
229 | 229 |
230 ** You can now follow links by clicking Mouse-1 on the link. | 230 ** You can now follow links by clicking Mouse-1 on the link. |
231 | 231 |
232 See below for more details. | 232 See below for more details. |
233 | 233 |
234 ** M-g is now a prefix key. | |
235 M-g g and M-g M-g run goto-line. | |
236 M-g n and M-g M-n run next-error (like C-x `). | |
237 M-g p and M-g M-p run previous-error. | |
238 | |
239 ** C-u M-g M-g switches to the most recent previous buffer, | |
240 and goes to the specified line in that buffer. | |
241 | |
242 When goto-line starts to execute, if there's a number in the buffer at | |
243 point then it acts as the default argument for the minibuffer. | |
244 | |
245 ** M-o now is the prefix key for setting text properties; | |
246 M-o M-o requests refontification. | |
247 | |
248 ** The old bindings C-M-delete and C-M-backspace have been deleted, | |
249 since there are situations where one or the other will shut down | |
250 the operating system or your X server. | |
251 | |
252 ** When the undo information of the current command gets really large | 234 ** When the undo information of the current command gets really large |
253 (beyond the value of `undo-outer-limit'), Emacs discards it and warns | 235 (beyond the value of `undo-outer-limit'), Emacs discards it and warns |
254 you about it. | 236 you about it. |
255 | |
256 ** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special. | |
257 | |
258 See below under "incremental search changes". | |
259 | 237 |
260 ** When Emacs prompts for file names, SPC no longer completes the file name. | 238 ** When Emacs prompts for file names, SPC no longer completes the file name. |
261 This is so filenames with embedded spaces could be input without the | 239 This is so filenames with embedded spaces could be input without the |
262 need to quote the space with a C-q. The underlying changes in the | 240 need to quote the space with a C-q. The underlying changes in the |
263 keymaps that are active in the minibuffer are described below under | 241 keymaps that are active in the minibuffer are described below under |
264 "New keymaps for typing file names". | 242 "New keymaps for typing file names". |
265 | 243 |
244 ** The completion commands TAB, SPC and ? in the minibuffer apply only | |
245 to the text before point. If there is text in the buffer after point, | |
246 it remains unchanged. | |
247 | |
248 ** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special. | |
249 | |
250 See below under "incremental search changes". | |
251 | |
252 ** M-g is now a prefix key. | |
253 M-g g and M-g M-g run goto-line. | |
254 M-g n and M-g M-n run next-error (like C-x `). | |
255 M-g p and M-g M-p run previous-error. | |
256 | |
257 ** C-u M-g M-g switches to the most recent previous buffer, | |
258 and goes to the specified line in that buffer. | |
259 | |
260 When goto-line starts to execute, if there's a number in the buffer at | |
261 point then it acts as the default argument for the minibuffer. | |
262 | |
263 ** M-o now is the prefix key for setting text properties; | |
264 M-o M-o requests refontification. | |
265 | |
266 ** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer | 266 ** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer |
267 a special case. | 267 a special case. |
268 | 268 |
269 Since the default input is the current directory, this has the effect | 269 Since the default input is the current directory, this has the effect |
270 of specifying the current directory. Normally that means to visit the | 270 of specifying the current directory. Normally that means to visit the |
271 directory with Dired. | 271 directory with Dired. |
272 | 272 |
273 You can get the old behavior by typing C-x C-f M-n RET, which fetches | 273 You can get the old behavior by typing C-x C-f M-n RET, which fetches |
274 the actual file name into the minibuffer. | 274 the actual file name into the minibuffer. |
275 | |
276 ** The completion commands TAB, SPC and ? in the minibuffer apply only | |
277 to the text before point. If there is text in the buffer after point, | |
278 it remains unchanged. | |
279 | 275 |
280 ** In Dired's ! command (dired-do-shell-command), `*' and `?' now | 276 ** In Dired's ! command (dired-do-shell-command), `*' and `?' now |
281 control substitution of the file names only when they are surrounded | 277 control substitution of the file names only when they are surrounded |
282 by whitespace. This means you can now use them as shell wildcards | 278 by whitespace. This means you can now use them as shell wildcards |
283 too. If you want to use just plain `*' as a wildcard, type `*""'; the | 279 too. If you want to use just plain `*' as a wildcard, type `*""'; the |
298 ** line-move-ignore-invisible now defaults to t. | 294 ** line-move-ignore-invisible now defaults to t. |
299 | 295 |
300 ** Adaptive filling misfeature removed. | 296 ** Adaptive filling misfeature removed. |
301 It no longer treats `NNN.' or `(NNN)' as a prefix. | 297 It no longer treats `NNN.' or `(NNN)' as a prefix. |
302 | 298 |
299 ** The old bindings C-M-delete and C-M-backspace have been deleted, | |
300 since there are situations where one or the other will shut down | |
301 the operating system or your X server. | |
302 | |
303 ** The register compatibility key bindings (deprecated since Emacs 19) | 303 ** The register compatibility key bindings (deprecated since Emacs 19) |
304 have been removed: | 304 have been removed: |
305 C-x / point-to-register (Use: C-x r SPC) | 305 C-x / point-to-register (Use: C-x r SPC) |
306 C-x j jump-to-register (Use: C-x r j) | 306 C-x j jump-to-register (Use: C-x r j) |
307 C-x x copy-to-register (Use: C-x r s) | 307 C-x x copy-to-register (Use: C-x r s) |
308 C-x g insert-register (Use: C-x r i) | 308 C-x g insert-register (Use: C-x r i) |
309 | 309 |
310 | 310 |
311 * Editing Changes in Emacs 22.1 | 311 * Editing Changes in Emacs 22.1 |
312 | 312 |
313 ** The max size of buffers and integers has been doubled. | |
314 On 32bit machines, it is now 256M (i.e. 268435455). | |
315 | |
313 ** !MEM FULL! at the start of the mode line indicates that Emacs | 316 ** !MEM FULL! at the start of the mode line indicates that Emacs |
314 cannot get any more memory for Lisp data. This often means it could | 317 cannot get any more memory for Lisp data. This often means it could |
315 crash soon if you do things that use more memory. On most systems, | 318 crash soon if you do things that use more memory. On most systems, |
316 killing buffers will get out of this state. If killing buffers does | 319 killing buffers will get out of this state. If killing buffers does |
317 not make !MEM FULL! disappear, you should save your work and start | 320 not make !MEM FULL! disappear, you should save your work and start |
318 a new Emacs. | 321 a new Emacs. |
319 | 322 |
320 ** The max size of buffers and integers has been doubled. | 323 ** `undo-only' does an undo which does not redo any previous undo. |
321 On 32bit machines, it is now 256M (i.e. 268435455). | 324 |
325 ** Yanking text now discards certain text properties that can | |
326 be inconvenient when you did not expect them. The variable | |
327 `yank-excluded-properties' specifies which ones. Insertion | |
328 of register contents and rectangles also discards these properties. | |
329 | |
330 ** New command `kill-whole-line' kills an entire line at once. | |
331 By default, it is bound to C-S-<backspace>. | |
332 | |
333 ** M-SPC (just-one-space) when given a numeric argument N | |
334 converts whitespace around point to N spaces. | |
322 | 335 |
323 ** You can now switch buffers in a cyclic order with C-x C-left | 336 ** You can now switch buffers in a cyclic order with C-x C-left |
324 (previous-buffer) and C-x C-right (next-buffer). C-x left and | 337 (previous-buffer) and C-x C-right (next-buffer). C-x left and |
325 C-x right can be used as well. The functions keep a different buffer | 338 C-x right can be used as well. The functions keep a different buffer |
326 cycle for each frame, using the frame-local buffer list. | 339 cycle for each frame, using the frame-local buffer list. |
327 | 340 |
328 ** `undo-only' does an undo which does not redo any previous undo. | |
329 | |
330 ** M-SPC (just-one-space) when given a numeric argument N | |
331 converts whitespace around point to N spaces. | |
332 | |
333 ** C-x 5 C-o displays a specified buffer in another frame | 341 ** C-x 5 C-o displays a specified buffer in another frame |
334 but does not switch to that frame. It's the multi-frame | 342 but does not switch to that frame. It's the multi-frame |
335 analogue of C-x 4 C-o. | 343 analogue of C-x 4 C-o. |
336 | 344 |
337 ** New command `kill-whole-line' kills an entire line at once. | 345 ** `special-display-buffer-names' and `special-display-regexps' now |
338 By default, it is bound to C-S-<backspace>. | 346 understand two new boolean pseudo-frame-parameters `same-frame' and |
339 | 347 `same-window'. |
340 ** Yanking text now discards certain text properties that can | 348 |
341 be inconvenient when you did not expect them. The variable | 349 ** New commands to operate on pairs of open and close characters: |
342 `yank-excluded-properties' specifies which ones. Insertion | 350 `insert-pair', `delete-pair', `raise-sexp'. |
343 of register contents and rectangles also discards these properties. | 351 |
352 ** M-x setenv now expands environment variable references. | |
353 | |
354 Substrings of the form `$foo' and `${foo}' in the specified new value | |
355 now refer to the value of environment variable foo. To include a `$' | |
356 in the value, use `$$'. | |
344 | 357 |
345 ** The default values of paragraph-start and indent-line-function have | 358 ** The default values of paragraph-start and indent-line-function have |
346 been changed to reflect those used in Text mode rather than those used | 359 been changed to reflect those used in Text mode rather than those used |
347 in Indented-Text mode. | 360 in Indented-Text mode. |
348 | 361 |
349 ** New commands to operate on pairs of open and close characters: | |
350 `insert-pair', `delete-pair', `raise-sexp'. | |
351 | |
352 ** M-x setenv now expands environment variable references. | |
353 | |
354 Substrings of the form `$foo' and `${foo}' in the specified new value | |
355 now refer to the value of environment variable foo. To include a `$' | |
356 in the value, use `$$'. | |
357 | |
358 ** `special-display-buffer-names' and `special-display-regexps' now | |
359 understand two new boolean pseudo-frame-parameters `same-frame' and | |
360 `same-window'. | |
361 | |
362 ** The default for the paper size (variable ps-paper-type) is taken | 362 ** The default for the paper size (variable ps-paper-type) is taken |
363 from the locale. | 363 from the locale. |
364 | |
365 ** Help command changes: | |
366 | |
367 *** Changes in C-h bindings: | |
368 | |
369 C-h e displays the *Messages* buffer. | |
370 | |
371 C-h d runs apropos-documentation. | |
372 | |
373 C-h r visits the Emacs Manual in Info. | |
374 | |
375 C-h followed by a control character is used for displaying files | |
376 that do not change: | |
377 | |
378 C-h C-f displays the FAQ. | |
379 C-h C-e displays the PROBLEMS file. | |
380 | |
381 The info-search bindings on C-h C-f, C-h C-k and C-h C-i | |
382 have been moved to C-h F, C-h K and C-h S. | |
383 | |
384 C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands. | |
385 - C-h c and C-h k report the actual command (after possible remapping) | |
386 run by the key sequence. | |
387 - C-h w and C-h f on a command which has been remapped now report the | |
388 command it is remapped to, and the keys which can be used to run | |
389 that command. | |
390 | |
391 For example, if C-k is bound to kill-line, and kill-line is remapped | |
392 to new-kill-line, these commands now report: | |
393 - C-h c and C-h k C-k reports: | |
394 C-k runs the command new-kill-line | |
395 - C-h w and C-h f kill-line reports: | |
396 kill-line is remapped to new-kill-line which is on C-k, <deleteline> | |
397 - C-h w and C-h f new-kill-line reports: | |
398 new-kill-line is on C-k | |
399 | |
400 *** The apropos commands now accept a list of words to match. | |
401 When more than one word is specified, at least two of those words must | |
402 be present for an item to match. Regular expression matching is still | |
403 available. | |
404 | |
405 *** The new option `apropos-sort-by-scores' causes the matching items | |
406 to be sorted according to their score. The score for an item is a | |
407 number calculated to indicate how well the item matches the words or | |
408 regular expression that you entered to the apropos command. The best | |
409 match is listed first, and the calculated score is shown for each | |
410 matching item. | |
411 | |
412 *** Help commands `describe-function' and `describe-key' now show function | |
413 arguments in lowercase italics on displays that support it. To change the | |
414 default, customize face `help-argument-name' or redefine the function | |
415 `help-default-arg-highlight'. | |
416 | |
417 *** C-h v and C-h f commands now include a hyperlink to the C source for | |
418 variables and functions defined in C (if the C source is available). | |
419 | |
420 *** Help mode now only makes hyperlinks for faces when the face name is | |
421 preceded or followed by the word `face'. It no longer makes | |
422 hyperlinks for variables without variable documentation, unless | |
423 preceded by one of the words `variable' or `option'. It now makes | |
424 hyperlinks to Info anchors (or nodes) if the anchor (or node) name is | |
425 enclosed in single quotes and preceded by `info anchor' or `Info | |
426 anchor' (in addition to earlier `info node' and `Info node'). In | |
427 addition, it now makes hyperlinks to URLs as well if the URL is | |
428 enclosed in single quotes and preceded by `URL'. | |
429 | |
430 *** The new command `describe-char' (C-u C-x =) pops up a buffer with | |
431 description various information about a character, including its | |
432 encodings and syntax, its text properties, how to input, overlays, and | |
433 widgets at point. You can get more information about some of them, by | |
434 clicking on mouse-sensitive areas or moving there and pressing RET. | |
435 | |
436 *** The command `list-text-properties-at' has been deleted because | |
437 C-u C-x = gives the same information and more. | |
438 | |
439 *** New command `display-local-help' displays any local help at point | |
440 in the echo area. It is bound to `C-h .'. It normally displays the | |
441 same string that would be displayed on mouse-over using the | |
442 `help-echo' property, but, in certain cases, it can display a more | |
443 keyboard oriented alternative. | |
444 | |
445 *** New user option `help-at-pt-display-when-idle' allows to | |
446 automatically show the help provided by `display-local-help' on | |
447 point-over, after suitable idle time. The amount of idle time is | |
448 determined by the user option `help-at-pt-timer-delay' and defaults | |
449 to one second. This feature is turned off by default. | |
364 | 450 |
365 ** Mark command changes: | 451 ** Mark command changes: |
366 | 452 |
367 *** A prefix argument is no longer required to repeat a jump to a | 453 *** A prefix argument is no longer required to repeat a jump to a |
368 previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the | 454 previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the |
378 region when the mark is active in Transient Mark mode, regardless of | 464 region when the mark is active in Transient Mark mode, regardless of |
379 the last command. To start a new region with one of marking commands | 465 the last command. To start a new region with one of marking commands |
380 in Transient Mark mode, you can deactivate the active region with C-g, | 466 in Transient Mark mode, you can deactivate the active region with C-g, |
381 or set the new mark with C-SPC. | 467 or set the new mark with C-SPC. |
382 | 468 |
383 *** M-h (mark-paragraph) now accepts a prefix arg. | |
384 | |
385 With positive arg, M-h marks the current and the following paragraphs; | |
386 if the arg is negative, it marks the current and the preceding | |
387 paragraphs. | |
388 | |
389 *** Some commands do something special in Transient Mark mode when the | 469 *** Some commands do something special in Transient Mark mode when the |
390 mark is active--for instance, they limit their operation to the | 470 mark is active--for instance, they limit their operation to the |
391 region. Even if you don't normally use Transient Mark mode, you might | 471 region. Even if you don't normally use Transient Mark mode, you might |
392 want to get this behavior from a particular command. There are two | 472 want to get this behavior from a particular command. There are two |
393 ways you can enable Transient Mark mode and activate the mark, for one | 473 ways you can enable Transient Mark mode and activate the mark, for one |
405 | 485 |
406 *** Movement commands `beginning-of-buffer', `end-of-buffer', | 486 *** Movement commands `beginning-of-buffer', `end-of-buffer', |
407 `beginning-of-defun', `end-of-defun' do not set the mark if the mark | 487 `beginning-of-defun', `end-of-defun' do not set the mark if the mark |
408 is already active in Transient Mark mode. | 488 is already active in Transient Mark mode. |
409 | 489 |
410 ** Help command changes: | 490 *** M-h (mark-paragraph) now accepts a prefix arg. |
411 | 491 |
412 *** Changes in C-h bindings: | 492 With positive arg, M-h marks the current and the following paragraphs; |
413 | 493 if the arg is negative, it marks the current and the preceding |
414 C-h e displays the *Messages* buffer. | 494 paragraphs. |
415 | |
416 C-h d runs apropos-documentation. | |
417 | |
418 C-h r visits the Emacs Manual in Info. | |
419 | |
420 C-h followed by a control character is used for displaying files | |
421 that do not change: | |
422 | |
423 C-h C-f displays the FAQ. | |
424 C-h C-e displays the PROBLEMS file. | |
425 | |
426 The info-search bindings on C-h C-f, C-h C-k and C-h C-i | |
427 have been moved to C-h F, C-h K and C-h S. | |
428 | |
429 C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands. | |
430 - C-h c and C-h k report the actual command (after possible remapping) | |
431 run by the key sequence. | |
432 - C-h w and C-h f on a command which has been remapped now report the | |
433 command it is remapped to, and the keys which can be used to run | |
434 that command. | |
435 | |
436 For example, if C-k is bound to kill-line, and kill-line is remapped | |
437 to new-kill-line, these commands now report: | |
438 - C-h c and C-h k C-k reports: | |
439 C-k runs the command new-kill-line | |
440 - C-h w and C-h f kill-line reports: | |
441 kill-line is remapped to new-kill-line which is on C-k, <deleteline> | |
442 - C-h w and C-h f new-kill-line reports: | |
443 new-kill-line is on C-k | |
444 | |
445 *** Help commands `describe-function' and `describe-key' now show function | |
446 arguments in lowercase italics on displays that support it. To change the | |
447 default, customize face `help-argument-name' or redefine the function | |
448 `help-default-arg-highlight'. | |
449 | |
450 *** C-h v and C-h f commands now include a hyperlink to the C source for | |
451 variables and functions defined in C (if the C source is available). | |
452 | |
453 *** Help mode now only makes hyperlinks for faces when the face name is | |
454 preceded or followed by the word `face'. It no longer makes | |
455 hyperlinks for variables without variable documentation, unless | |
456 preceded by one of the words `variable' or `option'. It now makes | |
457 hyperlinks to Info anchors (or nodes) if the anchor (or node) name is | |
458 enclosed in single quotes and preceded by `info anchor' or `Info | |
459 anchor' (in addition to earlier `info node' and `Info node'). In | |
460 addition, it now makes hyperlinks to URLs as well if the URL is | |
461 enclosed in single quotes and preceded by `URL'. | |
462 | |
463 *** The new command `describe-char' (C-u C-x =) pops up a buffer with | |
464 description various information about a character, including its | |
465 encodings and syntax, its text properties, how to input, overlays, and | |
466 widgets at point. You can get more information about some of them, by | |
467 clicking on mouse-sensitive areas or moving there and pressing RET. | |
468 | |
469 *** The command `list-text-properties-at' has been deleted because | |
470 C-u C-x = gives the same information and more. | |
471 | |
472 *** New command `display-local-help' displays any local help at point | |
473 in the echo area. It is bound to `C-h .'. It normally displays the | |
474 same string that would be displayed on mouse-over using the | |
475 `help-echo' property, but, in certain cases, it can display a more | |
476 keyboard oriented alternative. | |
477 | |
478 *** New user option `help-at-pt-display-when-idle' allows to | |
479 automatically show the help provided by `display-local-help' on | |
480 point-over, after suitable idle time. The amount of idle time is | |
481 determined by the user option `help-at-pt-timer-delay' and defaults | |
482 to one second. This feature is turned off by default. | |
483 | |
484 *** The apropos commands now accept a list of words to match. | |
485 When more than one word is specified, at least two of those words must | |
486 be present for an item to match. Regular expression matching is still | |
487 available. | |
488 | |
489 *** The new option `apropos-sort-by-scores' causes the matching items | |
490 to be sorted according to their score. The score for an item is a | |
491 number calculated to indicate how well the item matches the words or | |
492 regular expression that you entered to the apropos command. The best | |
493 match is listed first, and the calculated score is shown for each | |
494 matching item. | |
495 | 495 |
496 ** Incremental Search changes: | 496 ** Incremental Search changes: |
497 | |
498 *** M-% typed in isearch mode invokes `query-replace' or | |
499 `query-replace-regexp' (depending on search mode) with the current | |
500 search string used as the string to replace. | |
501 | |
502 *** C-w in incremental search now grabs either a character or a word, | |
503 making the decision in a heuristic way. This new job is done by the | |
504 command `isearch-yank-word-or-char'. To restore the old behavior, | |
505 bind C-w to `isearch-yank-word' in `isearch-mode-map'. | |
506 | |
507 *** C-y in incremental search now grabs the next line if point is already | |
508 at the end of a line. | |
509 | |
510 *** C-M-w deletes and C-M-y grabs a character in isearch mode. | |
511 Another method to grab a character is to enter the minibuffer by `M-e' | |
512 and to type `C-f' at the end of the search string in the minibuffer. | |
497 | 513 |
498 *** Vertical scrolling is now possible within incremental search. | 514 *** Vertical scrolling is now possible within incremental search. |
499 To enable this feature, customize the new user option | 515 To enable this feature, customize the new user option |
500 `isearch-allow-scroll'. User written commands which satisfy stringent | 516 `isearch-allow-scroll'. User written commands which satisfy stringent |
501 constraints can be marked as "scrolling commands". See the Emacs manual | 517 constraints can be marked as "scrolling commands". See the Emacs manual |
502 for details. | 518 for details. |
503 | 519 |
504 *** C-w in incremental search now grabs either a character or a word, | |
505 making the decision in a heuristic way. This new job is done by the | |
506 command `isearch-yank-word-or-char'. To restore the old behavior, | |
507 bind C-w to `isearch-yank-word' in `isearch-mode-map'. | |
508 | |
509 *** C-y in incremental search now grabs the next line if point is already | |
510 at the end of a line. | |
511 | |
512 *** C-M-w deletes and C-M-y grabs a character in isearch mode. | |
513 Another method to grab a character is to enter the minibuffer by `M-e' | |
514 and to type `C-f' at the end of the search string in the minibuffer. | |
515 | |
516 *** M-% typed in isearch mode invokes `query-replace' or | |
517 `query-replace-regexp' (depending on search mode) with the current | |
518 search string used as the string to replace. | |
519 | |
520 *** Isearch no longer adds `isearch-resume' commands to the command | 520 *** Isearch no longer adds `isearch-resume' commands to the command |
521 history by default. To enable this feature, customize the new | 521 history by default. To enable this feature, customize the new |
522 user option `isearch-resume-in-command-history'. | 522 user option `isearch-resume-in-command-history'. |
523 | 523 |
524 ** Replace command changes: | 524 ** Replace command changes: |
525 | |
526 *** New user option `query-replace-skip-read-only': when non-nil, | |
527 `query-replace' and related functions simply ignore | |
528 a match if part of it has a read-only property. | |
529 | 525 |
530 *** When used interactively, the commands `query-replace-regexp' and | 526 *** When used interactively, the commands `query-replace-regexp' and |
531 `replace-regexp' allow \,expr to be used in a replacement string, | 527 `replace-regexp' allow \,expr to be used in a replacement string, |
532 where expr is an arbitrary Lisp expression evaluated at replacement | 528 where expr is an arbitrary Lisp expression evaluated at replacement |
533 time. `\#' in a replacement string now refers to the count of | 529 time. `\#' in a replacement string now refers to the count of |
541 `query-replace-lazy-highlight' is non-nil. | 537 `query-replace-lazy-highlight' is non-nil. |
542 | 538 |
543 *** The current match in query-replace is highlighted in new face | 539 *** The current match in query-replace is highlighted in new face |
544 `query-replace' which by default inherits from isearch face. | 540 `query-replace' which by default inherits from isearch face. |
545 | 541 |
542 *** New user option `query-replace-skip-read-only': when non-nil, | |
543 `query-replace' and related functions simply ignore | |
544 a match if part of it has a read-only property. | |
545 | |
546 ** Local variables lists: | 546 ** Local variables lists: |
547 | |
548 *** In processing a local variables list, Emacs strips the prefix and | |
549 suffix from every line before processing all the lines. | |
550 | |
551 *** Text properties in local variables. | |
552 | |
553 A file local variables list cannot specify a string with text | |
554 properties--any specified text properties are discarded. | |
555 | 547 |
556 *** If the local variables list contains any variable-value pairs that | 548 *** If the local variables list contains any variable-value pairs that |
557 are not known to be safe, Emacs shows a prompt asking whether to apply | 549 are not known to be safe, Emacs shows a prompt asking whether to apply |
558 the local variables list as a whole. In earlier versions, a prompt | 550 the local variables list as a whole. In earlier versions, a prompt |
559 was only issued for variables explicitly marked as risky (for the | 551 was only issued for variables explicitly marked as risky (for the |
587 with the form as argument, and if any returns t, the form is ok to call. | 579 with the form as argument, and if any returns t, the form is ok to call. |
588 | 580 |
589 If the form is not "ok to call", that means Emacs asks for | 581 If the form is not "ok to call", that means Emacs asks for |
590 confirmation as before. | 582 confirmation as before. |
591 | 583 |
584 *** In processing a local variables list, Emacs strips the prefix and | |
585 suffix from every line before processing all the lines. | |
586 | |
587 *** Text properties in local variables. | |
588 | |
589 A file local variables list cannot specify a string with text | |
590 properties--any specified text properties are discarded. | |
591 | |
592 ** File operation changes: | 592 ** File operation changes: |
593 | 593 |
594 *** Unquoted `$' in file names do not signal an error any more when | 594 *** Unquoted `$' in file names do not signal an error any more when |
595 the corresponding environment variable does not exist. | 595 the corresponding environment variable does not exist. |
596 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting | 596 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting |
597 is only rarely needed. | 597 is only rarely needed. |
598 | 598 |
599 *** find-file-read-only visits multiple files in read-only mode, | |
600 when the file name contains wildcard characters. | |
601 | |
602 *** find-alternate-file replaces the current file with multiple files, | |
603 when the file name contains wildcard characters. It now asks if you | |
604 wish save your changes and not just offer to kill the buffer. | |
605 | |
606 *** Auto Compression mode is now enabled by default. | |
607 | |
608 *** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. | 599 *** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. |
609 | 600 |
610 Since the default input is the current directory, this has the effect | 601 Since the default input is the current directory, this has the effect |
611 of specifying the current directory. Normally that means to visit the | 602 of specifying the current directory. Normally that means to visit the |
612 directory with Dired. | 603 directory with Dired. |
613 | 604 |
614 *** When you are root, and you visit a file whose modes specify | |
615 read-only, the Emacs buffer is now read-only too. Type C-x C-q if you | |
616 want to make the buffer writable. (As root, you can in fact alter the | |
617 file.) | |
618 | |
619 *** C-x s (save-some-buffers) now offers an option `d' to diff a buffer | 605 *** C-x s (save-some-buffers) now offers an option `d' to diff a buffer |
620 against its file, so you can see what changes you would be saving. | 606 against its file, so you can see what changes you would be saving. |
607 | |
608 *** Auto Compression mode is now enabled by default. | |
609 | |
610 *** If the user visits a file larger than `large-file-warning-threshold', | |
611 Emacs asks for confirmation. | |
621 | 612 |
622 *** The commands copy-file, rename-file, make-symbolic-link and | 613 *** The commands copy-file, rename-file, make-symbolic-link and |
623 add-name-to-file, when given a directory as the "new name" argument, | 614 add-name-to-file, when given a directory as the "new name" argument, |
624 convert it to a file name by merging in the within-directory part of | 615 convert it to a file name by merging in the within-directory part of |
625 the existing file's name. (This is the same convention that shell | 616 the existing file's name. (This is the same convention that shell |
626 commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET | 617 commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET |
627 /tmp RET copies ~/foo to /tmp/foo. | 618 /tmp RET copies ~/foo to /tmp/foo. |
628 | 619 |
629 *** When used interactively, `format-write-file' now asks for confirmation | |
630 before overwriting an existing file, unless a prefix argument is | |
631 supplied. This behavior is analogous to `write-file'. | |
632 | |
633 *** The variable `auto-save-file-name-transforms' now has a third element that | |
634 controls whether or not the function `make-auto-save-file-name' will | |
635 attempt to construct a unique auto-save name (e.g. for remote files). | |
636 | |
637 *** The new option `write-region-inhibit-fsync' disables calls to fsync | |
638 in `write-region'. This can be useful on laptops to avoid spinning up | |
639 the hard drive upon each file save. Enabling this variable may result | |
640 in data loss, use with care. | |
641 | |
642 *** If the user visits a file larger than `large-file-warning-threshold', | |
643 Emacs asks for confirmation. | |
644 | |
645 *** require-final-newline now has two new possible values: | 620 *** require-final-newline now has two new possible values: |
646 | 621 |
647 `visit' means add a newline (as an undoable change) if it's needed | 622 `visit' means add a newline (as an undoable change) if it's needed |
648 when visiting the file. | 623 when visiting the file. |
649 | 624 |
656 designed for a kind of file that should normally end in a newline | 631 designed for a kind of file that should normally end in a newline |
657 sets require-final-newline based on mode-require-final-newline. | 632 sets require-final-newline based on mode-require-final-newline. |
658 So you can customize mode-require-final-newline to control what these | 633 So you can customize mode-require-final-newline to control what these |
659 modes do. | 634 modes do. |
660 | 635 |
636 *** When you are root, and you visit a file whose modes specify | |
637 read-only, the Emacs buffer is now read-only too. Type C-x C-q if you | |
638 want to make the buffer writable. (As root, you can in fact alter the | |
639 file.) | |
640 | |
641 *** find-file-read-only visits multiple files in read-only mode, | |
642 when the file name contains wildcard characters. | |
643 | |
644 *** find-alternate-file replaces the current file with multiple files, | |
645 when the file name contains wildcard characters. It now asks if you | |
646 wish save your changes and not just offer to kill the buffer. | |
647 | |
648 *** When used interactively, `format-write-file' now asks for confirmation | |
649 before overwriting an existing file, unless a prefix argument is | |
650 supplied. This behavior is analogous to `write-file'. | |
651 | |
652 *** The variable `auto-save-file-name-transforms' now has a third element that | |
653 controls whether or not the function `make-auto-save-file-name' will | |
654 attempt to construct a unique auto-save name (e.g. for remote files). | |
655 | |
656 *** The new option `write-region-inhibit-fsync' disables calls to fsync | |
657 in `write-region'. This can be useful on laptops to avoid spinning up | |
658 the hard drive upon each file save. Enabling this variable may result | |
659 in data loss, use with care. | |
660 | |
661 ** Minibuffer changes: | 661 ** Minibuffer changes: |
662 | |
663 *** The completion commands TAB, SPC and ? in the minibuffer apply only | |
664 to the text before point. If there is text in the buffer after point, | |
665 it remains unchanged. | |
662 | 666 |
663 *** The new file-name-shadow-mode is turned ON by default, so that when | 667 *** The new file-name-shadow-mode is turned ON by default, so that when |
664 entering a file name, any prefix which Emacs will ignore is dimmed. | 668 entering a file name, any prefix which Emacs will ignore is dimmed. |
665 | 669 |
666 *** There's a new face `minibuffer-prompt'. | 670 *** There's a new face `minibuffer-prompt'. |
693 slash `/', it indicates a subdirectory that should be ignored when | 697 slash `/', it indicates a subdirectory that should be ignored when |
694 completing file names. Elements of `completion-ignored-extensions' | 698 completing file names. Elements of `completion-ignored-extensions' |
695 which do not end in a slash are never considered when a completion | 699 which do not end in a slash are never considered when a completion |
696 candidate is a directory. | 700 candidate is a directory. |
697 | 701 |
698 *** The completion commands TAB, SPC and ? in the minibuffer apply only | |
699 to the text before point. If there is text in the buffer after point, | |
700 it remains unchanged. | |
701 | |
702 *** New user option `history-delete-duplicates'. | 702 *** New user option `history-delete-duplicates'. |
703 If set to t when adding a new history element, all previous identical | 703 If set to t when adding a new history element, all previous identical |
704 elements are deleted from the history list. | 704 elements are deleted from the history list. |
705 | 705 |
706 ** Redisplay changes: | 706 ** Redisplay changes: |
707 | 707 |
708 *** Preemptive redisplay now adapts to current load and bandwidth. | 708 *** The new face `mode-line-inactive' is used to display the mode line |
709 | 709 of non-selected windows. The `mode-line' face is now used to display |
710 To avoid preempting redisplay on fast computers, networks, and displays, | 710 the mode line of the currently selected window. |
711 the arrival of new input is now performed at regular intervals during | 711 |
712 redisplay. The new variable `redisplay-preemption-period' specifies | 712 The new variable `mode-line-in-non-selected-windows' controls whether |
713 the period; the default is to check for input every 0.1 seconds. | 713 the `mode-line-inactive' face is used. |
714 | 714 |
715 *** The mode line position information now comes before the major mode. | 715 *** The mode line position information now comes before the major mode. |
716 When the file is maintained under version control, that information | 716 When the file is maintained under version control, that information |
717 appears between the position information and the major mode. | 717 appears between the position information and the major mode. |
718 | |
719 *** You can now customize the use of window fringes. To control this | |
720 for all frames, use M-x fringe-mode or the Show/Hide submenu of the | |
721 top-level Options menu, or customize the `fringe-mode' variable. To | |
722 control this for a specific frame, use the command M-x | |
723 set-fringe-style. | |
724 | |
725 *** Angle icons in the fringes can indicate the buffer boundaries. In | |
726 addition, up and down arrow bitmaps in the fringe indicate which ways | |
727 the window can be scrolled. | |
728 | |
729 This behavior is activated by setting the buffer-local variable | |
730 `indicate-buffer-boundaries' to a non-nil value. The default value of | |
731 this variable is found in `default-indicate-buffer-boundaries'. | |
732 | |
733 If value is `left' or `right', both angle and arrow bitmaps are | |
734 displayed in the left or right fringe, resp. | |
735 | |
736 The value can also be an alist which specifies the presence and | |
737 position of each bitmap individually. | |
738 | |
739 For example, ((top . left) (t . right)) places the top angle bitmap | |
740 in left fringe, the bottom angle bitmap in right fringe, and both | |
741 arrow bitmaps in right fringe. To show just the angle bitmaps in the | |
742 left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). | |
743 | |
744 *** On window systems, lines which are exactly as wide as the window | |
745 (not counting the final newline character) are no longer broken into | |
746 two lines on the display (with just the newline on the second line). | |
747 Instead, the newline now "overflows" into the right fringe, and the | |
748 cursor will be displayed in the fringe when positioned on that newline. | |
749 | |
750 The new user option 'overflow-newline-into-fringe' can be set to nil to | |
751 revert to the old behavior of continuing such lines. | |
752 | |
753 *** A window can now have individual fringe and scroll-bar settings, | |
754 in addition to the individual display margin settings. | |
755 | |
756 Such individual settings are now preserved when windows are split | |
757 horizontally or vertically, a saved window configuration is restored, | |
758 or when the frame is resized. | |
759 | |
760 *** When a window has display margin areas, the fringes are now | |
761 displayed between the margins and the buffer's text area, rather than | |
762 outside those margins. | |
718 | 763 |
719 *** New face `escape-glyph' highlights control characters and escape glyphs. | 764 *** New face `escape-glyph' highlights control characters and escape glyphs. |
720 | 765 |
721 *** Non-breaking space and hyphens are now displayed with a special | 766 *** Non-breaking space and hyphens are now displayed with a special |
722 face, either nobreak-space or escape-glyph. You can turn this off or | 767 face, either nobreak-space or escape-glyph. You can turn this off or |
739 | 784 |
740 *** Moving or scrolling through images (and other lines) taller than | 785 *** Moving or scrolling through images (and other lines) taller than |
741 the window now works sensibly, by automatically adjusting the window's | 786 the window now works sensibly, by automatically adjusting the window's |
742 vscroll property. | 787 vscroll property. |
743 | 788 |
744 *** New customize option `overline-margin' controls the space between | 789 *** Preemptive redisplay now adapts to current load and bandwidth. |
745 overline and text. | 790 |
746 | 791 To avoid preempting redisplay on fast computers, networks, and displays, |
747 *** New variable `x-underline-at-descent-line' controls the relative | 792 the arrival of new input is now performed at regular intervals during |
748 position of the underline. When set, it overrides the | 793 redisplay. The new variable `redisplay-preemption-period' specifies |
749 `x-use-underline-position-properties' variables. | 794 the period; the default is to check for input every 0.1 seconds. |
750 | |
751 *** The new face `mode-line-inactive' is used to display the mode line | |
752 of non-selected windows. The `mode-line' face is now used to display | |
753 the mode line of the currently selected window. | |
754 | |
755 The new variable `mode-line-in-non-selected-windows' controls whether | |
756 the `mode-line-inactive' face is used. | |
757 | |
758 *** You can now customize the use of window fringes. To control this | |
759 for all frames, use M-x fringe-mode or the Show/Hide submenu of the | |
760 top-level Options menu, or customize the `fringe-mode' variable. To | |
761 control this for a specific frame, use the command M-x | |
762 set-fringe-style. | |
763 | |
764 *** Angle icons in the fringes can indicate the buffer boundaries. In | |
765 addition, up and down arrow bitmaps in the fringe indicate which ways | |
766 the window can be scrolled. | |
767 | |
768 This behavior is activated by setting the buffer-local variable | |
769 `indicate-buffer-boundaries' to a non-nil value. The default value of | |
770 this variable is found in `default-indicate-buffer-boundaries'. | |
771 | |
772 If value is `left' or `right', both angle and arrow bitmaps are | |
773 displayed in the left or right fringe, resp. | |
774 | |
775 The value can also be an alist which specifies the presence and | |
776 position of each bitmap individually. | |
777 | |
778 For example, ((top . left) (t . right)) places the top angle bitmap | |
779 in left fringe, the bottom angle bitmap in right fringe, and both | |
780 arrow bitmaps in right fringe. To show just the angle bitmaps in the | |
781 left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). | |
782 | |
783 *** On window systems, lines which are exactly as wide as the window | |
784 (not counting the final newline character) are no longer broken into | |
785 two lines on the display (with just the newline on the second line). | |
786 Instead, the newline now "overflows" into the right fringe, and the | |
787 cursor will be displayed in the fringe when positioned on that newline. | |
788 | |
789 The new user option 'overflow-newline-into-fringe' can be set to nil to | |
790 revert to the old behavior of continuing such lines. | |
791 | |
792 *** When a window has display margin areas, the fringes are now | |
793 displayed between the margins and the buffer's text area, rather than | |
794 outside those margins. | |
795 | |
796 *** A window can now have individual fringe and scroll-bar settings, | |
797 in addition to the individual display margin settings. | |
798 | |
799 Such individual settings are now preserved when windows are split | |
800 horizontally or vertically, a saved window configuration is restored, | |
801 or when the frame is resized. | |
802 | 795 |
803 *** The %c and %l constructs are now ignored in frame-title-format. | 796 *** The %c and %l constructs are now ignored in frame-title-format. |
804 Due to technical limitations in how Emacs interacts with windowing | 797 Due to technical limitations in how Emacs interacts with windowing |
805 systems, these constructs often failed to render properly, and could | 798 systems, these constructs often failed to render properly, and could |
806 even cause Emacs to crash. | 799 even cause Emacs to crash. |
807 | 800 |
808 *** If value of `auto-resize-tool-bars' is `grow-only', the tool bar | 801 *** If value of `auto-resize-tool-bars' is `grow-only', the tool bar |
809 will expand as needed, but not contract automatically. To contract | 802 will expand as needed, but not contract automatically. To contract |
810 the tool bar, you must type C-l. | 803 the tool bar, you must type C-l. |
811 | 804 |
812 ** Cursor display changes: | 805 *** New customize option `overline-margin' controls the space between |
813 | 806 overline and text. |
814 *** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is | 807 |
815 now controlled by the variable `blink-cursor-alist'. | 808 *** New variable `x-underline-at-descent-line' controls the relative |
816 | 809 position of the underline. When set, it overrides the |
817 *** The X resource cursorBlink can be used to turn off cursor blinking. | 810 `x-use-underline-position-properties' variables. |
818 | |
819 *** Emacs can produce an underscore-like (horizontal bar) cursor. | |
820 The underscore cursor is set by putting `(cursor-type . hbar)' in | |
821 default-frame-alist. It supports variable heights, like the `bar' | |
822 cursor does. | |
823 | |
824 *** Display of hollow cursors now obeys the buffer-local value (if any) | |
825 of `cursor-in-non-selected-windows' in the buffer that the cursor | |
826 appears in. | |
827 | |
828 *** The variable `cursor-in-non-selected-windows' can now be set to any | |
829 of the recognized cursor types. | |
830 | |
831 *** On text terminals, the variable `visible-cursor' controls whether Emacs | |
832 uses the "very visible" cursor (the default) or the normal cursor. | |
833 | 811 |
834 ** New faces: | 812 ** New faces: |
835 | 813 |
836 *** `mode-line-highlight' is the standard face indicating mouse sensitive | 814 *** `mode-line-highlight' is the standard face indicating mouse sensitive |
837 elements on mode-line (and header-line) like `highlight' face on text | 815 elements on mode-line (and header-line) like `highlight' face on text |
849 | 827 |
850 *** `vertical-border' face is used for the vertical divider between windows. | 828 *** `vertical-border' face is used for the vertical divider between windows. |
851 | 829 |
852 ** Font-Lock (syntax highlighting) changes: | 830 ** Font-Lock (syntax highlighting) changes: |
853 | 831 |
854 *** M-o now is the prefix key for setting text properties; | |
855 M-o M-o requests refontification. | |
856 | |
857 *** All modes now support using M-x font-lock-mode to toggle | 832 *** All modes now support using M-x font-lock-mode to toggle |
858 fontification, even those such as Occur, Info, and comint-derived | 833 fontification, even those such as Occur, Info, and comint-derived |
859 modes that do their own fontification in a special way. | 834 modes that do their own fontification in a special way. |
860 | 835 |
861 The variable `Info-fontify' is no longer applicable; to disable | 836 The variable `Info-fontify' is no longer applicable; to disable |
862 fontification in Info, remove `turn-on-font-lock' from | 837 fontification in Info, remove `turn-on-font-lock' from |
863 `Info-mode-hook'. | 838 `Info-mode-hook'. |
839 | |
840 *** New standard font-lock face `font-lock-comment-delimiter-face'. | |
841 | |
842 *** New standard font-lock face `font-lock-preprocessor-face'. | |
843 | |
844 *** Easy to overlook single character negation can now be font-locked. | |
845 You can use the new variable `font-lock-negation-char-face' and the face of | |
846 the same name to customize this. Currently the cc-modes, sh-script-mode, | |
847 cperl-mode and make-mode support this. | |
864 | 848 |
865 *** Font-Lock mode: in major modes such as Lisp mode, where some Emacs | 849 *** Font-Lock mode: in major modes such as Lisp mode, where some Emacs |
866 features assume that an open-paren in column 0 is always outside of | 850 features assume that an open-paren in column 0 is always outside of |
867 any string or comment, Font-Lock now highlights any such open-paren in | 851 any string or comment, Font-Lock now highlights any such open-paren in |
868 bold-red if it is inside a string or a comment, to indicate that it | 852 bold-red if it is inside a string or a comment, to indicate that it |
869 can cause trouble. You should rewrite the string or comment so that | 853 can cause trouble. You should rewrite the string or comment so that |
870 the open-paren is not in column 0. | 854 the open-paren is not in column 0. |
871 | 855 |
872 *** New standard font-lock face `font-lock-preprocessor-face'. | 856 *** M-o now is the prefix key for setting text properties; |
873 | 857 M-o M-o requests refontification. |
874 *** New standard font-lock face `font-lock-comment-delimiter-face'. | |
875 | |
876 *** Easy to overlook single character negation can now be font-locked. | |
877 You can use the new variable `font-lock-negation-char-face' and the face of | |
878 the same name to customize this. Currently the cc-modes, sh-script-mode, | |
879 cperl-mode and make-mode support this. | |
880 | 858 |
881 *** The default settings for JIT stealth lock parameters are changed. | 859 *** The default settings for JIT stealth lock parameters are changed. |
882 The default value for the user option jit-lock-stealth-time is now nil | 860 The default value for the user option jit-lock-stealth-time is now nil |
883 instead of 3. This setting of jit-lock-stealth-time disables stealth | 861 instead of 3. This setting of jit-lock-stealth-time disables stealth |
884 fontification: on today's machines, it may be a bug in font lock | 862 fontification: on today's machines, it may be a bug in font lock |
923 it off completely. There is also a menu-item to toggle displaying of | 901 it off completely. There is also a menu-item to toggle displaying of |
924 current date and time, current line and column number in the mode-line. | 902 current date and time, current line and column number in the mode-line. |
925 | 903 |
926 *** Speedbar has moved from the "Tools" top level menu to "Show/Hide". | 904 *** Speedbar has moved from the "Tools" top level menu to "Show/Hide". |
927 | 905 |
928 *** You can exit dialog windows and menus by typing C-g. | |
929 | |
930 *** The menu item "Open File..." has been split into two items, "New File..." | 906 *** The menu item "Open File..." has been split into two items, "New File..." |
931 and "Open File...". "Open File..." now opens only existing files. This is | 907 and "Open File...". "Open File..." now opens only existing files. This is |
932 to support existing GUI file selection dialogs better. | 908 to support existing GUI file selection dialogs better. |
933 | 909 |
934 *** The file selection dialog for Gtk+, Mac, W32 and Motif/LessTif can be | 910 *** The file selection dialog for Gtk+, Mac, W32 and Motif/LessTif can be |
949 ESC, like they do for Gtk+, Mac and W32. | 925 ESC, like they do for Gtk+, Mac and W32. |
950 | 926 |
951 *** For the Gtk+ version, you can make Emacs use the old file dialog | 927 *** For the Gtk+ version, you can make Emacs use the old file dialog |
952 by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use | 928 by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use |
953 the new dialog. | 929 the new dialog. |
930 | |
931 *** You can exit dialog windows and menus by typing C-g. | |
932 | |
933 ** Buffer Menu changes: | |
934 | |
935 *** The new options `buffers-menu-show-directories' and | |
936 `buffers-menu-show-status' let you control how buffers are displayed | |
937 in the menu dropped down when you click "Buffers" from the menu bar. | |
938 | |
939 `buffers-menu-show-directories' controls whether the menu displays | |
940 leading directories as part of the file name visited by the buffer. | |
941 If its value is `unless-uniquify', the default, directories are | |
942 shown unless uniquify-buffer-name-style' is non-nil. The value of nil | |
943 and t turn the display of directories off and on, respectively. | |
944 | |
945 `buffers-menu-show-status' controls whether the Buffers menu includes | |
946 the modified and read-only status of the buffers. By default it is | |
947 t, and the status is shown. | |
948 | |
949 Setting these variables directly does not take effect until next time | |
950 the Buffers menu is regenerated. | |
951 | |
952 *** New command `Buffer-menu-toggle-files-only' toggles display of file | |
953 buffers only in the Buffer Menu. It is bound to T in Buffer Menu | |
954 mode. | |
955 | |
956 *** `buffer-menu' and `list-buffers' now list buffers whose names begin | |
957 with a space, when those buffers are visiting files. Normally buffers | |
958 whose names begin with space are omitted. | |
954 | 959 |
955 ** Mouse changes: | 960 ** Mouse changes: |
956 | 961 |
957 *** You can now follow links by clicking Mouse-1 on the link. | 962 *** You can now follow links by clicking Mouse-1 on the link. |
958 | 963 |
1004 | 1009 |
1005 *** You can now customize if selecting a region by dragging the mouse | 1010 *** You can now customize if selecting a region by dragging the mouse |
1006 shall not copy the selected text to the kill-ring by setting the new | 1011 shall not copy the selected text to the kill-ring by setting the new |
1007 variable mouse-drag-copy-region to nil. | 1012 variable mouse-drag-copy-region to nil. |
1008 | 1013 |
1009 *** mouse-wheels can now scroll a specific fraction of the window | 1014 *** Under X, mouse-wheel-mode is turned on by default. |
1010 (rather than a fixed number of lines) and the scrolling is `progressive'. | |
1011 | 1015 |
1012 *** Emacs ignores mouse-2 clicks while the mouse wheel is being moved. | 1016 *** Emacs ignores mouse-2 clicks while the mouse wheel is being moved. |
1013 | 1017 |
1014 People tend to push the mouse wheel (which counts as a mouse-2 click) | 1018 People tend to push the mouse wheel (which counts as a mouse-2 click) |
1015 unintentionally while turning the wheel, so these clicks are now | 1019 unintentionally while turning the wheel, so these clicks are now |
1016 ignored. You can customize this with the mouse-wheel-click-event and | 1020 ignored. You can customize this with the mouse-wheel-click-event and |
1017 mouse-wheel-inhibit-click-time variables. | 1021 mouse-wheel-inhibit-click-time variables. |
1018 | 1022 |
1019 *** Under X, mouse-wheel-mode is turned on by default. | 1023 *** mouse-wheels can now scroll a specific fraction of the window |
1024 (rather than a fixed number of lines) and the scrolling is `progressive'. | |
1020 | 1025 |
1021 ** Multilingual Environment (Mule) changes: | 1026 ** Multilingual Environment (Mule) changes: |
1022 | 1027 |
1023 *** You can disable character translation for a file using the -*- | 1028 *** You can disable character translation for a file using the -*- |
1024 construct. Include `enable-character-translation: nil' inside the | 1029 construct. Include `enable-character-translation: nil' inside the |
1045 emulator) works. Use `set-keyboard-coding-system' (or customize | 1050 emulator) works. Use `set-keyboard-coding-system' (or customize |
1046 keyboard-coding-system) if you prefer META to work (the old default) | 1051 keyboard-coding-system) if you prefer META to work (the old default) |
1047 or if the locale doesn't describe the character set actually generated | 1052 or if the locale doesn't describe the character set actually generated |
1048 by the keyboard. See Info node `Unibyte Mode'. | 1053 by the keyboard. See Info node `Unibyte Mode'. |
1049 | 1054 |
1050 *** The new command `revert-buffer-with-coding-system' (C-x RET r) | |
1051 revisits the current file using a coding system that you specify. | |
1052 | |
1053 *** New command `recode-region' decodes the region again by a specified | |
1054 coding system. | |
1055 | |
1056 *** The new command `recode-file-name' changes the encoding of the name | |
1057 of a file. | |
1058 | |
1059 *** New command `ucs-insert' inserts a character specified by its | |
1060 unicode. | |
1061 | |
1062 *** The new command `set-file-name-coding-system' (C-x RET F) sets | 1055 *** The new command `set-file-name-coding-system' (C-x RET F) sets |
1063 coding system for encoding and decoding file names. A new menu item | 1056 coding system for encoding and decoding file names. A new menu item |
1064 (Options->Mule->Set Coding Systems->For File Name) invokes this | 1057 (Options->Mule->Set Coding Systems->For File Name) invokes this |
1065 command. | 1058 command. |
1059 | |
1060 *** The new command `revert-buffer-with-coding-system' (C-x RET r) | |
1061 revisits the current file using a coding system that you specify. | |
1062 | |
1063 *** New command `recode-region' decodes the region again by a specified | |
1064 coding system. | |
1065 | |
1066 *** The new command `recode-file-name' changes the encoding of the name | |
1067 of a file. | |
1068 | |
1069 *** New command `ucs-insert' inserts a character specified by its | |
1070 unicode. | |
1066 | 1071 |
1067 *** New command quail-show-key shows what key (or key sequence) to type | 1072 *** New command quail-show-key shows what key (or key sequence) to type |
1068 in the current input method to input a character at point. | 1073 in the current input method to input a character at point. |
1069 | 1074 |
1070 *** Limited support for character `unification' has been added. | 1075 *** Limited support for character `unification' has been added. |
1175 *** When you set or reset a variable's value in a Customize buffer, | 1180 *** When you set or reset a variable's value in a Customize buffer, |
1176 the previous value becomes the "backup value" of the variable. | 1181 the previous value becomes the "backup value" of the variable. |
1177 You can go back to that backup value by selecting "Use Backup Value" | 1182 You can go back to that backup value by selecting "Use Backup Value" |
1178 under the "[State]" button. | 1183 under the "[State]" button. |
1179 | 1184 |
1180 ** Buffer Menu changes: | |
1181 | |
1182 *** New command `Buffer-menu-toggle-files-only' toggles display of file | |
1183 buffers only in the Buffer Menu. It is bound to T in Buffer Menu | |
1184 mode. | |
1185 | |
1186 *** `buffer-menu' and `list-buffers' now list buffers whose names begin | |
1187 with a space, when those buffers are visiting files. Normally buffers | |
1188 whose names begin with space are omitted. | |
1189 | |
1190 *** The new options `buffers-menu-show-directories' and | |
1191 `buffers-menu-show-status' let you control how buffers are displayed | |
1192 in the menu dropped down when you click "Buffers" from the menu bar. | |
1193 | |
1194 `buffers-menu-show-directories' controls whether the menu displays | |
1195 leading directories as part of the file name visited by the buffer. | |
1196 If its value is `unless-uniquify', the default, directories are | |
1197 shown unless uniquify-buffer-name-style' is non-nil. The value of nil | |
1198 and t turn the display of directories off and on, respectively. | |
1199 | |
1200 `buffers-menu-show-status' controls whether the Buffers menu includes | |
1201 the modified and read-only status of the buffers. By default it is | |
1202 t, and the status is shown. | |
1203 | |
1204 Setting these variables directly does not take effect until next time | |
1205 the Buffers menu is regenerated. | |
1206 | |
1207 ** Dired mode: | 1185 ** Dired mode: |
1208 | |
1209 *** New faces dired-header, dired-mark, dired-marked, dired-flagged, | |
1210 dired-ignored, dired-directory, dired-symlink, dired-warning | |
1211 introduced for Dired mode instead of font-lock faces. | |
1212 | |
1213 *** New Dired command `dired-compare-directories' marks files | |
1214 with different file attributes in two dired buffers. | |
1215 | |
1216 *** New Dired command `dired-do-touch' (bound to T) changes timestamps | |
1217 of marked files with the value entered in the minibuffer. | |
1218 | |
1219 *** The Dired command `dired-goto-file' is now bound to j, not M-g. | |
1220 This is to avoid hiding the global key binding of M-g. | |
1221 | 1186 |
1222 *** In Dired's ! command (dired-do-shell-command), `*' and `?' now | 1187 *** In Dired's ! command (dired-do-shell-command), `*' and `?' now |
1223 control substitution of the file names only when they are surrounded | 1188 control substitution of the file names only when they are surrounded |
1224 by whitespace. This means you can now use them as shell wildcards | 1189 by whitespace. This means you can now use them as shell wildcards |
1225 too. If you want to use just plain `*' as a wildcard, type `*""'; the | 1190 too. If you want to use just plain `*' as a wildcard, type `*""'; the |
1226 double quotes make no difference in the shell, but they prevent | 1191 double quotes make no difference in the shell, but they prevent |
1227 special treatment in `dired-do-shell-command'. | 1192 special treatment in `dired-do-shell-command'. |
1228 | 1193 |
1194 *** The Dired command `dired-goto-file' is now bound to j, not M-g. | |
1195 This is to avoid hiding the global key binding of M-g. | |
1196 | |
1197 *** New faces dired-header, dired-mark, dired-marked, dired-flagged, | |
1198 dired-ignored, dired-directory, dired-symlink, dired-warning | |
1199 introduced for Dired mode instead of font-lock faces. | |
1200 | |
1201 *** New Dired command `dired-compare-directories' marks files | |
1202 with different file attributes in two dired buffers. | |
1203 | |
1204 *** New Dired command `dired-do-touch' (bound to T) changes timestamps | |
1205 of marked files with the value entered in the minibuffer. | |
1206 | |
1229 *** In Dired, the w command now stores the current line's file name | 1207 *** In Dired, the w command now stores the current line's file name |
1230 into the kill ring. With a zero prefix arg, it stores the absolute file name. | 1208 into the kill ring. With a zero prefix arg, it stores the absolute file name. |
1231 | 1209 |
1232 *** In Dired-x, Omitting files is now a minor mode, dired-omit-mode. | 1210 *** In Dired-x, Omitting files is now a minor mode, dired-omit-mode. |
1233 | 1211 |
1240 have been renamed to directory-free-space-program and | 1218 have been renamed to directory-free-space-program and |
1241 directory-free-space-args, and they now apply whenever Emacs puts a | 1219 directory-free-space-args, and they now apply whenever Emacs puts a |
1242 directory listing into a buffer. | 1220 directory listing into a buffer. |
1243 | 1221 |
1244 ** Comint changes: | 1222 ** Comint changes: |
1223 | |
1224 *** The new INSIDE_EMACS environment variable is set to "t" in subshells | |
1225 running inside Emacs. This supersedes the EMACS environment variable, | |
1226 which will be removed in a future Emacs release. Programs that need | |
1227 to know whether they are started inside Emacs should check INSIDE_EMACS | |
1228 instead of EMACS. | |
1245 | 1229 |
1246 *** The comint prompt can now be made read-only, using the new user | 1230 *** The comint prompt can now be made read-only, using the new user |
1247 option `comint-prompt-read-only'. This is not enabled by default, | 1231 option `comint-prompt-read-only'. This is not enabled by default, |
1248 except in IELM buffers. The read-only status of IELM prompts can be | 1232 except in IELM buffers. The read-only status of IELM prompts can be |
1249 controlled with the new user option `ielm-prompt-read-only', which | 1233 controlled with the new user option `ielm-prompt-read-only', which |
1271 | 1255 |
1272 *** `comint-use-prompt-regexp-instead-of-fields' has been renamed | 1256 *** `comint-use-prompt-regexp-instead-of-fields' has been renamed |
1273 `comint-use-prompt-regexp'. The old name has been kept as an alias, | 1257 `comint-use-prompt-regexp'. The old name has been kept as an alias, |
1274 but declared obsolete. | 1258 but declared obsolete. |
1275 | 1259 |
1276 *** The new INSIDE_EMACS environment variable is set to "t" in subshells | |
1277 running inside Emacs. This supersedes the EMACS environment variable, | |
1278 which will be removed in a future Emacs release. Programs that need | |
1279 to know whether they are started inside Emacs should check INSIDE_EMACS | |
1280 instead of EMACS. | |
1281 | |
1282 ** M-x Compile changes: | 1260 ** M-x Compile changes: |
1283 | 1261 |
1284 *** M-x compile has become more robust and reliable | 1262 *** M-x compile has become more robust and reliable |
1285 | 1263 |
1286 Quite a few more kinds of messages are recognized. Messages that are | 1264 Quite a few more kinds of messages are recognized. Messages that are |
1328 no arrow is displayed and a value of nil means display the message at the top | 1306 no arrow is displayed and a value of nil means display the message at the top |
1329 of the window. | 1307 of the window. |
1330 | 1308 |
1331 ** Occur mode changes: | 1309 ** Occur mode changes: |
1332 | 1310 |
1333 *** In the *Occur* buffer, `o' switches to it in another window, and | |
1334 C-o displays the current line's occurrence in another window without | |
1335 switching to it. | |
1336 | |
1337 *** You can now use next-error (C-x `) and previous-error to advance to | |
1338 the next/previous matching line found by M-x occur. | |
1339 | |
1340 *** The new command `multi-occur' is just like `occur', except it can | 1311 *** The new command `multi-occur' is just like `occur', except it can |
1341 search multiple buffers. There is also a new command | 1312 search multiple buffers. There is also a new command |
1342 `multi-occur-in-matching-buffers' which allows you to specify the | 1313 `multi-occur-in-matching-buffers' which allows you to specify the |
1343 buffers to search by their filenames or buffer names. Internally, | 1314 buffers to search by their filenames or buffer names. Internally, |
1344 Occur mode has been rewritten, and now uses font-lock, among other | 1315 Occur mode has been rewritten, and now uses font-lock, among other |
1345 changes. | 1316 changes. |
1346 | 1317 |
1318 *** You can now use next-error (C-x `) and previous-error to advance to | |
1319 the next/previous matching line found by M-x occur. | |
1320 | |
1321 *** In the *Occur* buffer, `o' switches to it in another window, and | |
1322 C-o displays the current line's occurrence in another window without | |
1323 switching to it. | |
1324 | |
1347 ** Grep changes: | 1325 ** Grep changes: |
1348 | 1326 |
1349 *** Grep has been decoupled from compilation mode setup. | 1327 *** Grep has been decoupled from compilation mode setup. |
1350 | 1328 |
1351 There's a new separate package grep.el, with its own submenu and | 1329 There's a new separate package grep.el, with its own submenu and |
1371 | 1349 |
1372 *** The grep commands provide highlighting support. | 1350 *** The grep commands provide highlighting support. |
1373 | 1351 |
1374 Hits are fontified in green, and hits in binary files in orange. Grep buffers | 1352 Hits are fontified in green, and hits in binary files in orange. Grep buffers |
1375 can be saved and automatically revisited. | 1353 can be saved and automatically revisited. |
1376 | |
1377 *** The new variables `grep-window-height' and `grep-scroll-output' override | |
1378 the corresponding compilation mode settings, for grep commands only. | |
1379 | 1354 |
1380 *** New option `grep-highlight-matches' highlights matches in *grep* | 1355 *** New option `grep-highlight-matches' highlights matches in *grep* |
1381 buffer. It uses a special feature of some grep programs which accept | 1356 buffer. It uses a special feature of some grep programs which accept |
1382 --color option to output markers around matches. When going to the next | 1357 --color option to output markers around matches. When going to the next |
1383 match with `next-error' the exact match is highlighted in the source | 1358 match with `next-error' the exact match is highlighted in the source |
1397 detects whether this is possible or not the first time it is invoked. | 1372 detects whether this is possible or not the first time it is invoked. |
1398 When `-H' is used, the grep command line supplied by the user is passed | 1373 When `-H' is used, the grep command line supplied by the user is passed |
1399 unchanged to the system to execute, which allows more complicated | 1374 unchanged to the system to execute, which allows more complicated |
1400 command lines to be used than was possible before. | 1375 command lines to be used than was possible before. |
1401 | 1376 |
1377 *** The new variables `grep-window-height' and `grep-scroll-output' override | |
1378 the corresponding compilation mode settings, for grep commands only. | |
1379 | |
1380 ** Cursor display changes: | |
1381 | |
1382 *** Emacs can produce an underscore-like (horizontal bar) cursor. | |
1383 The underscore cursor is set by putting `(cursor-type . hbar)' in | |
1384 default-frame-alist. It supports variable heights, like the `bar' | |
1385 cursor does. | |
1386 | |
1387 *** The variable `cursor-in-non-selected-windows' can now be set to any | |
1388 of the recognized cursor types. | |
1389 | |
1390 *** Display of hollow cursors now obeys the buffer-local value (if any) | |
1391 of `cursor-in-non-selected-windows' in the buffer that the cursor | |
1392 appears in. | |
1393 | |
1394 *** On text terminals, the variable `visible-cursor' controls whether Emacs | |
1395 uses the "very visible" cursor (the default) or the normal cursor. | |
1396 | |
1397 *** The X resource cursorBlink can be used to turn off cursor blinking. | |
1398 | |
1399 *** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is | |
1400 now controlled by the variable `blink-cursor-alist'. | |
1401 | |
1402 ** X Windows Support: | 1402 ** X Windows Support: |
1403 | 1403 |
1404 *** Emacs now supports drag and drop for X. Dropping a file on a window | 1404 *** Emacs now supports drag and drop for X. Dropping a file on a window |
1405 opens it, dropping text inserts the text. Dropping a file on a dired | 1405 opens it, dropping text inserts the text. Dropping a file on a dired |
1406 buffer copies or moves the file to that directory. | 1406 buffer copies or moves the file to that directory. |
1407 | 1407 |
1408 *** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). | 1408 *** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). |
1409 The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', | 1409 The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', |
1410 and `x-super-keysym' can be used to choose which keysyms Emacs should | 1410 and `x-super-keysym' can be used to choose which keysyms Emacs should |
1411 use for the modifiers. For example, the following two lines swap | 1411 use for the modifiers. For example, the following two lines swap |
1480 Values lower than 1.0, shrink the arrow. | 1480 Values lower than 1.0, shrink the arrow. |
1481 Values greater than 1.0, expand the arrow. | 1481 Values greater than 1.0, expand the arrow. |
1482 | 1482 |
1483 * New Modes and Packages in Emacs 22.1 | 1483 * New Modes and Packages in Emacs 22.1 |
1484 | 1484 |
1485 ** ERC is now part of the Emacs distribution. | |
1486 | |
1487 ERC is a powerful, modular, and extensible IRC client for Emacs. | |
1488 | |
1489 To see what modules are available, type | |
1490 M-x customize-option erc-modules RET. | |
1491 | |
1492 To start an IRC session with ERC, type M-x erc, and follow the prompts | |
1493 for server, port, and nick. | |
1494 | |
1495 ** Rcirc is now part of the Emacs distribution. | |
1496 | |
1497 Rcirc is an Internet relay chat (IRC) client. It supports | |
1498 simultaneous connections to multiple IRC servers. Each discussion | |
1499 takes place in its own buffer. For each connection you can join | |
1500 several channels (many-to-many) and participate in private | |
1501 (one-to-one) chats. Both channel and private chats are contained in | |
1502 separate buffers. | |
1503 | |
1504 To start an IRC session using the default parameters, type M-x irc. | |
1505 If you type C-u M-x irc, it prompts you for the server, nick, port and | |
1506 startup channel parameters before connecting. | |
1507 | |
1508 ** Newsticker is now part of the Emacs distribution. | |
1509 | |
1510 Newsticker asynchronously retrieves headlines (RSS) from a list of news | |
1511 sites, prepares these headlines for reading, and allows for loading the | |
1512 corresponding articles in a web browser. Its documentation is in a | |
1513 separate manual. | |
1514 | |
1515 ** savehist saves minibuffer histories between sessions. | |
1516 To use this feature, turn on savehist-mode in your `.emacs' file. | |
1517 | |
1518 ** Filesets are collections of files. You can define a fileset in | |
1519 various ways, such as based on a directory tree or based on | |
1520 program files that include other program files. | |
1521 | |
1522 Once you have defined a fileset, you can perform various operations on | |
1523 all the files in it, such as visiting them or searching and replacing | |
1524 in them. | |
1525 | |
1526 ** Calc is now part of the Emacs distribution. | |
1527 | |
1528 Calc is an advanced desk calculator and mathematical tool written in | |
1529 Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc | |
1530 can be started with `C-x * *'. The Calc manual is separate from the | |
1531 Emacs manual; within Emacs, type "C-h i m calc RET" to read the | |
1532 manual. A reference card is available in `etc/calccard.tex' and | |
1533 `etc/calccard.ps'. | |
1534 | |
1535 ** The new package ibuffer provides a powerful, completely | |
1536 customizable replacement for buff-menu.el. | |
1537 | |
1538 ** Ido mode is now part of the Emacs distribution. | |
1539 | |
1540 The ido (interactively do) package is an extension of the iswitchb | |
1541 package to do interactive opening of files and directories in addition | |
1542 to interactive buffer switching. Ido is a superset of iswitchb (with | |
1543 a few exceptions), so don't enable both packages. | |
1544 | |
1545 ** Image files are normally visited in Image mode, which lets you toggle | |
1546 between viewing the image and viewing the text using C-c C-c. | |
1547 | |
1548 ** CUA mode is now part of the Emacs distribution. | 1485 ** CUA mode is now part of the Emacs distribution. |
1549 | 1486 |
1550 The new cua package provides CUA-like keybindings using C-x for | 1487 The new cua package provides CUA-like keybindings using C-x for |
1551 cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo. | 1488 cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo. |
1552 With cua, the region can be set and extended using shifted movement | 1489 With cua, the region can be set and extended using shifted movement |
1591 Note: This version of cua mode is not backwards compatible with older | 1528 Note: This version of cua mode is not backwards compatible with older |
1592 versions of cua.el and cua-mode.el. To ensure proper operation, you | 1529 versions of cua.el and cua-mode.el. To ensure proper operation, you |
1593 must remove older versions of cua.el or cua-mode.el as well as the | 1530 must remove older versions of cua.el or cua-mode.el as well as the |
1594 loading and customization of those packages from the .emacs file. | 1531 loading and customization of those packages from the .emacs file. |
1595 | 1532 |
1533 ** Tramp is now part of the distribution. | |
1534 | |
1535 This package is similar to Ange-FTP: it allows you to edit remote | |
1536 files. But whereas Ange-FTP uses FTP to access the remote host, | |
1537 Tramp uses a shell connection. The shell connection is always used | |
1538 for filename completion and directory listings and suchlike, but for | |
1539 the actual file transfer, you can choose between the so-called | |
1540 `inline' methods (which transfer the files through the shell | |
1541 connection using base64 or uu encoding) and the `out-of-band' methods | |
1542 (which invoke an external copying program such as `rcp' or `scp' or | |
1543 `rsync' to do the copying). | |
1544 | |
1545 Shell connections can be acquired via `rsh', `ssh', `telnet' and also | |
1546 `su' and `sudo'. Ange-FTP is still supported via the `ftp' method. | |
1547 | |
1548 If you want to disable Tramp you should set | |
1549 | |
1550 (setq tramp-default-method "ftp") | |
1551 | |
1552 Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x | |
1553 tramp-unload-tramp. | |
1554 | |
1555 ** The image-dired.el package allows you to easily view, tag and in | |
1556 other ways manipulate image files and their thumbnails, using dired as | |
1557 the main interface. Image-Dired provides functionality to generate | |
1558 simple image galleries. | |
1559 | |
1560 ** Image files are normally visited in Image mode, which lets you toggle | |
1561 between viewing the image and viewing the text using C-c C-c. | |
1562 | |
1563 ** The new python.el package is used to edit Python and Jython programs. | |
1564 | |
1565 ** The URL package (which had been part of W3) is now part of Emacs. | |
1566 | |
1567 ** Calc is now part of the Emacs distribution. | |
1568 | |
1569 Calc is an advanced desk calculator and mathematical tool written in | |
1570 Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc | |
1571 can be started with `C-x * *'. The Calc manual is separate from the | |
1572 Emacs manual; within Emacs, type "C-h i m calc RET" to read the | |
1573 manual. A reference card is available in `etc/calccard.tex' and | |
1574 `etc/calccard.ps'. | |
1575 | |
1596 ** Org mode is now part of the Emacs distribution | 1576 ** Org mode is now part of the Emacs distribution |
1597 | 1577 |
1598 Org mode is a mode for keeping notes, maintaining ToDo lists, and | 1578 Org mode is a mode for keeping notes, maintaining ToDo lists, and |
1599 doing project planning with a fast and effective plain-text system. | 1579 doing project planning with a fast and effective plain-text system. |
1600 It also contains a plain-text table editor with spreadsheet-like | 1580 It also contains a plain-text table editor with spreadsheet-like |
1605 | 1585 |
1606 The documentation for org-mode is in a separate manual; within Emacs, | 1586 The documentation for org-mode is in a separate manual; within Emacs, |
1607 type "C-h i m org RET" to read that manual. A reference card is | 1587 type "C-h i m org RET" to read that manual. A reference card is |
1608 available in `etc/orgcard.tex' and `etc/orgcard.ps'. | 1588 available in `etc/orgcard.tex' and `etc/orgcard.ps'. |
1609 | 1589 |
1610 ** The new package dns-mode.el adds syntax highlighting of DNS master files. | 1590 ** ERC is now part of the Emacs distribution. |
1611 It is a modern replacement for zone-mode.el, which is now obsolete. | 1591 |
1592 ERC is a powerful, modular, and extensible IRC client for Emacs. | |
1593 | |
1594 To see what modules are available, type | |
1595 M-x customize-option erc-modules RET. | |
1596 | |
1597 To start an IRC session with ERC, type M-x erc, and follow the prompts | |
1598 for server, port, and nick. | |
1599 | |
1600 ** Rcirc is now part of the Emacs distribution. | |
1601 | |
1602 Rcirc is an Internet relay chat (IRC) client. It supports | |
1603 simultaneous connections to multiple IRC servers. Each discussion | |
1604 takes place in its own buffer. For each connection you can join | |
1605 several channels (many-to-many) and participate in private | |
1606 (one-to-one) chats. Both channel and private chats are contained in | |
1607 separate buffers. | |
1608 | |
1609 To start an IRC session using the default parameters, type M-x irc. | |
1610 If you type C-u M-x irc, it prompts you for the server, nick, port and | |
1611 startup channel parameters before connecting. | |
1612 | |
1613 ** The new package ibuffer provides a powerful, completely | |
1614 customizable replacement for buff-menu.el. | |
1615 | |
1616 ** Newsticker is now part of the Emacs distribution. | |
1617 | |
1618 Newsticker asynchronously retrieves headlines (RSS) from a list of news | |
1619 sites, prepares these headlines for reading, and allows for loading the | |
1620 corresponding articles in a web browser. Its documentation is in a | |
1621 separate manual. | |
1622 | |
1623 ** The wdired.el package allows you to use normal editing commands on Dired | |
1624 buffers to change filenames, permissions, etc... | |
1625 | |
1626 ** Ido mode is now part of the Emacs distribution. | |
1627 | |
1628 The ido (interactively do) package is an extension of the iswitchb | |
1629 package to do interactive opening of files and directories in addition | |
1630 to interactive buffer switching. Ido is a superset of iswitchb (with | |
1631 a few exceptions), so don't enable both packages. | |
1612 | 1632 |
1613 ** The new global minor mode `file-name-shadow-mode' modifies the way | 1633 ** The new global minor mode `file-name-shadow-mode' modifies the way |
1614 filenames being entered by the user in the minibuffer are displayed, so | 1634 filenames being entered by the user in the minibuffer are displayed, so |
1615 that it's clear when part of the entered filename will be ignored due to | 1635 that it's clear when part of the entered filename will be ignored due to |
1616 Emacs' filename parsing rules. The ignored portion can be made dim, | 1636 Emacs' filename parsing rules. The ignored portion can be made dim, |
1617 invisible, or otherwise less visually noticeable. The display method can | 1637 invisible, or otherwise less visually noticeable. The display method can |
1618 be displayed by customizing the variable `file-name-shadow-properties'. | 1638 be displayed by customizing the variable `file-name-shadow-properties'. |
1619 | 1639 |
1620 ** The new package flymake.el does on-the-fly syntax checking of program | 1640 ** Emacs' keyboard macro facilities have been enhanced by the new |
1621 source files. See the Flymake's Info manual for more details. | 1641 kmacro package. |
1642 | |
1643 Keyboard macros are now defined and executed via the F3 and F4 keys: | |
1644 F3 starts a macro, F4 ends the macro, and pressing F4 again executes | |
1645 the last macro. While defining the macro, F3 inserts a counter value | |
1646 which automatically increments every time the macro is executed. | |
1647 | |
1648 There is now a keyboard macro ring which stores the most recently | |
1649 defined macros. | |
1650 | |
1651 The C-x C-k sequence is now a prefix for the kmacro keymap which | |
1652 defines bindings for moving through the keyboard macro ring, | |
1653 C-x C-k C-p and C-x C-k C-n, editing the last macro C-x C-k C-e, | |
1654 manipulating the macro counter and format via C-x C-k C-c, | |
1655 C-x C-k C-a, and C-x C-k C-f. See the commentary in kmacro.el | |
1656 for more commands. | |
1657 | |
1658 The original macro bindings C-x (, C-x ), and C-x e are still | |
1659 available, but they now interface to the keyboard macro ring too. | |
1660 | |
1661 The C-x e command now automatically terminates the current macro | |
1662 before calling it, if used while defining a macro. | |
1663 | |
1664 In addition, when ending or calling a macro with C-x e, the macro can | |
1665 be repeated immediately by typing just the `e'. You can customize | |
1666 this behavior via the variables kmacro-call-repeat-key and | |
1667 kmacro-call-repeat-with-arg. | |
1668 | |
1669 Keyboard macros can now be debugged and edited interactively. | |
1670 C-x C-k SPC steps through the last keyboard macro one key sequence | |
1671 at a time, prompting for the actions to take. | |
1622 | 1672 |
1623 ** The new keypad setup package provides several common bindings for | 1673 ** The new keypad setup package provides several common bindings for |
1624 the numeric keypad which is available on most keyboards. The numeric | 1674 the numeric keypad which is available on most keyboards. The numeric |
1625 keypad typically has the digits 0 to 9, a decimal point, keys marked | 1675 keypad typically has the digits 0 to 9, a decimal point, keys marked |
1626 +, -, /, and *, an Enter key, and a NumLock toggle key. The keypad | 1676 +, -, /, and *, an Enter key, and a NumLock toggle key. The keypad |
1642 where the keys work like (shifted) arrow keys, home/end, etc., and | 1692 where the keys work like (shifted) arrow keys, home/end, etc., and |
1643 `Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.) | 1693 `Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.) |
1644 are left unspecified and can be bound individually through the global | 1694 are left unspecified and can be bound individually through the global |
1645 or local keymaps. | 1695 or local keymaps. |
1646 | 1696 |
1647 ** Emacs' keyboard macro facilities have been enhanced by the new | 1697 ** The printing package is now part of the Emacs distribution. |
1648 kmacro package. | 1698 |
1649 | 1699 If you enable the printing package by including (require 'printing) in |
1650 Keyboard macros are now defined and executed via the F3 and F4 keys: | 1700 the .emacs file, the normal Print item on the File menu is replaced |
1651 F3 starts a macro, F4 ends the macro, and pressing F4 again executes | 1701 with a Print sub-menu which allows you to preview output through |
1652 the last macro. While defining the macro, F3 inserts a counter value | 1702 ghostview, use ghostscript to print (if you don't have a PostScript |
1653 which automatically increments every time the macro is executed. | 1703 printer) or send directly to printer a PostScript code generated by |
1654 | 1704 `ps-print' package. Use M-x pr-help for more information. |
1655 There is now a keyboard macro ring which stores the most recently | |
1656 defined macros. | |
1657 | |
1658 The C-x C-k sequence is now a prefix for the kmacro keymap which | |
1659 defines bindings for moving through the keyboard macro ring, | |
1660 C-x C-k C-p and C-x C-k C-n, editing the last macro C-x C-k C-e, | |
1661 manipulating the macro counter and format via C-x C-k C-c, | |
1662 C-x C-k C-a, and C-x C-k C-f. See the commentary in kmacro.el | |
1663 for more commands. | |
1664 | |
1665 The original macro bindings C-x (, C-x ), and C-x e are still | |
1666 available, but they now interface to the keyboard macro ring too. | |
1667 | |
1668 The C-x e command now automatically terminates the current macro | |
1669 before calling it, if used while defining a macro. | |
1670 | |
1671 In addition, when ending or calling a macro with C-x e, the macro can | |
1672 be repeated immediately by typing just the `e'. You can customize | |
1673 this behavior via the variables kmacro-call-repeat-key and | |
1674 kmacro-call-repeat-with-arg. | |
1675 | |
1676 Keyboard macros can now be debugged and edited interactively. | |
1677 C-x C-k SPC steps through the last keyboard macro one key sequence | |
1678 at a time, prompting for the actions to take. | |
1679 | |
1680 ** New minor mode, Visible mode, toggles invisibility in the current buffer. | |
1681 When enabled, it makes all invisible text visible. When disabled, it | |
1682 restores the previous value of `buffer-invisibility-spec'. | |
1683 | |
1684 ** The wdired.el package allows you to use normal editing commands on Dired | |
1685 buffers to change filenames, permissions, etc... | |
1686 | 1705 |
1687 ** The new package longlines.el provides a minor mode for editing text | 1706 ** The new package longlines.el provides a minor mode for editing text |
1688 files composed of long lines, based on the `use-hard-newlines' | 1707 files composed of long lines, based on the `use-hard-newlines' |
1689 mechanism. The long lines are broken up by inserting soft newlines, | 1708 mechanism. The long lines are broken up by inserting soft newlines, |
1690 which are automatically removed when saving the file to disk or | 1709 which are automatically removed when saving the file to disk or |
1692 mode inserts soft newlines automatically during editing, a behavior | 1711 mode inserts soft newlines automatically during editing, a behavior |
1693 referred to as "soft word wrap" in other text editors. This is | 1712 referred to as "soft word wrap" in other text editors. This is |
1694 similar to Refill mode, but more reliable. To turn the word wrap | 1713 similar to Refill mode, but more reliable. To turn the word wrap |
1695 feature off, set `longlines-auto-wrap' to nil. | 1714 feature off, set `longlines-auto-wrap' to nil. |
1696 | 1715 |
1697 ** The printing package is now part of the Emacs distribution. | |
1698 | |
1699 If you enable the printing package by including (require 'printing) in | |
1700 the .emacs file, the normal Print item on the File menu is replaced | |
1701 with a Print sub-menu which allows you to preview output through | |
1702 ghostview, use ghostscript to print (if you don't have a PostScript | |
1703 printer) or send directly to printer a PostScript code generated by | |
1704 `ps-print' package. Use M-x pr-help for more information. | |
1705 | |
1706 ** The minor mode Reveal mode makes text visible on the fly as you | |
1707 move your cursor into hidden regions of the buffer. | |
1708 It should work with any package that uses overlays to hide parts | |
1709 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... | |
1710 | |
1711 There is also Global Reveal mode which affects all buffers. | |
1712 | |
1713 ** The ruler-mode.el library provides a minor mode for displaying an | |
1714 "active" ruler in the header line. You can use the mouse to visually | |
1715 change the `fill-column', `window-margins' and `tab-stop-list' | |
1716 settings. | |
1717 | |
1718 ** SES mode (ses-mode) is a new major mode for creating and editing | 1716 ** SES mode (ses-mode) is a new major mode for creating and editing |
1719 spreadsheet files. Besides the usual Emacs features (intuitive command | 1717 spreadsheet files. Besides the usual Emacs features (intuitive command |
1720 letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers | 1718 letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers |
1721 viral immunity and import/export of tab-separated values. | 1719 viral immunity and import/export of tab-separated values. |
1722 | |
1723 ** The new global minor mode `size-indication-mode' (off by default) | |
1724 shows the size of accessible part of the buffer on the mode line. | |
1725 | 1720 |
1726 ** The new package table.el implements editable, WYSIWYG, embedded | 1721 ** The new package table.el implements editable, WYSIWYG, embedded |
1727 `text tables' in Emacs buffers. It simulates the effect of putting | 1722 `text tables' in Emacs buffers. It simulates the effect of putting |
1728 these tables in a special major mode. The package emulates WYSIWYG | 1723 these tables in a special major mode. The package emulates WYSIWYG |
1729 table editing available in modern word processors. The package also | 1724 table editing available in modern word processors. The package also |
1730 can generate a table source in typesetting and markup languages such | 1725 can generate a table source in typesetting and markup languages such |
1731 as latex and html from the visually laid out text table. | 1726 as latex and html from the visually laid out text table. |
1732 | 1727 |
1733 ** The image-dired.el package allows you to easily view, tag and in | 1728 ** Filesets are collections of files. You can define a fileset in |
1734 other ways manipulate image files and their thumbnails, using dired as | 1729 various ways, such as based on a directory tree or based on |
1735 the main interface. Image-Dired provides functionality to generate | 1730 program files that include other program files. |
1736 simple image galleries. | 1731 |
1737 | 1732 Once you have defined a fileset, you can perform various operations on |
1738 ** Tramp is now part of the distribution. | 1733 all the files in it, such as visiting them or searching and replacing |
1739 | 1734 in them. |
1740 This package is similar to Ange-FTP: it allows you to edit remote | 1735 |
1741 files. But whereas Ange-FTP uses FTP to access the remote host, | 1736 ** The minor mode Reveal mode makes text visible on the fly as you |
1742 Tramp uses a shell connection. The shell connection is always used | 1737 move your cursor into hidden regions of the buffer. |
1743 for filename completion and directory listings and suchlike, but for | 1738 It should work with any package that uses overlays to hide parts |
1744 the actual file transfer, you can choose between the so-called | 1739 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... |
1745 `inline' methods (which transfer the files through the shell | 1740 |
1746 connection using base64 or uu encoding) and the `out-of-band' methods | 1741 There is also Global Reveal mode which affects all buffers. |
1747 (which invoke an external copying program such as `rcp' or `scp' or | 1742 |
1748 `rsync' to do the copying). | 1743 ** New minor mode, Visible mode, toggles invisibility in the current buffer. |
1749 | 1744 When enabled, it makes all invisible text visible. When disabled, it |
1750 Shell connections can be acquired via `rsh', `ssh', `telnet' and also | 1745 restores the previous value of `buffer-invisibility-spec'. |
1751 `su' and `sudo'. Ange-FTP is still supported via the `ftp' method. | 1746 |
1752 | 1747 ** The new package flymake.el does on-the-fly syntax checking of program |
1753 If you want to disable Tramp you should set | 1748 source files. See the Flymake's Info manual for more details. |
1754 | 1749 |
1755 (setq tramp-default-method "ftp") | 1750 ** savehist saves minibuffer histories between sessions. |
1756 | 1751 To use this feature, turn on savehist-mode in your `.emacs' file. |
1757 Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x | 1752 |
1758 tramp-unload-tramp. | 1753 ** The ruler-mode.el library provides a minor mode for displaying an |
1759 | 1754 "active" ruler in the header line. You can use the mouse to visually |
1760 ** The URL package (which had been part of W3) is now part of Emacs. | 1755 change the `fill-column', `window-margins' and `tab-stop-list' |
1761 | 1756 settings. |
1762 ** `cfengine-mode' is a major mode for editing GNU Cfengine | 1757 |
1763 configuration files. | 1758 ** The file t-mouse.el is now part of Emacs and provides access to mouse |
1759 events from the console. It still requires gpm to work but has been updated | |
1760 for Emacs 22. In particular, the mode-line is now position sensitive. | |
1761 | |
1762 ** The new package scroll-lock.el provides the Scroll Lock minor mode | |
1763 for pager-like scrolling. Keys which normally move point by line or | |
1764 paragraph will scroll the buffer by the respective amount of lines | |
1765 instead and point will be kept vertically fixed relative to window | |
1766 boundaries during scrolling. | |
1767 | |
1768 ** The new global minor mode `size-indication-mode' (off by default) | |
1769 shows the size of accessible part of the buffer on the mode line. | |
1764 | 1770 |
1765 ** The new package conf-mode.el handles thousands of configuration files, with | 1771 ** The new package conf-mode.el handles thousands of configuration files, with |
1766 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, | 1772 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, |
1767 var : value, var value or keyword var value) and sections ([section] or | 1773 var : value, var value or keyword var value) and sections ([section] or |
1768 section { }). Many files under /etc/, or with suffixes like .cf through | 1774 section { }). Many files under /etc/, or with suffixes like .cf through |
1769 .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are | 1775 .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are |
1770 recognized. | 1776 recognized. |
1771 | 1777 |
1772 ** GDB-Script-mode is used for files like .gdbinit. | 1778 ** GDB-Script-mode is used for files like .gdbinit. |
1773 | 1779 |
1774 ** The new python.el package is used to edit Python and Jython programs. | 1780 ** The new package dns-mode.el adds syntax highlighting of DNS master files. |
1781 It is a modern replacement for zone-mode.el, which is now obsolete. | |
1782 | |
1783 ** `cfengine-mode' is a major mode for editing GNU Cfengine | |
1784 configuration files. | |
1775 | 1785 |
1776 ** The TCL package tcl-mode.el was replaced by tcl.el. | 1786 ** The TCL package tcl-mode.el was replaced by tcl.el. |
1777 This was actually done in Emacs-21.1, and was not documented. | 1787 This was actually done in Emacs-21.1, and was not documented. |
1778 | |
1779 ** The new package scroll-lock.el provides the Scroll Lock minor mode | |
1780 for pager-like scrolling. Keys which normally move point by line or | |
1781 paragraph will scroll the buffer by the respective amount of lines | |
1782 instead and point will be kept vertically fixed relative to window | |
1783 boundaries during scrolling. | |
1784 | |
1785 ** The file t-mouse.el is now part of Emacs and provides access to mouse | |
1786 events from the console. It still requires gpm to work but has been updated | |
1787 for Emacs 22. In particular, the mode-line is now position sensitive. | |
1788 | 1788 |
1789 * Changes in Specialized Modes and Packages in Emacs 22.1: | 1789 * Changes in Specialized Modes and Packages in Emacs 22.1: |
1790 | 1790 |
1791 ** Changes in Shell Mode | |
1792 | |
1793 *** Shell output normally scrolls so that the input line is at the | |
1794 bottom of the window -- thus showing the maximum possible text. (This | |
1795 is similar to the way sequential output to a terminal works.) | |
1796 | |
1797 ** Changes in Dired | 1791 ** Changes in Dired |
1798 | 1792 |
1799 *** Bindings for Image-Dired added | 1793 *** Bindings for Image-Dired added. |
1800 Several new keybindings, all starting with the C-t prefix, have been | 1794 Several new keybindings, all starting with the C-t prefix, have been |
1801 added to Dired. They are all bound to commands in Image-Dired. As a | 1795 added to Dired. They are all bound to commands in Image-Dired. As a |
1802 starting point, mark some image files in a dired buffer and do C-t d | 1796 starting point, mark some image files in a dired buffer and do C-t d |
1803 to display thumbnails of them in a separate buffer. | 1797 to display thumbnails of them in a separate buffer. |
1798 | |
1799 ** Info mode changes | |
1800 | |
1801 *** Images in Info pages are supported. | |
1802 | |
1803 Info pages show embedded images, in Emacs frames with image support. | |
1804 Info documentation that includes images, processed with makeinfo | |
1805 version 4.7 or newer, compiles to Info pages with embedded images. | |
1806 | |
1807 *** `Info-index' offers completion. | |
1808 | |
1809 *** http and ftp links in Info are now operational: they look like cross | |
1810 references and following them calls `browse-url'. | |
1811 | |
1812 *** isearch in Info uses Info-search and searches through multiple nodes. | |
1813 | |
1814 Before leaving the initial Info node isearch fails once with the error | |
1815 message [initial node], and with subsequent C-s/C-r continues through | |
1816 other nodes. When isearch fails for the rest of the manual, it wraps | |
1817 around the whole manual to the top/final node. The user option | |
1818 `Info-isearch-search' controls whether to use Info-search for isearch, | |
1819 or the default isearch search function that wraps around the current | |
1820 Info node. | |
1821 | |
1822 *** New search commands: `Info-search-case-sensitively' (bound to S), | |
1823 `Info-search-backward', and `Info-search-next' which repeats the last | |
1824 search without prompting for a new search string. | |
1825 | |
1826 *** New command `info-apropos' searches the indices of the known | |
1827 Info files on your system for a string, and builds a menu of the | |
1828 possible matches. | |
1829 | |
1830 *** New command `Info-history-forward' (bound to r and new toolbar icon) | |
1831 moves forward in history to the node you returned from after using | |
1832 `Info-history-back' (renamed from `Info-last'). | |
1833 | |
1834 *** New command `Info-history' (bound to L) displays a menu of visited nodes. | |
1835 | |
1836 *** New command `Info-toc' (bound to T) creates a node with table of contents | |
1837 from the tree structure of menus of the current Info file. | |
1838 | |
1839 *** New command `Info-copy-current-node-name' (bound to w) copies | |
1840 the current Info node name into the kill ring. With a zero prefix | |
1841 arg, puts the node name inside the `info' function call. | |
1842 | |
1843 *** New face `info-xref-visited' distinguishes visited nodes from unvisited | |
1844 and a new option `Info-fontify-visited-nodes' to control this. | |
1845 | |
1846 *** A numeric prefix argument of `info' selects an Info buffer | |
1847 with the number appended to the `*info*' buffer name (e.g. "*info*<2>"). | |
1848 | |
1849 *** Info now hides node names in menus and cross references by default. | |
1850 | |
1851 If you prefer the old behavior, you can set the new user option | |
1852 `Info-hide-note-references' to nil. | |
1853 | |
1854 *** The default value for `Info-scroll-prefer-subnodes' is now nil. | |
1855 | |
1856 ** Emacs server changes | |
1857 | |
1858 *** You can have several Emacs servers on the same machine. | |
1859 | |
1860 % emacs --eval '(setq server-name "foo")' -f server-start & | |
1861 % emacs --eval '(setq server-name "bar")' -f server-start & | |
1862 % emacsclient -s foo file1 | |
1863 % emacsclient -s bar file2 | |
1864 | |
1865 *** The `emacsclient' command understands the options `--eval' and | |
1866 `--display' which tell Emacs respectively to evaluate the given Lisp | |
1867 expression and to use the given display when visiting files. | |
1868 | |
1869 *** User option `server-mode' can be used to start a server process. | |
1870 | |
1871 ** Locate changes | |
1872 | |
1873 *** By default, reverting the *Locate* buffer now just runs the last | |
1874 `locate' command back over again without offering to update the locate | |
1875 database (which normally only works if you have root privileges). If | |
1876 you prefer the old behavior, set the new customizable option | |
1877 `locate-update-when-revert' to t. | |
1878 | |
1879 ** Desktop package | |
1880 | |
1881 *** Desktop saving is now a minor mode, `desktop-save-mode'. | |
1882 | |
1883 *** The variable `desktop-enable' is obsolete. | |
1884 | |
1885 Customize `desktop-save-mode' to enable desktop saving. | |
1886 | |
1887 *** Buffers are saved in the desktop file in the same order as that in the | |
1888 buffer list. | |
1889 | |
1890 *** The desktop package can be customized to restore only some buffers | |
1891 immediately, remaining buffers are restored lazily (when Emacs is | |
1892 idle). | |
1893 | |
1894 *** New command line option --no-desktop | |
1895 | |
1896 *** New commands: | |
1897 - desktop-revert reverts to the last loaded desktop. | |
1898 - desktop-change-dir kills current desktop and loads a new. | |
1899 - desktop-save-in-desktop-dir saves desktop in the directory from which | |
1900 it was loaded. | |
1901 - desktop-lazy-complete runs the desktop load to completion. | |
1902 - desktop-lazy-abort aborts lazy loading of the desktop. | |
1903 | |
1904 *** New customizable variables: | |
1905 - desktop-save. Determines whether the desktop should be saved when it is | |
1906 killed. | |
1907 - desktop-file-name-format. Format in which desktop file names should be saved. | |
1908 - desktop-path. List of directories in which to lookup the desktop file. | |
1909 - desktop-locals-to-save. List of local variables to save. | |
1910 - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear. | |
1911 - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear' | |
1912 should not delete. | |
1913 - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are | |
1914 restored lazily (when Emacs is idle). | |
1915 - desktop-lazy-verbose. Verbose reporting of lazily created buffers. | |
1916 - desktop-lazy-idle-delay. Idle delay before starting to create buffers. | |
1917 | |
1918 *** New hooks: | |
1919 - desktop-after-read-hook run after a desktop is loaded. | |
1920 - desktop-no-desktop-file-hook run when no desktop file is found. | |
1921 | |
1922 ** Recentf changes | |
1923 | |
1924 The recent file list is now automatically cleaned up when recentf mode is | |
1925 enabled. The new option `recentf-auto-cleanup' controls when to do | |
1926 automatic cleanup. | |
1927 | |
1928 The ten most recent files can be quickly opened by using the shortcut | |
1929 keys 1 to 9, and 0, when the recent list is displayed in a buffer via | |
1930 the `recentf-open-files', or `recentf-open-more-files' commands. | |
1931 | |
1932 The `recentf-keep' option replaces `recentf-keep-non-readable-files-p' | |
1933 and provides a more general mechanism to customize which file names to | |
1934 keep in the recent list. | |
1935 | |
1936 With the more advanced option `recentf-filename-handlers', you can | |
1937 specify functions that successively transform recent file names. For | |
1938 example, if set to `file-truename' plus `abbreviate-file-name', the | |
1939 same file will not be in the recent list with different symbolic | |
1940 links, and the file name will be abbreviated. | |
1941 | |
1942 To follow naming convention, `recentf-menu-append-commands-flag' | |
1943 replaces the misnamed option `recentf-menu-append-commands-p'. The | |
1944 old name remains available as alias, but has been marked obsolete. | |
1945 | |
1946 ** Auto-Revert changes | |
1947 | |
1948 *** You can now use Auto Revert mode to `tail' a file. | |
1949 | |
1950 If point is at the end of a file buffer before reverting, Auto Revert | |
1951 mode keeps it at the end after reverting. Similarly if point is | |
1952 displayed at the end of a file buffer in any window, it stays at | |
1953 the end of the buffer in that window. This allows to tail a file: | |
1954 just put point at the end of the buffer and it stays there. This | |
1955 rule applies to file buffers. For non-file buffers, the behavior can | |
1956 be mode dependent. | |
1957 | |
1958 If you are sure that the file will only change by growing at the end, | |
1959 then you can tail the file more efficiently by using the new minor | |
1960 mode Auto Revert Tail mode. The function `auto-revert-tail-mode' | |
1961 toggles this mode. | |
1962 | |
1963 *** Auto Revert mode is now more careful to avoid excessive reverts and | |
1964 other potential problems when deciding which non-file buffers to | |
1965 revert. This matters especially if Global Auto Revert mode is enabled | |
1966 and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert | |
1967 mode only reverts a non-file buffer if the buffer has a non-nil | |
1968 `revert-buffer-function' and a non-nil `buffer-stale-function', which | |
1969 decides whether the buffer should be reverted. Currently, this means | |
1970 that auto reverting works for Dired buffers (although this may not | |
1971 work properly on all operating systems) and for the Buffer Menu. | |
1972 | |
1973 *** If the new user option `auto-revert-check-vc-info' is non-nil, Auto | |
1974 Revert mode reliably updates version control info (such as the version | |
1975 control number in the mode line), in all version controlled buffers in | |
1976 which it is active. If the option is nil, the default, then this info | |
1977 only gets updated whenever the buffer gets reverted. | |
1978 | |
1979 ** Changes in Shell Mode | |
1980 | |
1981 *** Shell output normally scrolls so that the input line is at the | |
1982 bottom of the window -- thus showing the maximum possible text. (This | |
1983 is similar to the way sequential output to a terminal works.) | |
1804 | 1984 |
1805 ** Changes in Hi Lock | 1985 ** Changes in Hi Lock |
1806 | 1986 |
1807 *** hi-lock-mode now only affects a single buffer, and a new function | 1987 *** hi-lock-mode now only affects a single buffer, and a new function |
1808 `global-hi-lock-mode' enables Hi Lock in all buffers. By default, if | 1988 `global-hi-lock-mode' enables Hi Lock in all buffers. By default, if |
1813 buffers and no warning will be issued (for compatibility with the | 1993 buffers and no warning will be issued (for compatibility with the |
1814 behavior in older versions of Emacs). | 1994 behavior in older versions of Emacs). |
1815 | 1995 |
1816 ** Changes in Allout | 1996 ** Changes in Allout |
1817 | 1997 |
1818 *** Some previously rough topic-header format edge cases are reconciled. | |
1819 Level 1 topics use the mode's comment format, and lines starting with the | |
1820 asterisk - for instance, the comment close of some languages (eg, c's "*/" | |
1821 or mathematica's "*)") - at the beginning of line are no longer are | |
1822 interpreted as level 1 topics in those modes. | |
1823 | |
1824 *** Many or most commonly occurring "accidental" topics are disqualified. | |
1825 Text in item bodies that looks like a low-depth topic is no longer mistaken | |
1826 for one unless its first offspring (or that of its next sibling with | |
1827 offspring) is only one level deeper. | |
1828 | |
1829 For example, pasting some text with a bunch of leading asterisks into a | |
1830 topic that's followed by a level 3 or deeper topic will not cause the | |
1831 pasted text to be mistaken for outline structure. | |
1832 | |
1833 The same constraint is applied to any level 2 or 3 topics. | |
1834 | |
1835 This settles an old issue where typed or pasted text needed to be carefully | |
1836 reviewed, and sometimes doctored, to avoid accidentally disrupting the | |
1837 outline structure. Now that should be generally unnecessary, as the most | |
1838 prone-to-occur accidents are disqualified. | |
1839 | |
1840 *** Allout now refuses to create "containment discontinuities", where a | |
1841 topic is shifted deeper than the offspring-depth of its container. On the | |
1842 other hand, allout now operates gracefully with existing containment | |
1843 discontinuities, revealing excessively contained topics rather than either | |
1844 leaving them hidden or raising an error. | |
1845 | |
1846 *** Topic cryptography added, enabling easy gpg topic encryption and | 1998 *** Topic cryptography added, enabling easy gpg topic encryption and |
1847 decryption. Per-topic basis enables interspersing encrypted-text and | 1999 decryption. Per-topic basis enables interspersing encrypted-text and |
1848 clear-text within a single file to your heart's content, using symmetric | 2000 clear-text within a single file to your heart's content, using symmetric |
1849 and/or public key modes. Time-limited key caching, user-provided | 2001 and/or public key modes. Time-limited key caching, user-provided |
1850 symmetric key hinting and consistency verification, auto-encryption of | 2002 symmetric key hinting and consistency verification, auto-encryption of |
1851 pending topics on save, and more, make it easy to use encryption in | 2003 pending topics on save, and more, make it easy to use encryption in |
1852 powerful ways. Encryption behavior customization is collected in the | 2004 powerful ways. Encryption behavior customization is collected in the |
1853 allout-encryption customization group. | 2005 allout-encryption customization group. |
1854 | 2006 |
2007 *** Default command prefix was changed to "\C-c " (control-c space), to | |
2008 avoid intruding on user's keybinding space. Customize the | |
2009 `allout-command-prefix' variable to your preference. | |
2010 | |
2011 *** Some previously rough topic-header format edge cases are reconciled. | |
2012 Level 1 topics use the mode's comment format, and lines starting with the | |
2013 asterisk - for instance, the comment close of some languages (eg, c's "*/" | |
2014 or mathematica's "*)") - at the beginning of line are no longer are | |
2015 interpreted as level 1 topics in those modes. | |
2016 | |
2017 *** Many or most commonly occurring "accidental" topics are disqualified. | |
2018 Text in item bodies that looks like a low-depth topic is no longer mistaken | |
2019 for one unless its first offspring (or that of its next sibling with | |
2020 offspring) is only one level deeper. | |
2021 | |
2022 For example, pasting some text with a bunch of leading asterisks into a | |
2023 topic that's followed by a level 3 or deeper topic will not cause the | |
2024 pasted text to be mistaken for outline structure. | |
2025 | |
2026 The same constraint is applied to any level 2 or 3 topics. | |
2027 | |
2028 This settles an old issue where typed or pasted text needed to be carefully | |
2029 reviewed, and sometimes doctored, to avoid accidentally disrupting the | |
2030 outline structure. Now that should be generally unnecessary, as the most | |
2031 prone-to-occur accidents are disqualified. | |
2032 | |
2033 *** Allout now refuses to create "containment discontinuities", where a | |
2034 topic is shifted deeper than the offspring-depth of its container. On the | |
2035 other hand, allout now operates gracefully with existing containment | |
2036 discontinuities, revealing excessively contained topics rather than either | |
2037 leaving them hidden or raising an error. | |
2038 | |
1855 *** Navigation within an item is easier. Repeated beginning-of-line and | 2039 *** Navigation within an item is easier. Repeated beginning-of-line and |
1856 end-of-line key commands (usually, ^A and ^E) cycle through the | 2040 end-of-line key commands (usually, ^A and ^E) cycle through the |
1857 beginning/end-of-line and then beginning/end of topic, etc. See new | 2041 beginning/end-of-line and then beginning/end of topic, etc. See new |
1858 customization vars `allout-beginning-of-line-cycles' and | 2042 customization vars `allout-beginning-of-line-cycles' and |
1859 `allout-end-of-line-cycles'. | 2043 `allout-end-of-line-cycles'. |
1874 | 2058 |
1875 There is a new mode deactivation hook, `allout-mode-deactivate-hook', for | 2059 There is a new mode deactivation hook, `allout-mode-deactivate-hook', for |
1876 coordinating with deactivation of allout-mode. Both that and the mode | 2060 coordinating with deactivation of allout-mode. Both that and the mode |
1877 activation hook, `allout-mode-hook' are now run after the `allout-mode' | 2061 activation hook, `allout-mode-hook' are now run after the `allout-mode' |
1878 variable is changed, rather than before. | 2062 variable is changed, rather than before. |
1879 | |
1880 *** Default command prefix was changed to "\C-c " (control-c space), to | |
1881 avoid intruding on user's keybinding space. Customize the | |
1882 `allout-command-prefix' variable to your preference. | |
1883 | 2063 |
1884 *** Allout now uses text overlay's `invisible' property for concealed text, | 2064 *** Allout now uses text overlay's `invisible' property for concealed text, |
1885 instead of selective-display. This simplifies the code, in particular | 2065 instead of selective-display. This simplifies the code, in particular |
1886 avoiding the need for kludges for isearch dynamic-display, discretionary | 2066 avoiding the need for kludges for isearch dynamic-display, discretionary |
1887 handling of edits of concealed text, undo concerns, etc. | 2067 handling of edits of concealed text, undo concerns, etc. |
1909 have them automatically run at the end of module load by customizing | 2089 have them automatically run at the end of module load by customizing |
1910 the option `allout-run-unit-tests-on-load'. | 2090 the option `allout-run-unit-tests-on-load'. |
1911 - many, many other, more minor tweaks, fixes, and refinements. | 2091 - many, many other, more minor tweaks, fixes, and refinements. |
1912 - version number incremented to 2.2 | 2092 - version number incremented to 2.2 |
1913 | 2093 |
1914 ** The variable `woman-topic-at-point' is renamed | 2094 ** Hideshow mode changes |
1915 to `woman-use-topic-at-point' and behaves differently: if this | 2095 |
1916 variable is non-nil, the `woman' command uses the word at point | 2096 *** New variable `hs-set-up-overlay' allows customization of the overlay |
1917 automatically, without asking for a confirmation. Otherwise, the word | 2097 used to effect hiding for hideshow minor mode. Integration with isearch |
1918 at point is suggested as default, but not inserted at the prompt. | 2098 handles the overlay property `display' specially, preserving it during |
2099 temporary overlay showing in the course of an isearch operation. | |
2100 | |
2101 *** New variable `hs-allow-nesting' non-nil means that hiding a block does | |
2102 not discard the hidden state of any "internal" blocks; when the parent | |
2103 block is later shown, the internal blocks remain hidden. Default is nil. | |
2104 | |
2105 ** FFAP changes | |
2106 | |
2107 *** New ffap commands and keybindings: | |
2108 | |
2109 C-x C-r (`ffap-read-only'), | |
2110 C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), | |
2111 C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), | |
2112 C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). | |
2113 | |
2114 *** FFAP accepts wildcards in a file name by default. | |
2115 | |
2116 C-x C-f passes the file name to `find-file' with non-nil WILDCARDS | |
2117 argument, which visits multiple files, and C-x d passes it to `dired'. | |
2118 | |
2119 ** Changes in Skeleton | |
2120 | |
2121 *** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction. | |
2122 | |
2123 `@' has reverted to only setting `skeleton-positions' and no longer | |
2124 sets `skeleton-point'. Skeletons which used @ to mark | |
2125 `skeleton-point' independent of `_' should now use `-' instead. The | |
2126 updated `skeleton-insert' docstring explains these new features along | |
2127 with other details of skeleton construction. | |
2128 | |
2129 *** The variables `skeleton-transformation', `skeleton-filter', and | |
2130 `skeleton-pair-filter' have been renamed to | |
2131 `skeleton-transformation-function', `skeleton-filter-function', and | |
2132 `skeleton-pair-filter-function'. The old names are still available | |
2133 as aliases. | |
2134 | |
2135 ** HTML/SGML changes | |
2136 | |
2137 *** Emacs now tries to set up buffer coding systems for HTML/XML files | |
2138 automatically. | |
2139 | |
2140 *** SGML mode has indentation and supports XML syntax. | |
2141 The new variable `sgml-xml-mode' tells SGML mode to use XML syntax. | |
2142 When this option is enabled, SGML tags are inserted in XML style, | |
2143 i.e., there is always a closing tag. | |
2144 By default, its setting is inferred on a buffer-by-buffer basis | |
2145 from the file name or buffer contents. | |
2146 | |
2147 *** The variable `sgml-transformation' has been renamed to | |
2148 `sgml-transformation-function'. The old name is still available as | |
2149 alias. | |
2150 | |
2151 *** `xml-mode' is now an alias for `sgml-mode', which has XML support. | |
2152 | |
2153 ** TeX modes | |
2154 | |
2155 *** New major mode Doctex mode, for *.dtx files. | |
2156 | |
2157 *** C-c C-c prompts for a command to run, and tries to offer a good default. | |
2158 | |
2159 *** The user option `tex-start-options-string' has been replaced | |
2160 by two new user options: `tex-start-options', which should hold | |
2161 command-line options to feed to TeX, and `tex-start-commands' which should hold | |
2162 TeX commands to use at startup. | |
2163 | |
2164 *** verbatim environments are now highlighted in courier by font-lock | |
2165 and super/sub-scripts are made into super/sub-scripts. | |
2166 | |
2167 ** RefTeX mode changes | |
2168 | |
2169 *** Changes to RefTeX's table of contents | |
2170 | |
2171 The new command keys "<" and ">" in the TOC buffer promote/demote the | |
2172 section at point or all sections in the current region, with full | |
2173 support for multifile documents. | |
2174 | |
2175 The new command `reftex-toc-recenter' (`C-c -') shows the current | |
2176 section in the TOC buffer without selecting the TOC window. | |
2177 Recentering can happen automatically in idle time when the option | |
2178 `reftex-auto-recenter-toc' is turned on. The highlight in the TOC | |
2179 buffer stays when the focus moves to a different window. A dedicated | |
2180 frame can show the TOC with the current section always automatically | |
2181 highlighted. The frame is created and deleted from the toc buffer | |
2182 with the `d' key. | |
2183 | |
2184 The toc window can be split off horizontally instead of vertically. | |
2185 See new option `reftex-toc-split-windows-horizontally'. | |
2186 | |
2187 Labels can be renamed globally from the table of contents using the | |
2188 key `M-%'. | |
2189 | |
2190 The new command `reftex-goto-label' jumps directly to a label | |
2191 location. | |
2192 | |
2193 *** Changes related to citations and BibTeX database files | |
2194 | |
2195 Commands that insert a citation now prompt for optional arguments when | |
2196 called with a prefix argument. Related new options are | |
2197 `reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'. | |
2198 | |
2199 The new command `reftex-create-bibtex-file' creates a BibTeX database | |
2200 with all entries referenced in the current document. The keys "e" and | |
2201 "E" allow to produce a BibTeX database file from entries marked in a | |
2202 citation selection buffer. | |
2203 | |
2204 The command `reftex-citation' uses the word in the buffer before the | |
2205 cursor as a default search string. | |
2206 | |
2207 The support for chapterbib has been improved. Different chapters can | |
2208 now use BibTeX or an explicit `thebibliography' environment. | |
2209 | |
2210 The macros which specify the bibliography file (like \bibliography) | |
2211 can be configured with the new option `reftex-bibliography-commands'. | |
2212 | |
2213 Support for jurabib has been added. | |
2214 | |
2215 *** Global index matched may be verified with a user function. | |
2216 | |
2217 During global indexing, a user function can verify an index match. | |
2218 See new option `reftex-index-verify-function'. | |
2219 | |
2220 *** Parsing documents with many labels can be sped up. | |
2221 | |
2222 Operating in a document with thousands of labels can be sped up | |
2223 considerably by allowing RefTeX to derive the type of a label directly | |
2224 from the label prefix like `eq:' or `fig:'. The option | |
2225 `reftex-trust-label-prefix' needs to be configured in order to enable | |
2226 this feature. While the speed-up is significant, this may reduce the | |
2227 quality of the context offered by RefTeX to describe a label. | |
2228 | |
2229 *** Miscellaneous changes | |
2230 | |
2231 The macros which input a file in LaTeX (like \input, \include) can be | |
2232 configured in the new option `reftex-include-file-commands'. | |
2233 | |
2234 RefTeX supports global incremental search. | |
2235 | |
2236 ** BibTeX mode | |
2237 | |
2238 *** The new command `bibtex-url' browses a URL for the BibTeX entry at | |
2239 point (bound to C-c C-l and mouse-2, RET on clickable fields). | |
2240 | |
2241 *** The new command `bibtex-entry-update' (bound to C-c C-u) updates | |
2242 an existing BibTeX entry by inserting fields that may occur but are not | |
2243 present. | |
2244 | |
2245 *** New `bibtex-entry-format' option `required-fields', enabled by default. | |
2246 | |
2247 *** `bibtex-maintain-sorted-entries' can take values `plain', | |
2248 `crossref', and `entry-class' which control the sorting scheme used | |
2249 for BibTeX entries. `bibtex-sort-entry-class' controls the sorting | |
2250 scheme `entry-class'. TAB completion for reference keys and | |
2251 automatic detection of duplicates does not require anymore that | |
2252 `bibtex-maintain-sorted-entries' is non-nil. | |
2253 | |
2254 *** The new command `bibtex-complete' completes word fragment before | |
2255 point according to context (bound to M-tab). | |
2256 | |
2257 *** In BibTeX mode the command `fill-paragraph' (M-q) fills | |
2258 individual fields of a BibTeX entry. | |
2259 | |
2260 *** The new variable `bibtex-autofill-types' contains a list of entry | |
2261 types for which fields are filled automatically (if possible). | |
2262 | |
2263 *** The new commands `bibtex-find-entry' and `bibtex-find-crossref' | |
2264 locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). | |
2265 Crossref fields are clickable (bound to mouse-2, RET). | |
2266 | |
2267 *** The new variables `bibtex-files' and `bibtex-file-path' define a set | |
2268 of BibTeX files that are searched for entry keys. | |
2269 | |
2270 *** The new command `bibtex-validate-globally' checks for duplicate keys | |
2271 in multiple BibTeX files. | |
2272 | |
2273 *** If the new variable `bibtex-autoadd-commas' is non-nil, | |
2274 automatically add missing commas at end of BibTeX fields. | |
2275 | |
2276 *** The new command `bibtex-copy-summary-as-kill' pushes summary | |
2277 of BibTeX entry to kill ring (bound to C-c C-t). | |
2278 | |
2279 *** If the new variable `bibtex-parse-keys-fast' is non-nil, | |
2280 use fast but simplified algorithm for parsing BibTeX keys. | |
2281 | |
2282 *** The new variables bibtex-expand-strings and | |
2283 bibtex-autokey-expand-strings control the expansion of strings when | |
2284 extracting the content of a BibTeX field. | |
2285 | |
2286 *** The variables `bibtex-autokey-name-case-convert' and | |
2287 `bibtex-autokey-titleword-case-convert' have been renamed to | |
2288 `bibtex-autokey-name-case-convert-function' and | |
2289 `bibtex-autokey-titleword-case-convert-function'. The old names are | |
2290 still available as aliases. | |
2291 | |
2292 ** GUD changes | |
2293 | |
2294 *** The new package gdb-ui.el provides an enhanced graphical interface to | |
2295 GDB. You can interact with GDB through the GUD buffer in the usual way, but | |
2296 there are also further buffers which control the execution and describe the | |
2297 state of your program. It can separate the input/output of your program from | |
2298 that of GDB and watches expressions in the speedbar. It also uses features of | |
2299 Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate | |
2300 breakpoints. | |
2301 | |
2302 To use this package just type M-x gdb. See the Emacs manual if you want the | |
2303 old behaviour. | |
2304 | |
2305 *** GUD mode has its own tool bar for controlling execution of the inferior | |
2306 and other common debugger commands. | |
2307 | |
2308 *** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program | |
2309 counter to the specified source line (the one where point is). | |
2310 | |
2311 *** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be | |
2312 toggled independently of normal tooltips with the minor mode | |
2313 `gud-tooltip-mode'. | |
2314 | |
2315 *** In graphical mode, with a C program, GUD Tooltips have been extended to | |
2316 display the #define directive associated with an identifier when program is | |
2317 not executing. | |
2318 | |
2319 *** GUD mode improvements for jdb: | |
2320 | |
2321 **** Search for source files using jdb classpath and class information. | |
2322 Fast startup since there is no need to scan all source files up front. | |
2323 There is also no need to create and maintain lists of source | |
2324 directories to scan. Look at `gud-jdb-use-classpath' and | |
2325 `gud-jdb-classpath' customization variables documentation. | |
2326 | |
2327 **** The previous method of searching for source files has been | |
2328 preserved in case someone still wants/needs to use it. | |
2329 Set `gud-jdb-use-classpath' to nil. | |
2330 | |
2331 **** Supports the standard breakpoint (gud-break, gud-clear) | |
2332 set/clear operations from Java source files under the classpath, stack | |
2333 traversal (gud-up, gud-down), and run until current stack finish | |
2334 (gud-finish). | |
2335 | |
2336 **** Supports new jdb (Java 1.2 and later) in addition to oldjdb | |
2337 (Java 1.1 jdb). | |
2338 | |
2339 *** Added jdb Customization Variables | |
2340 | |
2341 **** `gud-jdb-command-name'. What command line to use to invoke jdb. | |
2342 | |
2343 **** `gud-jdb-use-classpath'. Allows selection of java source file searching | |
2344 method: set to t for new method, nil to scan `gud-jdb-directories' for | |
2345 java sources (previous method). | |
2346 | |
2347 **** `gud-jdb-directories'. List of directories to scan and search for Java | |
2348 classes using the original gud-jdb method (if `gud-jdb-use-classpath' | |
2349 is nil). | |
2350 | |
2351 *** Minor Improvements | |
2352 | |
2353 **** The STARTTLS wrapper (starttls.el) can now use GNUTLS | |
2354 instead of the OpenSSL based `starttls' tool. For backwards | |
2355 compatibility, it prefers `starttls', but you can toggle | |
2356 `starttls-use-gnutls' to switch to GNUTLS (or simply remove the | |
2357 `starttls' tool). | |
2358 | |
2359 **** Do not allow debugger output history variable to grow without bounds. | |
2360 | |
2361 ** Lisp mode changes | |
2362 | |
2363 *** Lisp mode now uses `font-lock-doc-face' for doc strings. | |
2364 | |
2365 *** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point. | |
2366 | |
2367 *** New features in evaluation commands | |
2368 | |
2369 **** The function `eval-defun' (C-M-x) called on defface reinitializes | |
2370 the face to the value specified in the defface expression. | |
2371 | |
2372 **** Typing C-x C-e twice prints the value of the integer result | |
2373 in additional formats (octal, hexadecimal, character) specified | |
2374 by the new function `eval-expression-print-format'. The same | |
2375 function also defines the result format for `eval-expression' (M-:), | |
2376 `eval-print-last-sexp' (C-j) and some edebug evaluation functions. | |
1919 | 2377 |
1920 ** Changes to cmuscheme | 2378 ** Changes to cmuscheme |
1921 | 2379 |
1922 *** Emacs now offers to start Scheme if the user tries to | 2380 *** Emacs now offers to start Scheme if the user tries to |
1923 evaluate a Scheme expression but no Scheme subprocess is running. | 2381 evaluate a Scheme expression but no Scheme subprocess is running. |
1930 procedure calls (`scheme-trace-procedure') and to expand syntactic forms | 2388 procedure calls (`scheme-trace-procedure') and to expand syntactic forms |
1931 (`scheme-expand-current-form'). The commands actually sent to the Scheme | 2389 (`scheme-expand-current-form'). The commands actually sent to the Scheme |
1932 subprocess are controlled by the user options `scheme-trace-command', | 2390 subprocess are controlled by the user options `scheme-trace-command', |
1933 `scheme-untrace-command' and `scheme-expand-current-form'. | 2391 `scheme-untrace-command' and `scheme-expand-current-form'. |
1934 | 2392 |
1935 ** Changes in Makefile mode | 2393 ** Ewoc changes |
1936 | 2394 |
1937 *** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake. | 2395 *** The new function `ewoc-delete' deletes specified nodes. |
1938 | 2396 |
1939 The former two couldn't be differentiated before, and the latter three | 2397 *** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of |
1940 are new. Font-locking is robust now and offers new customizable | 2398 a newline after each pretty-printed entry and after the header and footer. |
1941 faces. | 2399 This allows you to create multiple-entry ewocs on a single line and to |
1942 | 2400 effect "invisible" nodes by arranging for the pretty-printer to not print |
1943 *** The variable `makefile-query-one-target-method' has been renamed | 2401 anything for those nodes. |
1944 to `makefile-query-one-target-method-function'. The old name is still | 2402 |
1945 available as alias. | 2403 For example, these two sequences of expressions behave identically: |
1946 | 2404 |
1947 ** In Outline mode, `hide-body' no longer hides lines at the top | 2405 ;; NOSEP nil |
1948 of the file that precede the first header line. | 2406 (defun PP (data) (insert (format "%S" data))) |
1949 | 2407 (ewoc-create 'PP "start\n") |
1950 ** Telnet now prompts you for a port number with C-u M-x telnet. | 2408 |
1951 | 2409 ;; NOSEP t |
1952 ** The terminal emulation code in term.el has been improved; it can | 2410 (defun PP (data) (insert (format "%S\n" data))) |
1953 run most curses applications now. | 2411 (ewoc-create 'PP "start\n\n" "\n" t) |
1954 | 2412 |
1955 ** M-x diff uses Diff mode instead of Compilation mode. | 2413 ** CC mode changes |
1956 | |
1957 ** Diff mode key bindings changed. | |
1958 | |
1959 These are the new bindings: | |
1960 | |
1961 C-c C-e diff-ediff-patch (old M-A) | |
1962 C-c C-n diff-restrict-view (old M-r) | |
1963 C-c C-r diff-reverse-direction (old M-R) | |
1964 C-c C-u diff-context->unified (old M-U) | |
1965 C-c C-w diff-refine-hunk (old C-c C-r) | |
1966 | |
1967 To convert unified to context format, use C-u C-c C-u. | |
1968 In addition, C-c C-u now operates on the region | |
1969 in Transient Mark mode when the mark is active. | |
1970 | |
1971 ** You can now customize `fill-nobreak-predicate' to control where | |
1972 filling can break lines. The value is now normally a list of | |
1973 functions, but it can also be a single function, for compatibility. | |
1974 | |
1975 Emacs provide two predicates, `fill-single-word-nobreak-p' and | |
1976 `fill-french-nobreak-p', for use as the value of | |
1977 `fill-nobreak-predicate'. | |
1978 | |
1979 ** M-x view-file and commands that use it now avoid interfering | |
1980 with special modes such as Tar mode. | |
1981 | |
1982 ** Commands `winner-redo' and `winner-undo', from winner.el, are now | |
1983 bound to C-c <left> and C-c <right>, respectively. This is an | |
1984 incompatible change. | |
1985 | |
1986 ** `global-whitespace-mode' is a new alias for `whitespace-global-mode'. | |
1987 | |
1988 ** M-x compare-windows now can automatically skip non-matching text to | |
1989 resync points in both windows. | |
1990 | |
1991 ** New user option `add-log-always-start-new-record'. | |
1992 | |
1993 When this option is enabled, M-x add-change-log-entry always | |
1994 starts a new record regardless of when the last record is. | |
1995 | |
1996 ** PO translation files are decoded according to their MIME headers | |
1997 when Emacs visits them. | |
1998 | |
1999 ** Info mode changes: | |
2000 | |
2001 *** A numeric prefix argument of `info' selects an Info buffer | |
2002 with the number appended to the `*info*' buffer name (e.g. "*info*<2>"). | |
2003 | |
2004 *** isearch in Info uses Info-search and searches through multiple nodes. | |
2005 | |
2006 Before leaving the initial Info node isearch fails once with the error | |
2007 message [initial node], and with subsequent C-s/C-r continues through | |
2008 other nodes. When isearch fails for the rest of the manual, it wraps | |
2009 around the whole manual to the top/final node. The user option | |
2010 `Info-isearch-search' controls whether to use Info-search for isearch, | |
2011 or the default isearch search function that wraps around the current | |
2012 Info node. | |
2013 | |
2014 *** New search commands: `Info-search-case-sensitively' (bound to S), | |
2015 `Info-search-backward', and `Info-search-next' which repeats the last | |
2016 search without prompting for a new search string. | |
2017 | |
2018 *** New command `Info-history-forward' (bound to r and new toolbar icon) | |
2019 moves forward in history to the node you returned from after using | |
2020 `Info-history-back' (renamed from `Info-last'). | |
2021 | |
2022 *** New command `Info-history' (bound to L) displays a menu of visited nodes. | |
2023 | |
2024 *** New command `Info-toc' (bound to T) creates a node with table of contents | |
2025 from the tree structure of menus of the current Info file. | |
2026 | |
2027 *** New command `info-apropos' searches the indices of the known | |
2028 Info files on your system for a string, and builds a menu of the | |
2029 possible matches. | |
2030 | |
2031 *** New command `Info-copy-current-node-name' (bound to w) copies | |
2032 the current Info node name into the kill ring. With a zero prefix | |
2033 arg, puts the node name inside the `info' function call. | |
2034 | |
2035 *** New face `info-xref-visited' distinguishes visited nodes from unvisited | |
2036 and a new option `Info-fontify-visited-nodes' to control this. | |
2037 | |
2038 *** http and ftp links in Info are now operational: they look like cross | |
2039 references and following them calls `browse-url'. | |
2040 | |
2041 *** Info now hides node names in menus and cross references by default. | |
2042 | |
2043 If you prefer the old behavior, you can set the new user option | |
2044 `Info-hide-note-references' to nil. | |
2045 | |
2046 *** Images in Info pages are supported. | |
2047 | |
2048 Info pages show embedded images, in Emacs frames with image support. | |
2049 Info documentation that includes images, processed with makeinfo | |
2050 version 4.7 or newer, compiles to Info pages with embedded images. | |
2051 | |
2052 *** The default value for `Info-scroll-prefer-subnodes' is now nil. | |
2053 | |
2054 *** `Info-index' offers completion. | |
2055 | |
2056 ** Lisp mode changes: | |
2057 | |
2058 *** Lisp mode now uses `font-lock-doc-face' for doc strings. | |
2059 | |
2060 *** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point. | |
2061 | |
2062 *** New features in evaluation commands | |
2063 | |
2064 **** The function `eval-defun' (C-M-x) called on defface reinitializes | |
2065 the face to the value specified in the defface expression. | |
2066 | |
2067 **** Typing C-x C-e twice prints the value of the integer result | |
2068 in additional formats (octal, hexadecimal, character) specified | |
2069 by the new function `eval-expression-print-format'. The same | |
2070 function also defines the result format for `eval-expression' (M-:), | |
2071 `eval-print-last-sexp' (C-j) and some edebug evaluation functions. | |
2072 | |
2073 ** CC mode changes. | |
2074 | 2414 |
2075 *** The CC Mode manual has been extensively revised. | 2415 *** The CC Mode manual has been extensively revised. |
2076 The information about using CC Mode has been separated from the larger | 2416 The information about using CC Mode has been separated from the larger |
2077 and more difficult chapters about configuration. | 2417 and more difficult chapters about configuration. |
2078 | |
2079 *** Changes in Key Sequences | |
2080 **** c-toggle-auto-hungry-state is no longer bound to C-c C-t. | |
2081 | |
2082 **** c-toggle-hungry-state is no longer bound to C-c C-d. | |
2083 This binding has been taken over by c-hungry-delete-forwards. | |
2084 | |
2085 **** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline. | |
2086 c-toggle-auto-state remains as an alias. | |
2087 | |
2088 **** The new commands c-hungry-backspace and c-hungry-delete-forwards | |
2089 have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and | |
2090 C-c C-d (or C-c C-<delete> or C-c <delete>) respectively. These | |
2091 commands delete entire blocks of whitespace with a single | |
2092 key-sequence. [N.B. "DEL" is the <backspace> key.] | |
2093 | |
2094 **** The new command c-toggle-electric-mode is bound to C-c C-l. | |
2095 | |
2096 **** The new command c-subword-mode is bound to C-c C-w. | |
2097 | |
2098 *** C-c C-s (`c-show-syntactic-information') now highlights the anchor | |
2099 position(s). | |
2100 | 2418 |
2101 *** New Minor Modes | 2419 *** New Minor Modes |
2102 **** Electric Minor Mode toggles the electric action of non-alphabetic keys. | 2420 **** Electric Minor Mode toggles the electric action of non-alphabetic keys. |
2103 The new command c-toggle-electric-mode is bound to C-c C-l. Turning the | 2421 The new command c-toggle-electric-mode is bound to C-c C-l. Turning the |
2104 mode off can be helpful for editing chaotically indented code and for | 2422 mode off can be helpful for editing chaotically indented code and for |
2108 | 2426 |
2109 **** Subword Minor Mode makes Emacs recognize word boundaries at upper case | 2427 **** Subword Minor Mode makes Emacs recognize word boundaries at upper case |
2110 letters in StudlyCapsIdentifiers. You enable this feature by C-c C-w. It can | 2428 letters in StudlyCapsIdentifiers. You enable this feature by C-c C-w. It can |
2111 also be used in non-CC Mode buffers. :-) Contributed by Masatake YAMATO. | 2429 also be used in non-CC Mode buffers. :-) Contributed by Masatake YAMATO. |
2112 | 2430 |
2113 *** New clean-ups | 2431 *** Support for the AWK language. |
2114 | 2432 Support for the AWK language has been introduced. The implementation is |
2115 **** `comment-close-slash'. | 2433 based around GNU AWK version 3.1, but it should work pretty well with |
2116 With this clean-up, a block (i.e. c-style) comment can be terminated by | 2434 any AWK. As yet, not all features of CC Mode have been adapted for AWK. |
2117 typing a slash at the start of a line. | 2435 Here is a summary: |
2118 | 2436 |
2119 **** `c-one-liner-defun' | 2437 **** Indentation Engine |
2120 This clean-up compresses a short enough defun (for example, an AWK | 2438 The CC Mode indentation engine fully supports AWK mode. |
2121 pattern/action pair) onto a single line. "Short enough" is configurable. | 2439 |
2440 AWK mode handles code formatted in the conventional AWK fashion: `{'s | |
2441 which start actions, user-defined functions, or compound statements are | |
2442 placed on the same line as the associated construct; the matching `}'s | |
2443 are normally placed under the start of the respective pattern, function | |
2444 definition, or structured statement. | |
2445 | |
2446 The predefined line-up functions haven't yet been adapted for AWK | |
2447 mode, though some of them may work serendipitously. There shouldn't | |
2448 be any problems writing custom indentation functions for AWK mode. | |
2449 | |
2450 **** Font Locking | |
2451 There is a single level of font locking in AWK mode, rather than the | |
2452 three distinct levels the other modes have. There are several | |
2453 idiosyncrasies in AWK mode's font-locking due to the peculiarities of | |
2454 the AWK language itself. | |
2455 | |
2456 **** Comment and Movement Commands | |
2457 These commands all work for AWK buffers. The notion of "defun" has | |
2458 been augmented to include AWK pattern-action pairs - the standard | |
2459 "defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this | |
2460 extended definition. | |
2461 | |
2462 **** "awk" style, Auto-newline Insertion and Clean-ups | |
2463 A new style, "awk" has been introduced, and this is now the default | |
2464 style for AWK code. With auto-newline enabled, the clean-up | |
2465 c-one-liner-defun (see above) is useful. | |
2122 | 2466 |
2123 *** Font lock support. | 2467 *** Font lock support. |
2124 CC Mode now provides font lock support for all its languages. This | 2468 CC Mode now provides font lock support for all its languages. This |
2125 supersedes the font lock patterns that have been in the core font lock | 2469 supersedes the font lock patterns that have been in the core font lock |
2126 package for C, C++, Java and Objective-C. Like indentation, font | 2470 package for C, C++, Java and Objective-C. Like indentation, font |
2179 Especially the support for Objective-C and IDL has gotten an overhaul. | 2523 Especially the support for Objective-C and IDL has gotten an overhaul. |
2180 The special "@" declarations in Objective-C are handled correctly. | 2524 The special "@" declarations in Objective-C are handled correctly. |
2181 All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and | 2525 All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and |
2182 handled correctly, also wrt indentation. | 2526 handled correctly, also wrt indentation. |
2183 | 2527 |
2184 *** Support for the AWK language. | 2528 *** Changes in Key Sequences |
2185 Support for the AWK language has been introduced. The implementation is | 2529 **** c-toggle-auto-hungry-state is no longer bound to C-c C-t. |
2186 based around GNU AWK version 3.1, but it should work pretty well with | 2530 |
2187 any AWK. As yet, not all features of CC Mode have been adapted for AWK. | 2531 **** c-toggle-hungry-state is no longer bound to C-c C-d. |
2188 Here is a summary: | 2532 This binding has been taken over by c-hungry-delete-forwards. |
2189 | 2533 |
2190 **** Indentation Engine | 2534 **** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline. |
2191 The CC Mode indentation engine fully supports AWK mode. | 2535 c-toggle-auto-state remains as an alias. |
2192 | 2536 |
2193 AWK mode handles code formatted in the conventional AWK fashion: `{'s | 2537 **** The new commands c-hungry-backspace and c-hungry-delete-forwards |
2194 which start actions, user-defined functions, or compound statements are | 2538 have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and |
2195 placed on the same line as the associated construct; the matching `}'s | 2539 C-c C-d (or C-c C-<delete> or C-c <delete>) respectively. These |
2196 are normally placed under the start of the respective pattern, function | 2540 commands delete entire blocks of whitespace with a single |
2197 definition, or structured statement. | 2541 key-sequence. [N.B. "DEL" is the <backspace> key.] |
2198 | 2542 |
2199 The predefined line-up functions haven't yet been adapted for AWK | 2543 **** The new command c-toggle-electric-mode is bound to C-c C-l. |
2200 mode, though some of them may work serendipitously. There shouldn't | 2544 |
2201 be any problems writing custom indentation functions for AWK mode. | 2545 **** The new command c-subword-mode is bound to C-c C-w. |
2202 | 2546 |
2203 **** Font Locking | 2547 *** C-c C-s (`c-show-syntactic-information') now highlights the anchor |
2204 There is a single level of font locking in AWK mode, rather than the | 2548 position(s). |
2205 three distinct levels the other modes have. There are several | |
2206 idiosyncrasies in AWK mode's font-locking due to the peculiarities of | |
2207 the AWK language itself. | |
2208 | |
2209 **** Comment and Movement Commands | |
2210 These commands all work for AWK buffers. The notion of "defun" has | |
2211 been augmented to include AWK pattern-action pairs - the standard | |
2212 "defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this | |
2213 extended definition. | |
2214 | |
2215 **** "awk" style, Auto-newline Insertion and Clean-ups | |
2216 A new style, "awk" has been introduced, and this is now the default | |
2217 style for AWK code. With auto-newline enabled, the clean-up | |
2218 c-one-liner-defun (see above) is useful. | |
2219 | 2549 |
2220 *** New syntactic symbols in IDL mode. | 2550 *** New syntactic symbols in IDL mode. |
2221 The top level constructs "module" and "composition" (from CIDL) are | 2551 The top level constructs "module" and "composition" (from CIDL) are |
2222 now handled like "namespace" in C++: They are given syntactic symbols | 2552 now handled like "namespace" in C++: They are given syntactic symbols |
2223 module-open, module-close, inmodule, composition-open, | 2553 module-open, module-close, inmodule, composition-open, |
2344 cases (something which was hardcoded earlier). | 2674 cases (something which was hardcoded earlier). |
2345 | 2675 |
2346 *** New function `c-context-open-line'. | 2676 *** New function `c-context-open-line'. |
2347 It's the open-line equivalent of `c-context-line-break'. | 2677 It's the open-line equivalent of `c-context-line-break'. |
2348 | 2678 |
2679 *** New clean-ups | |
2680 | |
2681 **** `comment-close-slash'. | |
2682 With this clean-up, a block (i.e. c-style) comment can be terminated by | |
2683 typing a slash at the start of a line. | |
2684 | |
2685 **** `c-one-liner-defun' | |
2686 This clean-up compresses a short enough defun (for example, an AWK | |
2687 pattern/action pair) onto a single line. "Short enough" is configurable. | |
2688 | |
2349 *** New lineup functions | 2689 *** New lineup functions |
2350 | 2690 |
2351 **** `c-lineup-string-cont' | 2691 **** `c-lineup-string-cont' |
2352 This lineup function lines up a continued string under the one it | 2692 This lineup function lines up a continued string under the one it |
2353 continues. E.g: | 2693 continues. E.g: |
2365 **** `c-lineup-gcc-asm-reg' | 2705 **** `c-lineup-gcc-asm-reg' |
2366 Provides better indentation inside asm blocks. | 2706 Provides better indentation inside asm blocks. |
2367 | 2707 |
2368 **** `c-lineup-argcont' | 2708 **** `c-lineup-argcont' |
2369 Lines up continued function arguments after the preceding comma. | 2709 Lines up continued function arguments after the preceding comma. |
2710 | |
2711 *** Added toggle for syntactic indentation. | |
2712 The function `c-toggle-syntactic-indentation' can be used to toggle | |
2713 syntactic indentation. | |
2370 | 2714 |
2371 *** Better caching of the syntactic context. | 2715 *** Better caching of the syntactic context. |
2372 CC Mode caches the positions of the opening parentheses (of any kind) | 2716 CC Mode caches the positions of the opening parentheses (of any kind) |
2373 of the lists surrounding the point. Those positions are used in many | 2717 of the lists surrounding the point. Those positions are used in many |
2374 places as anchor points for various searches. The cache is now | 2718 places as anchor points for various searches. The cache is now |
2391 whose closing paren ends on a different line. This means that the | 2735 whose closing paren ends on a different line. This means that the |
2392 point doesn't have to be immediately before the block to indent. | 2736 point doesn't have to be immediately before the block to indent. |
2393 Also, only the block and the closing line is indented; the current | 2737 Also, only the block and the closing line is indented; the current |
2394 line is left untouched. | 2738 line is left untouched. |
2395 | 2739 |
2396 *** Added toggle for syntactic indentation. | 2740 ** Changes in Makefile mode |
2397 The function `c-toggle-syntactic-indentation' can be used to toggle | 2741 |
2398 syntactic indentation. | 2742 *** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake. |
2399 | 2743 |
2400 ** In sh-script, a continuation line is only indented if the backslash was | 2744 The former two couldn't be differentiated before, and the latter three |
2401 preceded by a SPC or a TAB. | 2745 are new. Font-locking is robust now and offers new customizable |
2402 | 2746 faces. |
2403 ** Perl mode has a new variable `perl-indent-continued-arguments'. | 2747 |
2404 | 2748 *** The variable `makefile-query-one-target-method' has been renamed |
2405 ** The old Octave mode bindings C-c f and C-c i have been changed | 2749 to `makefile-query-one-target-method-function'. The old name is still |
2406 to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate | |
2407 bindings on control characters--thus, C-c C-i C-b is the same as | |
2408 C-c C-i b, and so on. | |
2409 | |
2410 ** Fortran mode changes: | |
2411 | |
2412 *** Fortran mode does more font-locking by default. Use level 3 | |
2413 highlighting for the old default. | |
2414 | |
2415 *** Fortran mode has a new variable `fortran-directive-re'. | |
2416 Adapt this to match the format of any compiler directives you use. | |
2417 Lines that match are never indented, and are given distinctive font-locking. | |
2418 | |
2419 *** F90 mode and Fortran mode have new navigation commands | |
2420 `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', | |
2421 `f90-previous-block', `fortran-end-of-block', | |
2422 `fortran-beginning-of-block'. | |
2423 | |
2424 *** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow). | |
2425 It cannot deal with every code format, but ought to handle a sizeable | |
2426 majority. | |
2427 | |
2428 *** The new function `f90-backslash-not-special' can be used to change | |
2429 the syntax of backslashes in F90 buffers. | |
2430 | |
2431 ** Reftex mode changes | |
2432 | |
2433 *** Changes to RefTeX's table of contents | |
2434 | |
2435 The new command keys "<" and ">" in the TOC buffer promote/demote the | |
2436 section at point or all sections in the current region, with full | |
2437 support for multifile documents. | |
2438 | |
2439 The new command `reftex-toc-recenter' (`C-c -') shows the current | |
2440 section in the TOC buffer without selecting the TOC window. | |
2441 Recentering can happen automatically in idle time when the option | |
2442 `reftex-auto-recenter-toc' is turned on. The highlight in the TOC | |
2443 buffer stays when the focus moves to a different window. A dedicated | |
2444 frame can show the TOC with the current section always automatically | |
2445 highlighted. The frame is created and deleted from the toc buffer | |
2446 with the `d' key. | |
2447 | |
2448 The toc window can be split off horizontally instead of vertically. | |
2449 See new option `reftex-toc-split-windows-horizontally'. | |
2450 | |
2451 Labels can be renamed globally from the table of contents using the | |
2452 key `M-%'. | |
2453 | |
2454 The new command `reftex-goto-label' jumps directly to a label | |
2455 location. | |
2456 | |
2457 *** Changes related to citations and BibTeX database files | |
2458 | |
2459 Commands that insert a citation now prompt for optional arguments when | |
2460 called with a prefix argument. Related new options are | |
2461 `reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'. | |
2462 | |
2463 The new command `reftex-create-bibtex-file' creates a BibTeX database | |
2464 with all entries referenced in the current document. The keys "e" and | |
2465 "E" allow to produce a BibTeX database file from entries marked in a | |
2466 citation selection buffer. | |
2467 | |
2468 The command `reftex-citation' uses the word in the buffer before the | |
2469 cursor as a default search string. | |
2470 | |
2471 The support for chapterbib has been improved. Different chapters can | |
2472 now use BibTeX or an explicit `thebibliography' environment. | |
2473 | |
2474 The macros which specify the bibliography file (like \bibliography) | |
2475 can be configured with the new option `reftex-bibliography-commands'. | |
2476 | |
2477 Support for jurabib has been added. | |
2478 | |
2479 *** Global index matched may be verified with a user function | |
2480 | |
2481 During global indexing, a user function can verify an index match. | |
2482 See new option `reftex-index-verify-function'. | |
2483 | |
2484 *** Parsing documents with many labels can be sped up. | |
2485 | |
2486 Operating in a document with thousands of labels can be sped up | |
2487 considerably by allowing RefTeX to derive the type of a label directly | |
2488 from the label prefix like `eq:' or `fig:'. The option | |
2489 `reftex-trust-label-prefix' needs to be configured in order to enable | |
2490 this feature. While the speed-up is significant, this may reduce the | |
2491 quality of the context offered by RefTeX to describe a label. | |
2492 | |
2493 *** Miscellaneous changes | |
2494 | |
2495 The macros which input a file in LaTeX (like \input, \include) can be | |
2496 configured in the new option `reftex-include-file-commands'. | |
2497 | |
2498 RefTeX supports global incremental search. | |
2499 | |
2500 ** Prolog mode has a new variable `prolog-font-lock-keywords' | |
2501 to support use of font-lock. | |
2502 | |
2503 ** HTML/SGML changes: | |
2504 | |
2505 *** Emacs now tries to set up buffer coding systems for HTML/XML files | |
2506 automatically. | |
2507 | |
2508 *** SGML mode has indentation and supports XML syntax. | |
2509 The new variable `sgml-xml-mode' tells SGML mode to use XML syntax. | |
2510 When this option is enabled, SGML tags are inserted in XML style, | |
2511 i.e., there is always a closing tag. | |
2512 By default, its setting is inferred on a buffer-by-buffer basis | |
2513 from the file name or buffer contents. | |
2514 | |
2515 *** The variable `sgml-transformation' has been renamed to | |
2516 `sgml-transformation-function'. The old name is still available as | |
2517 alias. | |
2518 | |
2519 *** `xml-mode' is now an alias for `sgml-mode', which has XML support. | |
2520 | |
2521 ** TeX modes: | |
2522 | |
2523 *** C-c C-c prompts for a command to run, and tries to offer a good default. | |
2524 | |
2525 *** The user option `tex-start-options-string' has been replaced | |
2526 by two new user options: `tex-start-options', which should hold | |
2527 command-line options to feed to TeX, and `tex-start-commands' which should hold | |
2528 TeX commands to use at startup. | |
2529 | |
2530 *** verbatim environments are now highlighted in courier by font-lock | |
2531 and super/sub-scripts are made into super/sub-scripts. | |
2532 | |
2533 *** New major mode Doctex mode, for *.dtx files. | |
2534 | |
2535 ** BibTeX mode: | |
2536 | |
2537 *** The new command `bibtex-url' browses a URL for the BibTeX entry at | |
2538 point (bound to C-c C-l and mouse-2, RET on clickable fields). | |
2539 | |
2540 *** The new command `bibtex-entry-update' (bound to C-c C-u) updates | |
2541 an existing BibTeX entry by inserting fields that may occur but are not | |
2542 present. | |
2543 | |
2544 *** New `bibtex-entry-format' option `required-fields', enabled by default. | |
2545 | |
2546 *** `bibtex-maintain-sorted-entries' can take values `plain', | |
2547 `crossref', and `entry-class' which control the sorting scheme used | |
2548 for BibTeX entries. `bibtex-sort-entry-class' controls the sorting | |
2549 scheme `entry-class'. TAB completion for reference keys and | |
2550 automatic detection of duplicates does not require anymore that | |
2551 `bibtex-maintain-sorted-entries' is non-nil. | |
2552 | |
2553 *** If the new variable `bibtex-parse-keys-fast' is non-nil, | |
2554 use fast but simplified algorithm for parsing BibTeX keys. | |
2555 | |
2556 *** If the new variable `bibtex-autoadd-commas' is non-nil, | |
2557 automatically add missing commas at end of BibTeX fields. | |
2558 | |
2559 *** The new variable `bibtex-autofill-types' contains a list of entry | |
2560 types for which fields are filled automatically (if possible). | |
2561 | |
2562 *** The new command `bibtex-complete' completes word fragment before | |
2563 point according to context (bound to M-tab). | |
2564 | |
2565 *** The new commands `bibtex-find-entry' and `bibtex-find-crossref' | |
2566 locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). | |
2567 Crossref fields are clickable (bound to mouse-2, RET). | |
2568 | |
2569 *** In BibTeX mode the command `fill-paragraph' (M-q) fills | |
2570 individual fields of a BibTeX entry. | |
2571 | |
2572 *** The new variables `bibtex-files' and `bibtex-file-path' define a set | |
2573 of BibTeX files that are searched for entry keys. | |
2574 | |
2575 *** The new command `bibtex-validate-globally' checks for duplicate keys | |
2576 in multiple BibTeX files. | |
2577 | |
2578 *** The new command `bibtex-copy-summary-as-kill' pushes summary | |
2579 of BibTeX entry to kill ring (bound to C-c C-t). | |
2580 | |
2581 *** The new variables bibtex-expand-strings and | |
2582 bibtex-autokey-expand-strings control the expansion of strings when | |
2583 extracting the content of a BibTeX field. | |
2584 | |
2585 *** The variables `bibtex-autokey-name-case-convert' and | |
2586 `bibtex-autokey-titleword-case-convert' have been renamed to | |
2587 `bibtex-autokey-name-case-convert-function' and | |
2588 `bibtex-autokey-titleword-case-convert-function'. The old names are | |
2589 still available as aliases. | |
2590 | |
2591 ** In Artist mode the variable `artist-text-renderer' has been | |
2592 renamed to `artist-text-renderer-function'. The old name is still | |
2593 available as alias. | 2750 available as alias. |
2594 | 2751 |
2595 ** In Enriched mode, `set-left-margin' and `set-right-margin' are now | 2752 ** Sql changes |
2596 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' | |
2597 and `C-c C-r'. | |
2598 | |
2599 ** GUD changes: | |
2600 | |
2601 *** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program | |
2602 counter to the specified source line (the one where point is). | |
2603 | |
2604 *** GUD mode has its own tool bar for controlling execution of the inferior | |
2605 and other common debugger commands. | |
2606 | |
2607 *** The new package gdb-ui.el provides an enhanced graphical interface to | |
2608 GDB. You can interact with GDB through the GUD buffer in the usual way, but | |
2609 there are also further buffers which control the execution and describe the | |
2610 state of your program. It can separate the input/output of your program from | |
2611 that of GDB and watches expressions in the speedbar. It also uses features of | |
2612 Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate | |
2613 breakpoints. | |
2614 | |
2615 To use this package just type M-x gdb. See the Emacs manual if you want the | |
2616 old behaviour. | |
2617 | |
2618 *** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be | |
2619 toggled independently of normal tooltips with the minor mode | |
2620 `gud-tooltip-mode'. | |
2621 | |
2622 *** In graphical mode, with a C program, GUD Tooltips have been extended to | |
2623 display the #define directive associated with an identifier when program is | |
2624 not executing. | |
2625 | |
2626 ** GUD mode improvements for jdb: | |
2627 | |
2628 *** Search for source files using jdb classpath and class information. | |
2629 Fast startup since there is no need to scan all source files up front. | |
2630 There is also no need to create and maintain lists of source | |
2631 directories to scan. Look at `gud-jdb-use-classpath' and | |
2632 `gud-jdb-classpath' customization variables documentation. | |
2633 | |
2634 *** Supports the standard breakpoint (gud-break, gud-clear) | |
2635 set/clear operations from Java source files under the classpath, stack | |
2636 traversal (gud-up, gud-down), and run until current stack finish | |
2637 (gud-finish). | |
2638 | |
2639 *** Supports new jdb (Java 1.2 and later) in addition to oldjdb | |
2640 (Java 1.1 jdb). | |
2641 | |
2642 *** The previous method of searching for source files has been | |
2643 preserved in case someone still wants/needs to use it. | |
2644 Set `gud-jdb-use-classpath' to nil. | |
2645 | |
2646 *** Added Customization Variables | |
2647 | |
2648 **** `gud-jdb-command-name'. What command line to use to invoke jdb. | |
2649 | |
2650 **** `gud-jdb-use-classpath'. Allows selection of java source file searching | |
2651 method: set to t for new method, nil to scan `gud-jdb-directories' for | |
2652 java sources (previous method). | |
2653 | |
2654 **** `gud-jdb-directories'. List of directories to scan and search for Java | |
2655 classes using the original gud-jdb method (if `gud-jdb-use-classpath' | |
2656 is nil). | |
2657 | |
2658 *** Minor Improvements | |
2659 | |
2660 **** The STARTTLS wrapper (starttls.el) can now use GNUTLS | |
2661 instead of the OpenSSL based `starttls' tool. For backwards | |
2662 compatibility, it prefers `starttls', but you can toggle | |
2663 `starttls-use-gnutls' to switch to GNUTLS (or simply remove the | |
2664 `starttls' tool). | |
2665 | |
2666 **** Do not allow debugger output history variable to grow without bounds. | |
2667 | |
2668 ** Auto-Revert changes: | |
2669 | |
2670 *** You can now use Auto Revert mode to `tail' a file. | |
2671 | |
2672 If point is at the end of a file buffer before reverting, Auto Revert | |
2673 mode keeps it at the end after reverting. Similarly if point is | |
2674 displayed at the end of a file buffer in any window, it stays at | |
2675 the end of the buffer in that window. This allows to tail a file: | |
2676 just put point at the end of the buffer and it stays there. This | |
2677 rule applies to file buffers. For non-file buffers, the behavior can | |
2678 be mode dependent. | |
2679 | |
2680 If you are sure that the file will only change by growing at the end, | |
2681 then you can tail the file more efficiently by using the new minor | |
2682 mode Auto Revert Tail mode. The function `auto-revert-tail-mode' | |
2683 toggles this mode. | |
2684 | |
2685 *** Auto Revert mode is now more careful to avoid excessive reverts and | |
2686 other potential problems when deciding which non-file buffers to | |
2687 revert. This matters especially if Global Auto Revert mode is enabled | |
2688 and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert | |
2689 mode only reverts a non-file buffer if the buffer has a non-nil | |
2690 `revert-buffer-function' and a non-nil `buffer-stale-function', which | |
2691 decides whether the buffer should be reverted. Currently, this means | |
2692 that auto reverting works for Dired buffers (although this may not | |
2693 work properly on all operating systems) and for the Buffer Menu. | |
2694 | |
2695 *** If the new user option `auto-revert-check-vc-info' is non-nil, Auto | |
2696 Revert mode reliably updates version control info (such as the version | |
2697 control number in the mode line), in all version controlled buffers in | |
2698 which it is active. If the option is nil, the default, then this info | |
2699 only gets updated whenever the buffer gets reverted. | |
2700 | |
2701 ** recentf changes. | |
2702 | |
2703 The recent file list is now automatically cleaned up when recentf mode is | |
2704 enabled. The new option `recentf-auto-cleanup' controls when to do | |
2705 automatic cleanup. | |
2706 | |
2707 The ten most recent files can be quickly opened by using the shortcut | |
2708 keys 1 to 9, and 0, when the recent list is displayed in a buffer via | |
2709 the `recentf-open-files', or `recentf-open-more-files' commands. | |
2710 | |
2711 The `recentf-keep' option replaces `recentf-keep-non-readable-files-p' | |
2712 and provides a more general mechanism to customize which file names to | |
2713 keep in the recent list. | |
2714 | |
2715 With the more advanced option `recentf-filename-handlers', you can | |
2716 specify functions that successively transform recent file names. For | |
2717 example, if set to `file-truename' plus `abbreviate-file-name', the | |
2718 same file will not be in the recent list with different symbolic | |
2719 links, and the file name will be abbreviated. | |
2720 | |
2721 To follow naming convention, `recentf-menu-append-commands-flag' | |
2722 replaces the misnamed option `recentf-menu-append-commands-p'. The | |
2723 old name remains available as alias, but has been marked obsolete. | |
2724 | |
2725 ** Desktop package | |
2726 | |
2727 *** Desktop saving is now a minor mode, `desktop-save-mode'. | |
2728 | |
2729 *** The variable `desktop-enable' is obsolete. | |
2730 | |
2731 Customize `desktop-save-mode' to enable desktop saving. | |
2732 | |
2733 *** Buffers are saved in the desktop file in the same order as that in the | |
2734 buffer list. | |
2735 | |
2736 *** The desktop package can be customized to restore only some buffers | |
2737 immediately, remaining buffers are restored lazily (when Emacs is | |
2738 idle). | |
2739 | |
2740 *** New commands: | |
2741 - desktop-revert reverts to the last loaded desktop. | |
2742 - desktop-change-dir kills current desktop and loads a new. | |
2743 - desktop-save-in-desktop-dir saves desktop in the directory from which | |
2744 it was loaded. | |
2745 - desktop-lazy-complete runs the desktop load to completion. | |
2746 - desktop-lazy-abort aborts lazy loading of the desktop. | |
2747 | |
2748 *** New customizable variables: | |
2749 - desktop-save. Determines whether the desktop should be saved when it is | |
2750 killed. | |
2751 - desktop-file-name-format. Format in which desktop file names should be saved. | |
2752 - desktop-path. List of directories in which to lookup the desktop file. | |
2753 - desktop-locals-to-save. List of local variables to save. | |
2754 - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear. | |
2755 - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear' | |
2756 should not delete. | |
2757 - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are | |
2758 restored lazily (when Emacs is idle). | |
2759 - desktop-lazy-verbose. Verbose reporting of lazily created buffers. | |
2760 - desktop-lazy-idle-delay. Idle delay before starting to create buffers. | |
2761 | |
2762 *** New command line option --no-desktop | |
2763 | |
2764 *** New hooks: | |
2765 - desktop-after-read-hook run after a desktop is loaded. | |
2766 - desktop-no-desktop-file-hook run when no desktop file is found. | |
2767 | |
2768 ** The saveplace.el package now filters out unreadable files. | |
2769 | |
2770 When you exit Emacs, the saved positions in visited files no longer | |
2771 include files that aren't readable, e.g. files that don't exist. | |
2772 Customize the new option `save-place-forget-unreadable-files' to nil | |
2773 to get the old behavior. The new options `save-place-save-skipped' | |
2774 and `save-place-skip-check-regexp' allow further fine-tuning of this | |
2775 feature. | |
2776 | |
2777 ** EDiff changes. | |
2778 | |
2779 *** When comparing directories. | |
2780 Typing D brings up a buffer that lists the differences between the contents of | |
2781 directories. Now it is possible to use this buffer to copy the missing files | |
2782 from one directory to another. | |
2783 | |
2784 *** When comparing files or buffers. | |
2785 Typing the = key now offers to perform the word-by-word comparison of the | |
2786 currently highlighted regions in an inferior Ediff session. If you answer 'n' | |
2787 then it reverts to the old behavior and asks the user to select regions for | |
2788 comparison. | |
2789 | |
2790 *** The new command `ediff-backup' compares a file with its most recent | |
2791 backup using `ediff'. If you specify the name of a backup file, | |
2792 `ediff-backup' compares it with the file of which it is a backup. | |
2793 | |
2794 ** Etags changes. | |
2795 | |
2796 *** New regular expressions features | |
2797 | |
2798 **** New syntax for regular expressions, multi-line regular expressions. | |
2799 | |
2800 The syntax --ignore-case-regexp=/regex/ is now undocumented and retained | |
2801 only for backward compatibility. The new equivalent syntax is | |
2802 --regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, | |
2803 where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or | |
2804 more characters among `i' (ignore case), `m' (multi-line) and `s' | |
2805 (single-line). The `m' and `s' modifiers behave as in Perl regular | |
2806 expressions: `m' allows regexps to match more than one line, while `s' | |
2807 (which implies `m') means that `.' matches newlines. The ability to | |
2808 span newlines allows writing of much more powerful regular expressions | |
2809 and rapid prototyping for tagging new languages. | |
2810 | |
2811 **** Regular expressions can use char escape sequences as in GCC. | |
2812 | |
2813 The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, | |
2814 respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, | |
2815 CR, TAB, VT. | |
2816 | |
2817 **** Regular expressions can be bound to a given language. | |
2818 | |
2819 The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags | |
2820 only for files of language LANGUAGE, and ignored otherwise. This is | |
2821 particularly useful when storing regexps in a file. | |
2822 | |
2823 **** Regular expressions can be read from a file. | |
2824 | |
2825 The --regex=@regexfile option means read the regexps from a file, one | |
2826 per line. Lines beginning with space or tab are ignored. | |
2827 | |
2828 *** New language parsing features | |
2829 | |
2830 **** The `::' qualifier triggers C++ parsing in C file. | |
2831 | |
2832 Previously, only the `template' and `class' keywords had this effect. | |
2833 | |
2834 **** The GCC __attribute__ keyword is now recognized and ignored. | |
2835 | |
2836 **** New language HTML. | |
2837 | |
2838 Tags are generated for `title' as well as `h1', `h2', and `h3'. Also, | |
2839 when `name=' is used inside an anchor and whenever `id=' is used. | |
2840 | |
2841 **** In Makefiles, constants are tagged. | |
2842 | |
2843 If you want the old behavior instead, thus avoiding to increase the | |
2844 size of the tags file, use the --no-globals option. | |
2845 | |
2846 **** New language Lua. | |
2847 | |
2848 All functions are tagged. | |
2849 | |
2850 **** In Perl, packages are tags. | |
2851 | |
2852 Subroutine tags are named from their package. You can jump to sub tags | |
2853 as you did before, by the sub name, or additionally by looking for | |
2854 package::sub. | |
2855 | |
2856 **** In Prolog, etags creates tags for rules in addition to predicates. | |
2857 | |
2858 **** New language PHP. | |
2859 | |
2860 Functions, classes and defines are tags. If the --members option is | |
2861 specified to etags, variables are tags also. | |
2862 | |
2863 **** New default keywords for TeX. | |
2864 | |
2865 The new keywords are def, newcommand, renewcommand, newenvironment and | |
2866 renewenvironment. | |
2867 | |
2868 **** In C and derived languages, etags creates tags for #undef | |
2869 | |
2870 *** Honor #line directives. | |
2871 | |
2872 When Etags parses an input file that contains C preprocessor's #line | |
2873 directives, it creates tags using the file name and line number | |
2874 specified in those directives. This is useful when dealing with code | |
2875 created from Cweb source files. When Etags tags the generated file, it | |
2876 writes tags pointing to the source file. | |
2877 | |
2878 *** New option --parse-stdin=FILE. | |
2879 | |
2880 This option is mostly useful when calling etags from programs. It can | |
2881 be used (only once) in place of a file name on the command line. Etags | |
2882 reads from standard input and marks the produced tags as belonging to | |
2883 the file FILE. | |
2884 | |
2885 *** The --members option is now the default. | |
2886 | |
2887 Use --no-members if you want the old default behaviour of not tagging | |
2888 struct members in C, members variables in C++ and variables in PHP. | |
2889 | |
2890 ** Ctags changes. | |
2891 | |
2892 *** Ctags now allows duplicate tags | |
2893 | |
2894 ** VC Changes | |
2895 | |
2896 *** The key C-x C-q only changes the read-only state of the buffer | |
2897 (toggle-read-only). It no longer checks files in or out. | |
2898 | |
2899 We made this change because we held a poll and found that many users | |
2900 were unhappy with the previous behavior. If you do prefer this | |
2901 behavior, you can bind `vc-toggle-read-only' to C-x C-q in your | |
2902 `.emacs' file: | |
2903 | |
2904 (global-set-key "\C-x\C-q" 'vc-toggle-read-only) | |
2905 | |
2906 The function `vc-toggle-read-only' will continue to exist. | |
2907 | |
2908 *** The new variable `vc-cvs-global-switches' specifies switches that | |
2909 are passed to any CVS command invoked by VC. | |
2910 | |
2911 These switches are used as "global options" for CVS, which means they | |
2912 are inserted before the command name. For example, this allows you to | |
2913 specify a compression level using the `-z#' option for CVS. | |
2914 | |
2915 *** New backends for Subversion and Meta-CVS. | |
2916 | |
2917 *** VC-Annotate mode enhancements | |
2918 | |
2919 In VC-Annotate mode, you can now use the following key bindings for | |
2920 enhanced functionality to browse the annotations of past revisions, or | |
2921 to view diffs or log entries directly from vc-annotate-mode: | |
2922 | |
2923 P: annotates the previous revision | |
2924 N: annotates the next revision | |
2925 J: annotates the revision at line | |
2926 A: annotates the revision previous to line | |
2927 D: shows the diff of the revision at line with its previous revision | |
2928 L: shows the log of the revision at line | |
2929 W: annotates the workfile (most up to date) version | |
2930 | |
2931 ** pcl-cvs changes: | |
2932 | |
2933 *** In pcl-cvs mode, there is a new `d y' command to view the diffs | |
2934 between the local version of the file and yesterday's head revision | |
2935 in the repository. | |
2936 | |
2937 *** In pcl-cvs mode, there is a new `d r' command to view the changes | |
2938 anyone has committed to the repository since you last executed | |
2939 `checkout', `update' or `commit'. That means using cvs diff options | |
2940 -rBASE -rHEAD. | |
2941 | |
2942 ** The new variable `mail-default-directory' specifies | |
2943 `default-directory' for mail buffers. This directory is used for | |
2944 auto-save files of mail buffers. It defaults to "~/". | |
2945 | |
2946 ** The mode line can indicate new mail in a directory or file. | |
2947 | |
2948 See the documentation of the user option | |
2949 `display-time-mail-directory'. | |
2950 | |
2951 ** Rmail changes: | |
2952 | |
2953 *** Rmail now displays 5-digit message ids in its summary buffer. | |
2954 | |
2955 *** The new commands rmail-end-of-message and rmail-summary end-of-message, | |
2956 by default bound to `/', go to the end of the current mail message in | |
2957 Rmail and Rmail summary buffers. | |
2958 | |
2959 *** Support for `movemail' from GNU mailutils was added to Rmail. | |
2960 | |
2961 This version of `movemail' allows to read mail from a wide range of | |
2962 mailbox formats, including remote POP3 and IMAP4 mailboxes with or | |
2963 without TLS encryption. If GNU mailutils is installed on the system | |
2964 and its version of `movemail' can be found in exec-path, it will be | |
2965 used instead of the native one. | |
2966 | |
2967 ** Gnus package | |
2968 | |
2969 *** Gnus now includes Sieve and PGG | |
2970 | |
2971 Sieve is a library for managing Sieve scripts. PGG is a library to handle | |
2972 PGP/MIME. | |
2973 | |
2974 *** There are many news features, bug fixes and improvements. | |
2975 | |
2976 See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. | |
2977 | |
2978 ** MH-E changes. | |
2979 | |
2980 Upgraded to MH-E version 8.0.3. There have been major changes since | |
2981 version 5.0.2; see MH-E-NEWS for details. | |
2982 | |
2983 ** Calendar changes: | |
2984 | |
2985 *** The meanings of C-x < and C-x > have been interchanged. | |
2986 < means to scroll backward in time, and > means to scroll forward. | |
2987 | |
2988 *** You can now use < and >, instead of C-x < and C-x >, to scroll | |
2989 the calendar left or right. | |
2990 | |
2991 *** There is a new calendar package, icalendar.el, that can be used to | |
2992 convert Emacs diary entries to/from the iCalendar format. | |
2993 | |
2994 *** The new package cal-html.el writes HTML files with calendar and | |
2995 diary entries. | |
2996 | |
2997 *** Diary sexp entries can have custom marking in the calendar. | |
2998 Diary sexp functions which only apply to certain days (such as | |
2999 `diary-block' or `diary-cyclic') now take an optional parameter MARK, | |
3000 which is the name of a face or a single-character string indicating | |
3001 how to highlight the day in the calendar display. Specifying a | |
3002 single-character string as @var{mark} places the character next to the | |
3003 day in the calendar. Specifying a face highlights the day with that | |
3004 face. This lets you have different colors or markings for vacations, | |
3005 appointments, paydays or anything else using a sexp. | |
3006 | |
3007 *** The new function `calendar-goto-day-of-year' (g D) prompts for a | |
3008 year and day number, and moves to that date. Negative day numbers | |
3009 count backward from the end of the year. | |
3010 | |
3011 *** The new Calendar function `calendar-goto-iso-week' (g w) | |
3012 prompts for a year and a week number, and moves to the first | |
3013 day of that ISO week. | |
3014 | |
3015 *** The new variable `calendar-minimum-window-height' affects the | |
3016 window generated by the function `generate-calendar-window'. | |
3017 | |
3018 *** The functions `holiday-easter-etc' and `holiday-advent' now take | |
3019 optional arguments, in order to only report on the specified holiday | |
3020 rather than all. This makes customization of variables such as | |
3021 `christian-holidays' simpler. | |
3022 | |
3023 *** The function `simple-diary-display' now by default sets a header line. | |
3024 This can be controlled through the variables `diary-header-line-flag' | |
3025 and `diary-header-line-format'. | |
3026 | |
3027 *** The procedure for activating appointment reminders has changed: | |
3028 use the new function `appt-activate'. The new variable | |
3029 `appt-display-format' controls how reminders are displayed, replacing | |
3030 `appt-issue-message', `appt-visible', and `appt-msg-window'. | |
3031 | |
3032 *** The new functions `diary-from-outlook', `diary-from-outlook-gnus', | |
3033 and `diary-from-outlook-rmail' can be used to import diary entries | |
3034 from Outlook-format appointments in mail messages. The variable | |
3035 `diary-outlook-formats' can be customized to recognize additional | |
3036 formats. | |
3037 | |
3038 ** Speedbar changes: | |
3039 | |
3040 *** Speedbar items can now be selected by clicking mouse-1, based on | |
3041 the `mouse-1-click-follows-link' mechanism. | |
3042 | |
3043 *** SPC and DEL are no longer bound to scroll up/down in the speedbar | |
3044 keymap. | |
3045 | |
3046 *** The new command `speedbar-toggle-line-expansion', bound to SPC, | |
3047 contracts or expands the line under the cursor. | |
3048 | |
3049 *** New command `speedbar-create-directory', bound to `M'. | |
3050 | |
3051 *** The new commands `speedbar-expand-line-descendants' and | |
3052 `speedbar-contract-line-descendants', bound to `[' and `]' | |
3053 respectively, expand and contract the line under cursor with all of | |
3054 its descendents. | |
3055 | |
3056 *** The new user option `speedbar-query-confirmation-method' controls | |
3057 how querying is performed for file operations. A value of 'always | |
3058 means to always query before file operations; 'none-but-delete means | |
3059 to not query before any file operations, except before a file | |
3060 deletion. | |
3061 | |
3062 *** The new user option `speedbar-select-frame-method' specifies how | |
3063 to select a frame for displaying a file opened with the speedbar. A | |
3064 value of 'attached means to use the attached frame (the frame that | |
3065 speedbar was started from.) A number such as 1 or -1 means to pass | |
3066 that number to `other-frame'. | |
3067 | |
3068 *** The new user option `speedbar-use-tool-tips-flag', if non-nil, | |
3069 means to display tool-tips for speedbar items. | |
3070 | |
3071 *** The frame management code in speedbar.el has been split into a new | |
3072 `dframe' library. Emacs Lisp code that makes use of the speedbar | |
3073 should use `dframe-attached-frame' instead of | |
3074 `speedbar-attached-frame', `dframe-timer' instead of `speedbar-timer', | |
3075 `dframe-close-frame' instead of `speedbar-close-frame', and | |
3076 `dframe-activity-change-focus-flag' instead of | |
3077 `speedbar-activity-change-focus-flag'. The variables | |
3078 `speedbar-update-speed' and `speedbar-navigating-speed' are also | |
3079 obsolete; use `dframe-update-speed' instead. | |
3080 | |
3081 ** sql changes. | |
3082 | 2753 |
3083 *** The variable `sql-product' controls the highlighting of different | 2754 *** The variable `sql-product' controls the highlighting of different |
3084 SQL dialects. This variable can be set globally via Customize, on a | 2755 SQL dialects. This variable can be set globally via Customize, on a |
3085 buffer-specific basis via local variable settings, or for the current | 2756 buffer-specific basis via local variable settings, or for the current |
3086 session using the new SQL->Product submenu. (This menu replaces the | 2757 session using the new SQL->Product submenu. (This menu replaces the |
3151 appropriate `sql-interactive-mode' wrapper for the current setting of | 2822 appropriate `sql-interactive-mode' wrapper for the current setting of |
3152 `sql-product'. | 2823 `sql-product'. |
3153 | 2824 |
3154 *** sql.el supports the SQLite interpreter--call 'sql-sqlite'. | 2825 *** sql.el supports the SQLite interpreter--call 'sql-sqlite'. |
3155 | 2826 |
3156 ** FFAP changes: | 2827 ** Fortran mode changes |
3157 | 2828 |
3158 *** New ffap commands and keybindings: | 2829 *** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow). |
3159 | 2830 It cannot deal with every code format, but ought to handle a sizeable |
3160 C-x C-r (`ffap-read-only'), | 2831 majority. |
3161 C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), | 2832 |
3162 C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), | 2833 *** F90 mode and Fortran mode have new navigation commands |
3163 C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). | 2834 `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', |
3164 | 2835 `f90-previous-block', `fortran-end-of-block', |
3165 *** FFAP accepts wildcards in a file name by default. | 2836 `fortran-beginning-of-block'. |
3166 | 2837 |
3167 C-x C-f passes the file name to `find-file' with non-nil WILDCARDS | 2838 *** Fortran mode does more font-locking by default. Use level 3 |
3168 argument, which visits multiple files, and C-x d passes it to `dired'. | 2839 highlighting for the old default. |
3169 | 2840 |
3170 ** Changes in Skeleton | 2841 *** Fortran mode has a new variable `fortran-directive-re'. |
3171 | 2842 Adapt this to match the format of any compiler directives you use. |
3172 *** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction. | 2843 Lines that match are never indented, and are given distinctive font-locking. |
3173 | 2844 |
3174 `@' has reverted to only setting `skeleton-positions' and no longer | 2845 *** The new function `f90-backslash-not-special' can be used to change |
3175 sets `skeleton-point'. Skeletons which used @ to mark | 2846 the syntax of backslashes in F90 buffers. |
3176 `skeleton-point' independent of `_' should now use `-' instead. The | 2847 |
3177 updated `skeleton-insert' docstring explains these new features along | 2848 ** Miscellaneous programming mode changes |
3178 with other details of skeleton construction. | 2849 |
3179 | 2850 *** In sh-script, a continuation line is only indented if the backslash was |
3180 *** The variables `skeleton-transformation', `skeleton-filter', and | 2851 preceded by a SPC or a TAB. |
3181 `skeleton-pair-filter' have been renamed to | 2852 |
3182 `skeleton-transformation-function', `skeleton-filter-function', and | 2853 *** Perl mode has a new variable `perl-indent-continued-arguments'. |
3183 `skeleton-pair-filter-function'. The old names are still available | 2854 |
3184 as aliases. | 2855 *** The old Octave mode bindings C-c f and C-c i have been changed |
3185 | 2856 to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate |
3186 ** Hideshow mode changes | 2857 bindings on control characters--thus, C-c C-i C-b is the same as |
3187 | 2858 C-c C-i b, and so on. |
3188 *** New variable `hs-set-up-overlay' allows customization of the overlay | 2859 |
3189 used to effect hiding for hideshow minor mode. Integration with isearch | 2860 *** Prolog mode has a new variable `prolog-font-lock-keywords' |
3190 handles the overlay property `display' specially, preserving it during | 2861 to support use of font-lock. |
3191 temporary overlay showing in the course of an isearch operation. | 2862 |
3192 | 2863 ** VC Changes |
3193 *** New variable `hs-allow-nesting' non-nil means that hiding a block does | 2864 |
3194 not discard the hidden state of any "internal" blocks; when the parent | 2865 *** New backends for Subversion and Meta-CVS. |
3195 block is later shown, the internal blocks remain hidden. Default is nil. | 2866 |
3196 | 2867 *** The new variable `vc-cvs-global-switches' specifies switches that |
3197 ** `hide-ifdef-mode' now uses overlays rather than selective-display | 2868 are passed to any CVS command invoked by VC. |
3198 to hide its text. This should be mostly transparent but slightly | 2869 |
3199 changes the behavior of motion commands like C-e and C-p. | 2870 These switches are used as "global options" for CVS, which means they |
3200 | 2871 are inserted before the command name. For example, this allows you to |
3201 ** `partial-completion-mode' now handles partial completion on directory names. | 2872 specify a compression level using the `-z#' option for CVS. |
3202 | 2873 |
3203 ** The type-break package now allows `type-break-file-name' to be nil | 2874 *** The key C-x C-q only changes the read-only state of the buffer |
2875 (toggle-read-only). It no longer checks files in or out. | |
2876 | |
2877 We made this change because we held a poll and found that many users | |
2878 were unhappy with the previous behavior. If you do prefer this | |
2879 behavior, you can bind `vc-toggle-read-only' to C-x C-q in your | |
2880 `.emacs' file: | |
2881 | |
2882 (global-set-key "\C-x\C-q" 'vc-toggle-read-only) | |
2883 | |
2884 The function `vc-toggle-read-only' will continue to exist. | |
2885 | |
2886 *** VC-Annotate mode enhancements | |
2887 | |
2888 In VC-Annotate mode, you can now use the following key bindings for | |
2889 enhanced functionality to browse the annotations of past revisions, or | |
2890 to view diffs or log entries directly from vc-annotate-mode: | |
2891 | |
2892 P: annotates the previous revision | |
2893 N: annotates the next revision | |
2894 J: annotates the revision at line | |
2895 A: annotates the revision previous to line | |
2896 D: shows the diff of the revision at line with its previous revision | |
2897 L: shows the log of the revision at line | |
2898 W: annotates the workfile (most up to date) version | |
2899 | |
2900 ** pcl-cvs changes | |
2901 | |
2902 *** In pcl-cvs mode, there is a new `d y' command to view the diffs | |
2903 between the local version of the file and yesterday's head revision | |
2904 in the repository. | |
2905 | |
2906 *** In pcl-cvs mode, there is a new `d r' command to view the changes | |
2907 anyone has committed to the repository since you last executed | |
2908 `checkout', `update' or `commit'. That means using cvs diff options | |
2909 -rBASE -rHEAD. | |
2910 | |
2911 ** Diff changes | |
2912 | |
2913 *** M-x diff uses Diff mode instead of Compilation mode. | |
2914 | |
2915 *** Diff mode key bindings changed. | |
2916 | |
2917 These are the new bindings: | |
2918 | |
2919 C-c C-e diff-ediff-patch (old M-A) | |
2920 C-c C-n diff-restrict-view (old M-r) | |
2921 C-c C-r diff-reverse-direction (old M-R) | |
2922 C-c C-u diff-context->unified (old M-U) | |
2923 C-c C-w diff-refine-hunk (old C-c C-r) | |
2924 | |
2925 To convert unified to context format, use C-u C-c C-u. | |
2926 In addition, C-c C-u now operates on the region | |
2927 in Transient Mark mode when the mark is active. | |
2928 | |
2929 ** EDiff changes. | |
2930 | |
2931 *** When comparing directories. | |
2932 Typing D brings up a buffer that lists the differences between the contents of | |
2933 directories. Now it is possible to use this buffer to copy the missing files | |
2934 from one directory to another. | |
2935 | |
2936 *** When comparing files or buffers. | |
2937 Typing the = key now offers to perform the word-by-word comparison of the | |
2938 currently highlighted regions in an inferior Ediff session. If you answer 'n' | |
2939 then it reverts to the old behavior and asks the user to select regions for | |
2940 comparison. | |
2941 | |
2942 *** The new command `ediff-backup' compares a file with its most recent | |
2943 backup using `ediff'. If you specify the name of a backup file, | |
2944 `ediff-backup' compares it with the file of which it is a backup. | |
2945 | |
2946 ** Etags changes. | |
2947 | |
2948 *** New regular expressions features | |
2949 | |
2950 **** New syntax for regular expressions, multi-line regular expressions. | |
2951 | |
2952 The syntax --ignore-case-regexp=/regex/ is now undocumented and retained | |
2953 only for backward compatibility. The new equivalent syntax is | |
2954 --regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, | |
2955 where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or | |
2956 more characters among `i' (ignore case), `m' (multi-line) and `s' | |
2957 (single-line). The `m' and `s' modifiers behave as in Perl regular | |
2958 expressions: `m' allows regexps to match more than one line, while `s' | |
2959 (which implies `m') means that `.' matches newlines. The ability to | |
2960 span newlines allows writing of much more powerful regular expressions | |
2961 and rapid prototyping for tagging new languages. | |
2962 | |
2963 **** Regular expressions can use char escape sequences as in GCC. | |
2964 | |
2965 The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, | |
2966 respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, | |
2967 CR, TAB, VT. | |
2968 | |
2969 **** Regular expressions can be bound to a given language. | |
2970 | |
2971 The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags | |
2972 only for files of language LANGUAGE, and ignored otherwise. This is | |
2973 particularly useful when storing regexps in a file. | |
2974 | |
2975 **** Regular expressions can be read from a file. | |
2976 | |
2977 The --regex=@regexfile option means read the regexps from a file, one | |
2978 per line. Lines beginning with space or tab are ignored. | |
2979 | |
2980 *** New language parsing features | |
2981 | |
2982 **** New language HTML. | |
2983 | |
2984 Tags are generated for `title' as well as `h1', `h2', and `h3'. Also, | |
2985 when `name=' is used inside an anchor and whenever `id=' is used. | |
2986 | |
2987 **** New language PHP. | |
2988 | |
2989 Functions, classes and defines are tags. If the --members option is | |
2990 specified to etags, variables are tags also. | |
2991 | |
2992 **** New language Lua. | |
2993 | |
2994 All functions are tagged. | |
2995 | |
2996 **** The `::' qualifier triggers C++ parsing in C file. | |
2997 | |
2998 Previously, only the `template' and `class' keywords had this effect. | |
2999 | |
3000 **** The GCC __attribute__ keyword is now recognized and ignored. | |
3001 | |
3002 **** In C and derived languages, etags creates tags for #undef | |
3003 | |
3004 **** In Makefiles, constants are tagged. | |
3005 | |
3006 If you want the old behavior instead, thus avoiding to increase the | |
3007 size of the tags file, use the --no-globals option. | |
3008 | |
3009 **** In Perl, packages are tags. | |
3010 | |
3011 Subroutine tags are named from their package. You can jump to sub tags | |
3012 as you did before, by the sub name, or additionally by looking for | |
3013 package::sub. | |
3014 | |
3015 **** In Prolog, etags creates tags for rules in addition to predicates. | |
3016 | |
3017 **** New default keywords for TeX. | |
3018 | |
3019 The new keywords are def, newcommand, renewcommand, newenvironment and | |
3020 renewenvironment. | |
3021 | |
3022 *** Honor #line directives. | |
3023 | |
3024 When Etags parses an input file that contains C preprocessor's #line | |
3025 directives, it creates tags using the file name and line number | |
3026 specified in those directives. This is useful when dealing with code | |
3027 created from Cweb source files. When Etags tags the generated file, it | |
3028 writes tags pointing to the source file. | |
3029 | |
3030 *** New option --parse-stdin=FILE. | |
3031 | |
3032 This option is mostly useful when calling etags from programs. It can | |
3033 be used (only once) in place of a file name on the command line. Etags | |
3034 reads from standard input and marks the produced tags as belonging to | |
3035 the file FILE. | |
3036 | |
3037 *** The --members option is now the default. | |
3038 | |
3039 Use --no-members if you want the old default behaviour of not tagging | |
3040 struct members in C, members variables in C++ and variables in PHP. | |
3041 | |
3042 ** Ctags changes. | |
3043 | |
3044 *** Ctags now allows duplicate tags | |
3045 | |
3046 ** Rmail changes | |
3047 | |
3048 *** Support for `movemail' from GNU mailutils was added to Rmail. | |
3049 | |
3050 This version of `movemail' allows to read mail from a wide range of | |
3051 mailbox formats, including remote POP3 and IMAP4 mailboxes with or | |
3052 without TLS encryption. If GNU mailutils is installed on the system | |
3053 and its version of `movemail' can be found in exec-path, it will be | |
3054 used instead of the native one. | |
3055 | |
3056 *** The new commands rmail-end-of-message and rmail-summary end-of-message, | |
3057 by default bound to `/', go to the end of the current mail message in | |
3058 Rmail and Rmail summary buffers. | |
3059 | |
3060 *** Rmail now displays 5-digit message ids in its summary buffer. | |
3061 | |
3062 ** Gnus package | |
3063 | |
3064 *** Gnus now includes Sieve and PGG | |
3065 | |
3066 Sieve is a library for managing Sieve scripts. PGG is a library to handle | |
3067 PGP/MIME. | |
3068 | |
3069 *** There are many news features, bug fixes and improvements. | |
3070 | |
3071 See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. | |
3072 | |
3073 ** MH-E changes. | |
3074 | |
3075 Upgraded to MH-E version 8.0.3. There have been major changes since | |
3076 version 5.0.2; see MH-E-NEWS for details. | |
3077 | |
3078 ** Miscellaneous mail changes | |
3079 | |
3080 *** The new variable `mail-default-directory' specifies | |
3081 `default-directory' for mail buffers. This directory is used for | |
3082 auto-save files of mail buffers. It defaults to "~/". | |
3083 | |
3084 *** The mode line can indicate new mail in a directory or file. | |
3085 | |
3086 See the documentation of the user option `display-time-mail-directory'. | |
3087 | |
3088 ** Calendar changes | |
3089 | |
3090 *** There is a new calendar package, icalendar.el, that can be used to | |
3091 convert Emacs diary entries to/from the iCalendar format. | |
3092 | |
3093 *** The new package cal-html.el writes HTML files with calendar and | |
3094 diary entries. | |
3095 | |
3096 *** The new functions `diary-from-outlook', `diary-from-outlook-gnus', | |
3097 and `diary-from-outlook-rmail' can be used to import diary entries | |
3098 from Outlook-format appointments in mail messages. The variable | |
3099 `diary-outlook-formats' can be customized to recognize additional | |
3100 formats. | |
3101 | |
3102 *** The procedure for activating appointment reminders has changed: | |
3103 use the new function `appt-activate'. The new variable | |
3104 `appt-display-format' controls how reminders are displayed, replacing | |
3105 `appt-issue-message', `appt-visible', and `appt-msg-window'. | |
3106 | |
3107 *** The function `simple-diary-display' now by default sets a header line. | |
3108 This can be controlled through the variables `diary-header-line-flag' | |
3109 and `diary-header-line-format'. | |
3110 | |
3111 *** Diary sexp entries can have custom marking in the calendar. | |
3112 Diary sexp functions which only apply to certain days (such as | |
3113 `diary-block' or `diary-cyclic') now take an optional parameter MARK, | |
3114 which is the name of a face or a single-character string indicating | |
3115 how to highlight the day in the calendar display. Specifying a | |
3116 single-character string as @var{mark} places the character next to the | |
3117 day in the calendar. Specifying a face highlights the day with that | |
3118 face. This lets you have different colors or markings for vacations, | |
3119 appointments, paydays or anything else using a sexp. | |
3120 | |
3121 *** The meanings of C-x < and C-x > have been interchanged. | |
3122 < means to scroll backward in time, and > means to scroll forward. | |
3123 | |
3124 *** You can now use < and >, instead of C-x < and C-x >, to scroll | |
3125 the calendar left or right. | |
3126 | |
3127 *** The new function `calendar-goto-day-of-year' (g D) prompts for a | |
3128 year and day number, and moves to that date. Negative day numbers | |
3129 count backward from the end of the year. | |
3130 | |
3131 *** The new Calendar function `calendar-goto-iso-week' (g w) | |
3132 prompts for a year and a week number, and moves to the first | |
3133 day of that ISO week. | |
3134 | |
3135 *** The functions `holiday-easter-etc' and `holiday-advent' now take | |
3136 optional arguments, in order to only report on the specified holiday | |
3137 rather than all. This makes customization of variables such as | |
3138 `christian-holidays' simpler. | |
3139 | |
3140 *** The new variable `calendar-minimum-window-height' affects the | |
3141 window generated by the function `generate-calendar-window'. | |
3142 | |
3143 ** Speedbar changes | |
3144 | |
3145 *** Speedbar items can now be selected by clicking mouse-1, based on | |
3146 the `mouse-1-click-follows-link' mechanism. | |
3147 | |
3148 *** The new command `speedbar-toggle-line-expansion', bound to SPC, | |
3149 contracts or expands the line under the cursor. | |
3150 | |
3151 *** New command `speedbar-create-directory', bound to `M'. | |
3152 | |
3153 *** The new commands `speedbar-expand-line-descendants' and | |
3154 `speedbar-contract-line-descendants', bound to `[' and `]' | |
3155 respectively, expand and contract the line under cursor with all of | |
3156 its descendents. | |
3157 | |
3158 *** The new user option `speedbar-use-tool-tips-flag', if non-nil, | |
3159 means to display tool-tips for speedbar items. | |
3160 | |
3161 *** The new user option `speedbar-query-confirmation-method' controls | |
3162 how querying is performed for file operations. A value of 'always | |
3163 means to always query before file operations; 'none-but-delete means | |
3164 to not query before any file operations, except before a file | |
3165 deletion. | |
3166 | |
3167 *** The new user option `speedbar-select-frame-method' specifies how | |
3168 to select a frame for displaying a file opened with the speedbar. A | |
3169 value of 'attached means to use the attached frame (the frame that | |
3170 speedbar was started from.) A number such as 1 or -1 means to pass | |
3171 that number to `other-frame'. | |
3172 | |
3173 *** SPC and DEL are no longer bound to scroll up/down in the speedbar | |
3174 keymap. | |
3175 | |
3176 *** The frame management code in speedbar.el has been split into a new | |
3177 `dframe' library. Emacs Lisp code that makes use of the speedbar | |
3178 should use `dframe-attached-frame' instead of | |
3179 `speedbar-attached-frame', `dframe-timer' instead of `speedbar-timer', | |
3180 `dframe-close-frame' instead of `speedbar-close-frame', and | |
3181 `dframe-activity-change-focus-flag' instead of | |
3182 `speedbar-activity-change-focus-flag'. The variables | |
3183 `speedbar-update-speed' and `speedbar-navigating-speed' are also | |
3184 obsolete; use `dframe-update-speed' instead. | |
3185 | |
3186 ** battery.el changes | |
3187 | |
3188 *** display-battery-mode replaces display-battery. | |
3189 | |
3190 *** battery.el now works on recent versions of OS X. | |
3191 | |
3192 ** Games | |
3193 | |
3194 *** The game `mpuz' is enhanced. | |
3195 | |
3196 `mpuz' now allows the 2nd factor not to have two identical digits. By | |
3197 default, all trivial operations involving whole lines are performed | |
3198 automatically. The game uses faces for better visual feedback. | |
3199 | |
3200 ** Obsolete and deleted packages | |
3201 | |
3202 *** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. | |
3203 | |
3204 *** iso-acc.el is now obsolete. Use one of the latin input methods instead. | |
3205 | |
3206 *** zone-mode.el is now obsolete. Use dns-mode.el instead. | |
3207 | |
3208 *** cplus-md.el has been deleted. | |
3209 | |
3210 ** Miscellaneous | |
3211 | |
3212 *** The variable `woman-topic-at-point' is renamed | |
3213 to `woman-use-topic-at-point' and behaves differently: if this | |
3214 variable is non-nil, the `woman' command uses the word at point | |
3215 automatically, without asking for a confirmation. Otherwise, the word | |
3216 at point is suggested as default, but not inserted at the prompt. | |
3217 | |
3218 *** You can now customize `fill-nobreak-predicate' to control where | |
3219 filling can break lines. The value is now normally a list of | |
3220 functions, but it can also be a single function, for compatibility. | |
3221 | |
3222 Emacs provide two predicates, `fill-single-word-nobreak-p' and | |
3223 `fill-french-nobreak-p', for use as the value of | |
3224 `fill-nobreak-predicate'. | |
3225 | |
3226 *** M-x view-file and commands that use it now avoid interfering | |
3227 with special modes such as Tar mode. | |
3228 | |
3229 *** `global-whitespace-mode' is a new alias for `whitespace-global-mode'. | |
3230 | |
3231 *** The saveplace.el package now filters out unreadable files. | |
3232 | |
3233 When you exit Emacs, the saved positions in visited files no longer | |
3234 include files that aren't readable, e.g. files that don't exist. | |
3235 Customize the new option `save-place-forget-unreadable-files' to nil | |
3236 to get the old behavior. The new options `save-place-save-skipped' | |
3237 and `save-place-skip-check-regexp' allow further fine-tuning of this | |
3238 feature. | |
3239 | |
3240 *** Commands `winner-redo' and `winner-undo', from winner.el, are now | |
3241 bound to C-c <left> and C-c <right>, respectively. This is an | |
3242 incompatible change. | |
3243 | |
3244 *** The type-break package now allows `type-break-file-name' to be nil | |
3204 and if so, doesn't store any data across sessions. This is handy if | 3245 and if so, doesn't store any data across sessions. This is handy if |
3205 you don't want the `.type-break' file in your home directory or are | 3246 you don't want the `.type-break' file in your home directory or are |
3206 annoyed by the need for interaction when you kill Emacs. | 3247 annoyed by the need for interaction when you kill Emacs. |
3207 | 3248 |
3208 ** `ps-print' can now print characters from the mule-unicode charsets. | 3249 *** `ps-print' can now print characters from the mule-unicode charsets. |
3209 | 3250 |
3210 Printing text with characters from the mule-unicode-* sets works with | 3251 Printing text with characters from the mule-unicode-* sets works with |
3211 `ps-print', provided that you have installed the appropriate BDF | 3252 `ps-print', provided that you have installed the appropriate BDF |
3212 fonts. See the file INSTALL for URLs where you can find these fonts. | 3253 fonts. See the file INSTALL for URLs where you can find these fonts. |
3213 | 3254 |
3214 ** New command `strokes-global-set-stroke-string'. | 3255 *** New command `strokes-global-set-stroke-string'. |
3215 This is like `strokes-global-set-stroke', but it allows you to bind | 3256 This is like `strokes-global-set-stroke', but it allows you to bind |
3216 the stroke directly to a string to insert. This is convenient for | 3257 the stroke directly to a string to insert. This is convenient for |
3217 using strokes as an input method. | 3258 using strokes as an input method. |
3218 | 3259 |
3219 ** Emacs server changes: | 3260 *** In Outline mode, `hide-body' no longer hides lines at the top |
3220 | 3261 of the file that precede the first header line. |
3221 *** You can have several Emacs servers on the same machine. | 3262 |
3222 | 3263 *** `hide-ifdef-mode' now uses overlays rather than selective-display |
3223 % emacs --eval '(setq server-name "foo")' -f server-start & | 3264 to hide its text. This should be mostly transparent but slightly |
3224 % emacs --eval '(setq server-name "bar")' -f server-start & | 3265 changes the behavior of motion commands like C-e and C-p. |
3225 % emacsclient -s foo file1 | 3266 |
3226 % emacsclient -s bar file2 | 3267 *** In Artist mode the variable `artist-text-renderer' has been |
3227 | 3268 renamed to `artist-text-renderer-function'. The old name is still |
3228 *** The `emacsclient' command understands the options `--eval' and | 3269 available as alias. |
3229 `--display' which tell Emacs respectively to evaluate the given Lisp | 3270 |
3230 expression and to use the given display when visiting files. | 3271 *** In Enriched mode, `set-left-margin' and `set-right-margin' are now |
3231 | 3272 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' |
3232 *** User option `server-mode' can be used to start a server process. | 3273 and `C-c C-r'. |
3233 | 3274 |
3234 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. | 3275 *** `partial-completion-mode' now handles partial completion on directory names. |
3235 | 3276 |
3236 ** You can now disable pc-selection-mode after enabling it. | 3277 *** You can now disable pc-selection-mode after enabling it. |
3237 | 3278 |
3238 M-x pc-selection-mode behaves like a proper minor mode, and with no | 3279 M-x pc-selection-mode behaves like a proper minor mode, and with no |
3239 argument it toggles the mode. Turning off PC-Selection mode restores | 3280 argument it toggles the mode. Turning off PC-Selection mode restores |
3240 the global key bindings that were replaced by turning on the mode. | 3281 the global key bindings that were replaced by turning on the mode. |
3241 | 3282 |
3242 ** `uniquify-strip-common-suffix' tells uniquify to prefer | 3283 *** `uniquify-strip-common-suffix' tells uniquify to prefer |
3243 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. | 3284 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. |
3244 | 3285 |
3245 ** Support for `magic cookie' standout modes has been removed. | 3286 *** New user option `add-log-always-start-new-record'. |
3246 | 3287 |
3247 Emacs still works on terminals that require magic cookies in order to | 3288 When this option is enabled, M-x add-change-log-entry always |
3248 use standout mode, but they can no longer display mode-lines in | 3289 starts a new record regardless of when the last record is. |
3249 inverse-video. | 3290 |
3250 | 3291 *** M-x compare-windows now can automatically skip non-matching text to |
3251 ** The game `mpuz' is enhanced. | 3292 resync points in both windows. |
3252 | 3293 |
3253 `mpuz' now allows the 2nd factor not to have two identical digits. By | 3294 *** PO translation files are decoded according to their MIME headers |
3254 default, all trivial operations involving whole lines are performed | 3295 when Emacs visits them. |
3255 automatically. The game uses faces for better visual feedback. | 3296 |
3256 | 3297 *** Telnet now prompts you for a port number with C-u M-x telnet. |
3257 ** battery.el changes: | 3298 |
3258 | 3299 *** calculator.el now has radix grouping mode. |
3259 *** display-battery-mode replaces display-battery. | |
3260 | |
3261 *** battery.el now works on recent versions of OS X. | |
3262 | |
3263 ** calculator.el now has radix grouping mode. | |
3264 | 3300 |
3265 To enable this, set `calculator-output-radix' non-nil. In this mode a | 3301 To enable this, set `calculator-output-radix' non-nil. In this mode a |
3266 separator character is used every few digits, making it easier to see | 3302 separator character is used every few digits, making it easier to see |
3267 byte boundaries etc. For more info, see the documentation of the | 3303 byte boundaries etc. For more info, see the documentation of the |
3268 variable `calculator-radix-grouping-mode'. | 3304 variable `calculator-radix-grouping-mode'. |
3269 | 3305 |
3270 ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. | 3306 *** LDAP support now defaults to ldapsearch from OpenLDAP version 2. |
3271 | 3307 |
3272 ** iso-acc.el is now obsolete. Use one of the latin input methods instead. | 3308 *** The terminal emulation code in term.el has been improved; it can |
3273 | 3309 run most curses applications now. |
3274 ** zone-mode.el is now obsolete. Use dns-mode.el instead. | 3310 |
3275 | 3311 *** Support for `magic cookie' standout modes has been removed. |
3276 ** cplus-md.el has been deleted. | 3312 |
3277 | 3313 Emacs still works on terminals that require magic cookies in order to |
3278 ** Ewoc changes | 3314 use standout mode, but they can no longer display mode-lines in |
3279 | 3315 inverse-video. |
3280 *** The new function `ewoc-delete' deletes specified nodes. | |
3281 | |
3282 *** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of | |
3283 a newline after each pretty-printed entry and after the header and footer. | |
3284 This allows you to create multiple-entry ewocs on a single line and to | |
3285 effect "invisible" nodes by arranging for the pretty-printer to not print | |
3286 anything for those nodes. | |
3287 | |
3288 For example, these two sequences of expressions behave identically: | |
3289 | |
3290 ;; NOSEP nil | |
3291 (defun PP (data) (insert (format "%S" data))) | |
3292 (ewoc-create 'PP "start\n") | |
3293 | |
3294 ;; NOSEP t | |
3295 (defun PP (data) (insert (format "%S\n" data))) | |
3296 (ewoc-create 'PP "start\n\n" "\n" t) | |
3297 | |
3298 ** Locate changes | |
3299 | |
3300 *** By default, reverting the *Locate* buffer now just runs the last | |
3301 `locate' command back over again without offering to update the locate | |
3302 database (which normally only works if you have root privileges). If | |
3303 you prefer the old behavior, set the new customizable option | |
3304 `locate-update-when-revert' to t. | |
3305 | 3316 |
3306 | 3317 |
3307 * Changes in Emacs 22.1 on non-free operating systems | 3318 * Changes in Emacs 22.1 on non-free operating systems |
3308 | 3319 |
3309 ** The HOME directory defaults to Application Data under the user profile. | 3320 ** The HOME directory defaults to Application Data under the user profile. |
3318 | 3329 |
3319 This change means that users can now have their own `.emacs' files on | 3330 This change means that users can now have their own `.emacs' files on |
3320 shared computers, and the default HOME directory is less likely to be | 3331 shared computers, and the default HOME directory is less likely to be |
3321 read-only on computers that are administered by someone else. | 3332 read-only on computers that are administered by someone else. |
3322 | 3333 |
3323 ** Passing resources on the command line now works on MS Windows. | |
3324 | |
3325 You can use --xrm to pass resource settings to Emacs, overriding any | |
3326 existing values. For example: | |
3327 | |
3328 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" | |
3329 | |
3330 will start up Emacs on an initial frame of 100x20 with red background, | |
3331 irrespective of geometry or background setting on the Windows registry. | |
3332 | |
3333 ** On MS Windows, the "system caret" now follows the cursor. | |
3334 | |
3335 This enables Emacs to work better with programs that need to track the | |
3336 cursor, for example screen magnifiers and text to speech programs. | |
3337 When such a program is in use, the system caret is made visible | |
3338 instead of Emacs drawing its own cursor. This seems to be required by | |
3339 some programs. The new variable w32-use-visible-system-caret allows | |
3340 the caret visibility to be manually toggled. | |
3341 | |
3342 ** Tooltips now work on MS Windows. | |
3343 | |
3344 See the Emacs 21.1 NEWS entry for tooltips for details. | |
3345 | |
3346 ** Images are now supported on MS Windows. | 3334 ** Images are now supported on MS Windows. |
3347 | 3335 |
3348 PBM and XBM images are supported out of the box. Other image formats | 3336 PBM and XBM images are supported out of the box. Other image formats |
3349 depend on external libraries. All of these libraries have been ported | 3337 depend on external libraries. All of these libraries have been ported |
3350 to Windows, and can be found in both source and binary form at | 3338 to Windows, and can be found in both source and binary form at |
3357 WAV format is supported on all versions of Windows, other formats such | 3345 WAV format is supported on all versions of Windows, other formats such |
3358 as AU, AIFF and MP3 may be supported in the more recent versions of | 3346 as AU, AIFF and MP3 may be supported in the more recent versions of |
3359 Windows, or when other software provides hooks into the system level | 3347 Windows, or when other software provides hooks into the system level |
3360 sound support for those formats. | 3348 sound support for those formats. |
3361 | 3349 |
3362 ** Different shaped mouse pointers are supported on MS Windows. | 3350 ** Tooltips now work on MS Windows. |
3363 | 3351 |
3364 The mouse pointer changes shape depending on what is under the pointer. | 3352 See the Emacs 21.1 NEWS entry for tooltips for details. |
3365 | 3353 |
3366 ** Pointing devices with more than 3 buttons are now supported on MS Windows. | 3354 ** Pointing devices with more than 3 buttons are now supported on MS Windows. |
3367 | 3355 |
3368 The new variable `w32-pass-extra-mouse-buttons-to-system' controls | 3356 The new variable `w32-pass-extra-mouse-buttons-to-system' controls |
3369 whether Emacs should handle the extra buttons itself (the default), or | 3357 whether Emacs should handle the extra buttons itself (the default), or |
3370 pass them to Windows to be handled with system-wide functions. | 3358 pass them to Windows to be handled with system-wide functions. |
3359 | |
3360 ** Passing resources on the command line now works on MS Windows. | |
3361 | |
3362 You can use --xrm to pass resource settings to Emacs, overriding any | |
3363 existing values. For example: | |
3364 | |
3365 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" | |
3366 | |
3367 will start up Emacs on an initial frame of 100x20 with red background, | |
3368 irrespective of geometry or background setting on the Windows registry. | |
3371 | 3369 |
3372 ** Emacs takes note of colors defined in Control Panel on MS-Windows. | 3370 ** Emacs takes note of colors defined in Control Panel on MS-Windows. |
3373 | 3371 |
3374 The Control Panel defines some default colors for applications in much | 3372 The Control Panel defines some default colors for applications in much |
3375 the same way as wildcard X Resources do on X. Emacs now adds these | 3373 the same way as wildcard X Resources do on X. Emacs now adds these |
3376 colors to the colormap prefixed by System (eg SystemMenu for the | 3374 colors to the colormap prefixed by System (eg SystemMenu for the |
3377 default Menu background, SystemMenuText for the foreground), and uses | 3375 default Menu background, SystemMenuText for the foreground), and uses |
3378 some of them to initialize some of the default faces. | 3376 some of them to initialize some of the default faces. |
3379 `list-colors-display' shows the list of System color names, in case | 3377 `list-colors-display' shows the list of System color names, in case |
3380 you wish to use them in other faces. | 3378 you wish to use them in other faces. |
3381 | |
3382 ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. | |
3383 | |
3384 Those systems use Unicode internally, so this allows Emacs to share | |
3385 multilingual text with other applications. On other versions of | |
3386 MS Windows, Emacs now uses the appropriate locale coding-system, so | |
3387 the clipboard should work correctly for your local language without | |
3388 any customizations. | |
3389 | 3379 |
3390 ** Running in a console window in Windows now uses the console size. | 3380 ** Running in a console window in Windows now uses the console size. |
3391 | 3381 |
3392 Previous versions of Emacs erred on the side of having a usable Emacs | 3382 Previous versions of Emacs erred on the side of having a usable Emacs |
3393 through telnet, even though that was inconvenient if you use Emacs in | 3383 through telnet, even though that was inconvenient if you use Emacs in |
3398 that the console window dimensions that are reported are not sane, and | 3388 that the console window dimensions that are reported are not sane, and |
3399 defaults to 80x25. If you use such a telnet server regularly at a size | 3389 defaults to 80x25. If you use such a telnet server regularly at a size |
3400 other than 80x25, you can still manually set | 3390 other than 80x25, you can still manually set |
3401 w32-use-full-screen-buffer to t. | 3391 w32-use-full-screen-buffer to t. |
3402 | 3392 |
3393 ** Different shaped mouse pointers are supported on MS Windows. | |
3394 | |
3395 The mouse pointer changes shape depending on what is under the pointer. | |
3396 | |
3397 ** On MS Windows, the "system caret" now follows the cursor. | |
3398 | |
3399 This enables Emacs to work better with programs that need to track the | |
3400 cursor, for example screen magnifiers and text to speech programs. | |
3401 When such a program is in use, the system caret is made visible | |
3402 instead of Emacs drawing its own cursor. This seems to be required by | |
3403 some programs. The new variable w32-use-visible-system-caret allows | |
3404 the caret visibility to be manually toggled. | |
3405 | |
3406 ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. | |
3407 | |
3408 Those systems use Unicode internally, so this allows Emacs to share | |
3409 multilingual text with other applications. On other versions of | |
3410 MS Windows, Emacs now uses the appropriate locale coding-system, so | |
3411 the clipboard should work correctly for your local language without | |
3412 any customizations. | |
3413 | |
3403 ** On Mac OS, `keyboard-coding-system' changes based on the keyboard script. | 3414 ** On Mac OS, `keyboard-coding-system' changes based on the keyboard script. |
3404 | 3415 |
3405 ** The variable `mac-keyboard-text-encoding' and the constants | 3416 ** The variable `mac-keyboard-text-encoding' and the constants |
3406 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and | 3417 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and |
3407 `kTextEncodingISOLatin2' are obsolete. | 3418 `kTextEncodingISOLatin2' are obsolete. |
3409 ** The variable `mac-command-key-is-meta' is obsolete. Use | 3420 ** The variable `mac-command-key-is-meta' is obsolete. Use |
3410 `mac-command-modifier' and `mac-option-modifier' instead. | 3421 `mac-command-modifier' and `mac-option-modifier' instead. |
3411 | 3422 |
3412 * Incompatible Lisp Changes in Emacs 22.1 | 3423 * Incompatible Lisp Changes in Emacs 22.1 |
3413 | 3424 |
3425 ** Mode line display ignores text properties as well as the | |
3426 :propertize and :eval forms in the value of a variable whose | |
3427 `risky-local-variable' property is nil. | |
3428 | |
3429 The function `comint-send-input' now accepts 3 optional arguments: | |
3430 | |
3431 (comint-send-input &optional no-newline artificial) | |
3432 | |
3433 Callers sending input not from the user should use bind the 3rd | |
3434 argument `artificial' to a non-nil value, to prevent Emacs from | |
3435 deleting the part of subprocess output that matches the input. | |
3436 | |
3414 ** The `read-file-name' function now returns a null string if the | 3437 ** The `read-file-name' function now returns a null string if the |
3415 user just types RET. | 3438 user just types RET. |
3439 | |
3440 ** The variables post-command-idle-hook and post-command-idle-delay have | |
3441 been removed. Use run-with-idle-timer instead. | |
3442 | |
3443 ** A hex or octal escape in a string constant forces the string to | |
3444 be multibyte or unibyte, respectively. | |
3445 | |
3446 ** The explicit method of creating a display table element by | |
3447 combining a face number and a character code into a numeric | |
3448 glyph code is deprecated. | |
3449 | |
3450 Instead, the new functions `make-glyph-code', `glyph-char', and | |
3451 `glyph-face' must be used to create and decode glyph codes in | |
3452 display tables. | |
3453 | |
3454 ** `suppress-keymap' now works by remapping `self-insert-command' to | |
3455 the command `undefined'. (In earlier Emacs versions, it used | |
3456 `substitute-key-definition' to rebind self inserting characters to | |
3457 `undefined'.) | |
3416 | 3458 |
3417 ** The function find-operation-coding-system may be called with a cons | 3459 ** The function find-operation-coding-system may be called with a cons |
3418 (FILENAME . BUFFER) in the second argument if the first argument | 3460 (FILENAME . BUFFER) in the second argument if the first argument |
3419 OPERATION is `insert-file-contents', and thus a function registered in | 3461 OPERATION is `insert-file-contents', and thus a function registered in |
3420 `file-coding-system-alist' is also called with such an argument. | 3462 `file-coding-system-alist' is also called with such an argument. |
3421 | 3463 |
3422 ** The variables post-command-idle-hook and post-command-idle-delay have | |
3423 been removed. Use run-with-idle-timer instead. | |
3424 | |
3425 ** `suppress-keymap' now works by remapping `self-insert-command' to | |
3426 the command `undefined'. (In earlier Emacs versions, it used | |
3427 `substitute-key-definition' to rebind self inserting characters to | |
3428 `undefined'.) | |
3429 | |
3430 ** Mode line display ignores text properties as well as the | |
3431 :propertize and :eval forms in the value of a variable whose | |
3432 `risky-local-variable' property is nil. | |
3433 | |
3434 The function `comint-send-input' now accepts 3 optional arguments: | |
3435 | |
3436 (comint-send-input &optional no-newline artificial) | |
3437 | |
3438 Callers sending input not from the user should use bind the 3rd | |
3439 argument `artificial' to a non-nil value, to prevent Emacs from | |
3440 deleting the part of subprocess output that matches the input. | |
3441 | |
3442 ** Support for Mocklisp has been removed. | |
3443 | |
3444 ** The variable `memory-full' now remains t until | |
3445 there is no longer a shortage of memory. | |
3446 | |
3447 ** When Emacs receives a USR1 or USR2 signal, this generates | 3464 ** When Emacs receives a USR1 or USR2 signal, this generates |
3448 input events: sigusr1 or sigusr2. Use special-event-map to | 3465 input events: sigusr1 or sigusr2. Use special-event-map to |
3449 handle these events. | 3466 handle these events. |
3450 | 3467 |
3451 ** A hex or octal escape in a string constant forces the string to | 3468 ** The variable `memory-full' now remains t until |
3452 be multibyte or unibyte, respectively. | 3469 there is no longer a shortage of memory. |
3453 | 3470 |
3454 ** The explicit method of creating a display table element by | 3471 ** Support for Mocklisp has been removed. |
3455 combining a face number and a character code into a numeric | |
3456 glyph code is deprecated. | |
3457 | |
3458 Instead, the new functions `make-glyph-code', `glyph-char', and | |
3459 `glyph-face' must be used to create and decode glyph codes in | |
3460 display tables. | |
3461 | 3472 |
3462 | 3473 |
3463 * Lisp Changes in Emacs 22.1 | 3474 * Lisp Changes in Emacs 22.1 |
3464 | 3475 |
3465 ** General Lisp changes: | 3476 ** General Lisp changes: |
3482 of MATHEMATICAL ITALIC CAPITAL ALPHA (the latter is greater than | 3493 of MATHEMATICAL ITALIC CAPITAL ALPHA (the latter is greater than |
3483 #xFFFF and thus needs the longer syntax). | 3494 #xFFFF and thus needs the longer syntax). |
3484 | 3495 |
3485 This syntax works for both character constants and strings. | 3496 This syntax works for both character constants and strings. |
3486 | 3497 |
3487 *** The function `expt' handles negative exponents differently. | 3498 *** New function `unsafep' determines whether a Lisp form is safe. |
3488 The value for `(expt A B)', if both A and B are integers and B is | 3499 |
3489 negative, is now a float. For example: (expt 2 -2) => 0.25. | 3500 It returns nil if the given Lisp form can't possibly do anything |
3501 dangerous; otherwise it returns a reason why the form might be unsafe | |
3502 (calls unknown function, alters global variable, etc.). | |
3490 | 3503 |
3491 *** The function `eql' is now available without requiring the CL package. | 3504 *** The function `eql' is now available without requiring the CL package. |
3492 | 3505 |
3493 *** The new function `memql' is like `memq', but uses `eql' for comparison, | 3506 *** The new function `memql' is like `memq', but uses `eql' for comparison, |
3494 that is, floats are compared by value and other elements with `eq'. | 3507 that is, floats are compared by value and other elements with `eq'. |
3495 | 3508 |
3509 *** New functions `string-or-null-p' and `booleanp'. | |
3510 | |
3511 `string-or-null-p' returns non-nil iff OBJECT is a string or nil. | |
3512 `booleanp' returns non-nil iff OBJECT is t or nil. | |
3513 | |
3496 *** `makehash' is now obsolete. Use `make-hash-table' instead. | 3514 *** `makehash' is now obsolete. Use `make-hash-table' instead. |
3515 | |
3516 *** Minor change in the function `format'. | |
3517 | |
3518 Some flags that were accepted but not implemented (such as "*") are no | |
3519 longer accepted. | |
3497 | 3520 |
3498 *** `add-to-list' takes an optional third argument, APPEND. | 3521 *** `add-to-list' takes an optional third argument, APPEND. |
3499 | 3522 |
3500 If APPEND is non-nil, the new element gets added at the end of the | 3523 If APPEND is non-nil, the new element gets added at the end of the |
3501 list instead of at the beginning. This change actually occurred in | 3524 list instead of at the beginning. This change actually occurred in |
3502 Emacs 21.1, but was not documented then. | 3525 Emacs 21.1, but was not documented then. |
3503 | 3526 |
3504 *** New function `add-to-ordered-list' is like `add-to-list' but | 3527 *** New function `add-to-ordered-list' is like `add-to-list' but |
3505 associates a numeric ordering of each element added to the list. | 3528 associates a numeric ordering of each element added to the list. |
3506 | 3529 |
3530 *** New function `add-to-history' adds an element to a history list. | |
3531 | |
3532 Lisp packages should use this function to add elements to their | |
3533 history lists. | |
3534 | |
3535 If `history-delete-duplicates' is non-nil, it removes duplicates of | |
3536 the new element from the history list it updates. | |
3537 | |
3507 *** New function `copy-tree' makes a copy of a tree. | 3538 *** New function `copy-tree' makes a copy of a tree. |
3508 | 3539 |
3509 It recursively copies through both CARs and CDRs. | 3540 It recursively copies through both CARs and CDRs. |
3510 | 3541 |
3511 *** New function `delete-dups' deletes `equal' duplicate elements from a list. | 3542 *** New function `delete-dups' deletes `equal' duplicate elements from a list. |
3512 | 3543 |
3513 It modifies the list destructively, like `delete'. Of several `equal' | 3544 It modifies the list destructively, like `delete'. Of several `equal' |
3514 occurrences of an element in the list, the one that's kept is the | 3545 occurrences of an element in the list, the one that's kept is the |
3515 first one. | 3546 first one. |
3516 | 3547 |
3517 *** New function `add-to-history' adds an element to a history list. | |
3518 | |
3519 Lisp packages should use this function to add elements to their | |
3520 history lists. | |
3521 | |
3522 If `history-delete-duplicates' is non-nil, it removes duplicates of | |
3523 the new element from the history list it updates. | |
3524 | |
3525 *** New function `rassq-delete-all'. | 3548 *** New function `rassq-delete-all'. |
3526 | 3549 |
3527 (rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose | 3550 (rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose |
3528 CDR is `eq' to the specified value. | 3551 CDR is `eq' to the specified value. |
3552 | |
3553 *** Functions `get' and `plist-get' no longer give errors for bad plists. | |
3554 | |
3555 They return nil for a malformed property list or if the list is | |
3556 cyclic. | |
3557 | |
3558 *** New functions `lax-plist-get' and `lax-plist-put'. | |
3559 | |
3560 They are like `plist-get' and `plist-put', except that they compare | |
3561 the property name using `equal' rather than `eq'. | |
3529 | 3562 |
3530 *** The function `number-sequence' makes a list of equally-separated numbers. | 3563 *** The function `number-sequence' makes a list of equally-separated numbers. |
3531 | 3564 |
3532 For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By | 3565 For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By |
3533 default, the separation is 1, but you can specify a different | 3566 default, the separation is 1, but you can specify a different |
3536 | 3569 |
3537 *** New variables `most-positive-fixnum' and `most-negative-fixnum'. | 3570 *** New variables `most-positive-fixnum' and `most-negative-fixnum'. |
3538 | 3571 |
3539 They hold the largest and smallest possible integer values. | 3572 They hold the largest and smallest possible integer values. |
3540 | 3573 |
3541 *** Minor change in the function `format'. | 3574 *** The function `expt' handles negative exponents differently. |
3542 | 3575 The value for `(expt A B)', if both A and B are integers and B is |
3543 Some flags that were accepted but not implemented (such as "*") are no | 3576 negative, is now a float. For example: (expt 2 -2) => 0.25. |
3544 longer accepted. | 3577 |
3545 | 3578 *** The function `atan' now accepts an optional second argument. |
3546 *** Functions `get' and `plist-get' no longer give errors for bad plists. | 3579 |
3547 | 3580 When called with 2 arguments, as in `(atan Y X)', `atan' returns the |
3548 They return nil for a malformed property list or if the list is | 3581 angle in radians between the vector [X, Y] and the X axis. (This is |
3549 cyclic. | 3582 equivalent to the standard C library function `atan2'.) |
3550 | 3583 |
3551 *** New functions `lax-plist-get' and `lax-plist-put'. | 3584 *** New macro `with-case-table' |
3552 | 3585 |
3553 They are like `plist-get' and `plist-put', except that they compare | 3586 This executes the body with the case table temporarily set to a given |
3554 the property name using `equal' rather than `eq'. | 3587 case table. |
3555 | 3588 |
3556 *** New variable `print-continuous-numbering'. | 3589 *** New macro `with-local-quit' temporarily allows quitting. |
3557 | 3590 |
3558 When this is non-nil, successive calls to print functions use a single | 3591 A quit inside the body of `with-local-quit' is caught by the |
3559 numbering scheme for circular structure references. This is only | 3592 `with-local-quit' form itself, but another quit will happen later once |
3560 relevant when `print-circle' is non-nil. | 3593 the code that has inhibited quitting exits. |
3561 | 3594 |
3562 When you bind `print-continuous-numbering' to t, you should | 3595 This is for use around potentially blocking or long-running code |
3563 also bind `print-number-table' to nil. | 3596 inside timer functions and `post-command-hook' functions. |
3597 | |
3598 *** New macro `define-obsolete-function-alias'. | |
3599 | |
3600 This combines `defalias' and `make-obsolete'. | |
3601 | |
3602 *** New macro `eval-at-startup' specifies expressions to | |
3603 evaluate when Emacs starts up. If this is done after startup, | |
3604 it evaluates those expressions immediately. | |
3605 | |
3606 This is useful in packages that can be preloaded. | |
3564 | 3607 |
3565 *** New function `macroexpand-all' expands all macros in a form. | 3608 *** New function `macroexpand-all' expands all macros in a form. |
3566 | 3609 |
3567 It is similar to the Common-Lisp function of the same name. | 3610 It is similar to the Common-Lisp function of the same name. |
3568 One difference is that it guarantees to return the original argument | 3611 One difference is that it guarantees to return the original argument |
3569 if no expansion is done, which can be tested using `eq'. | 3612 if no expansion is done, which can be tested using `eq'. |
3570 | |
3571 *** The function `atan' now accepts an optional second argument. | |
3572 | |
3573 When called with 2 arguments, as in `(atan Y X)', `atan' returns the | |
3574 angle in radians between the vector [X, Y] and the X axis. (This is | |
3575 equivalent to the standard C library function `atan2'.) | |
3576 | 3613 |
3577 *** A function or macro's doc string can now specify the calling pattern. | 3614 *** A function or macro's doc string can now specify the calling pattern. |
3578 | 3615 |
3579 You put this info in the doc string's last line. It should be | 3616 You put this info in the doc string's last line. It should be |
3580 formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't | 3617 formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't |
3581 specify this explicitly, Emacs determines it from the actual argument | 3618 specify this explicitly, Emacs determines it from the actual argument |
3582 names. Usually that default is right, but not always. | 3619 names. Usually that default is right, but not always. |
3583 | 3620 |
3584 *** New macro `with-local-quit' temporarily allows quitting. | 3621 *** New variable `print-continuous-numbering'. |
3585 | 3622 |
3586 A quit inside the body of `with-local-quit' is caught by the | 3623 When this is non-nil, successive calls to print functions use a single |
3587 `with-local-quit' form itself, but another quit will happen later once | 3624 numbering scheme for circular structure references. This is only |
3588 the code that has inhibited quitting exits. | 3625 relevant when `print-circle' is non-nil. |
3589 | 3626 |
3590 This is for use around potentially blocking or long-running code | 3627 When you bind `print-continuous-numbering' to t, you should |
3591 inside timer functions and `post-command-hook' functions. | 3628 also bind `print-number-table' to nil. |
3592 | |
3593 *** New macro `define-obsolete-function-alias'. | |
3594 | |
3595 This combines `defalias' and `make-obsolete'. | |
3596 | |
3597 *** New macro `with-case-table' | |
3598 | |
3599 This executes the body with the case table temporarily set to a given | |
3600 case table. | |
3601 | |
3602 *** New function `unsafep' determines whether a Lisp form is safe. | |
3603 | |
3604 It returns nil if the given Lisp form can't possibly do anything | |
3605 dangerous; otherwise it returns a reason why the form might be unsafe | |
3606 (calls unknown function, alters global variable, etc.). | |
3607 | |
3608 *** New macro `eval-at-startup' specifies expressions to | |
3609 evaluate when Emacs starts up. If this is done after startup, | |
3610 it evaluates those expressions immediately. | |
3611 | |
3612 This is useful in packages that can be preloaded. | |
3613 | 3629 |
3614 *** `list-faces-display' takes an optional argument, REGEXP. | 3630 *** `list-faces-display' takes an optional argument, REGEXP. |
3615 | 3631 |
3616 If it is non-nil, the function lists only faces matching this regexp. | 3632 If it is non-nil, the function lists only faces matching this regexp. |
3617 | |
3618 *** New functions `string-or-null-p' and `booleanp'. | |
3619 | |
3620 `string-or-null-p' returns non-nil iff OBJECT is a string or nil. | |
3621 `booleanp' returns non-nil iff OBJECT is t or nil. | |
3622 | 3633 |
3623 *** New hook `command-error-function'. | 3634 *** New hook `command-error-function'. |
3624 | 3635 |
3625 By setting this variable to a function, you can control | 3636 By setting this variable to a function, you can control |
3626 how the editor command loop shows the user an error message. | 3637 how the editor command loop shows the user an error message. |
3668 changes the value of BASE-VAR. | 3679 changes the value of BASE-VAR. |
3669 | 3680 |
3670 DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has | 3681 DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has |
3671 the same documentation as BASE-VAR. | 3682 the same documentation as BASE-VAR. |
3672 | 3683 |
3684 *** The macro `define-obsolete-variable-alias' combines `defvaralias' and | |
3685 `make-obsolete-variable'. | |
3686 | |
3673 *** New function: indirect-variable VARIABLE | 3687 *** New function: indirect-variable VARIABLE |
3674 | 3688 |
3675 This function returns the variable at the end of the chain of aliases | 3689 This function returns the variable at the end of the chain of aliases |
3676 of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not | 3690 of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not |
3677 defined as an alias, the function returns VARIABLE. | 3691 defined as an alias, the function returns VARIABLE. |
3678 | 3692 |
3679 It might be noteworthy that variables aliases work for all kinds of | 3693 It might be noteworthy that variables aliases work for all kinds of |
3680 variables, including buffer-local and frame-local variables. | 3694 variables, including buffer-local and frame-local variables. |
3681 | |
3682 *** The macro `define-obsolete-variable-alias' combines `defvaralias' and | |
3683 `make-obsolete-variable'. | |
3684 | 3695 |
3685 ** defcustom changes: | 3696 ** defcustom changes: |
3686 | 3697 |
3687 *** The package-version keyword has been added to provide | 3698 *** The package-version keyword has been added to provide |
3688 `customize-changed-options' functionality to packages in the future. | 3699 `customize-changed-options' functionality to packages in the future. |
3694 ** String changes: | 3705 ** String changes: |
3695 | 3706 |
3696 *** A hex escape in a string constant forces the string to be multibyte. | 3707 *** A hex escape in a string constant forces the string to be multibyte. |
3697 | 3708 |
3698 *** An octal escape in a string constant forces the string to be unibyte. | 3709 *** An octal escape in a string constant forces the string to be unibyte. |
3710 | |
3711 *** New function `string-to-multibyte' converts a unibyte string to a | |
3712 multibyte string with the same individual character codes. | |
3699 | 3713 |
3700 *** `split-string' now includes null substrings in the returned list if | 3714 *** `split-string' now includes null substrings in the returned list if |
3701 the optional argument SEPARATORS is non-nil and there are matches for | 3715 the optional argument SEPARATORS is non-nil and there are matches for |
3702 SEPARATORS at the beginning or end of the string. If SEPARATORS is | 3716 SEPARATORS at the beginning or end of the string. If SEPARATORS is |
3703 nil, or if the new optional third argument OMIT-NULLS is non-nil, all | 3717 nil, or if the new optional third argument OMIT-NULLS is non-nil, all |
3704 empty matches are omitted from the returned list. | 3718 empty matches are omitted from the returned list. |
3705 | 3719 |
3706 *** New function `string-to-multibyte' converts a unibyte string to a | |
3707 multibyte string with the same individual character codes. | |
3708 | |
3709 *** New function `substring-no-properties' returns a substring without | |
3710 text properties. | |
3711 | |
3712 *** The new function `assoc-string' replaces `assoc-ignore-case' and | 3720 *** The new function `assoc-string' replaces `assoc-ignore-case' and |
3713 `assoc-ignore-representation', which are still available, but have | 3721 `assoc-ignore-representation', which are still available, but have |
3714 been declared obsolete. | 3722 been declared obsolete. |
3723 | |
3724 *** New function `substring-no-properties' returns a substring without | |
3725 text properties. | |
3715 | 3726 |
3716 ** Displaying warnings to the user. | 3727 ** Displaying warnings to the user. |
3717 | 3728 |
3718 See the functions `warn' and `display-warning', or the Lisp Manual. | 3729 See the functions `warn' and `display-warning', or the Lisp Manual. |
3719 If you want to be sure the warning will not be overlooked, this | 3730 If you want to be sure the warning will not be overlooked, this |
3747 | 3758 |
3748 *** Argument to `forward-to-indentation' and `backward-to-indentation' is optional. | 3759 *** Argument to `forward-to-indentation' and `backward-to-indentation' is optional. |
3749 | 3760 |
3750 It defaults to 1. | 3761 It defaults to 1. |
3751 | 3762 |
3752 *** New function `mouse-on-link-p' tests if a position is in a clickable link. | |
3753 | |
3754 This is the function used by the new `mouse-1-click-follows-link' | |
3755 functionality. | |
3756 | |
3757 *** New function `line-number-at-pos' returns the line number of a position. | |
3758 | |
3759 It an optional buffer position argument that defaults to point. | |
3760 | |
3761 *** `field-beginning' and `field-end' take new optional argument, LIMIT. | 3763 *** `field-beginning' and `field-end' take new optional argument, LIMIT. |
3762 | 3764 |
3763 This argument tells them not to search beyond LIMIT. Instead they | 3765 This argument tells them not to search beyond LIMIT. Instead they |
3764 give up and return LIMIT. | 3766 give up and return LIMIT. |
3767 | |
3768 *** New function `window-line-height' is an efficient way to get | |
3769 information about a specific text line in a window provided that the | |
3770 window's display is up-to-date. | |
3771 | |
3772 *** New function `line-number-at-pos' returns the line number of a position. | |
3773 | |
3774 It an optional buffer position argument that defaults to point. | |
3765 | 3775 |
3766 *** Function `pos-visible-in-window-p' now returns the pixel coordinates | 3776 *** Function `pos-visible-in-window-p' now returns the pixel coordinates |
3767 and partial visibility state of the corresponding row, if the PARTIALLY | 3777 and partial visibility state of the corresponding row, if the PARTIALLY |
3768 arg is non-nil. | 3778 arg is non-nil. |
3769 | 3779 |
3770 *** New function `window-line-height' is an efficient way to get | |
3771 information about a specific text line in a window provided that the | |
3772 window's display is up-to-date. | |
3773 | |
3774 *** New functions `posn-at-point' and `posn-at-x-y' return | 3780 *** New functions `posn-at-point' and `posn-at-x-y' return |
3775 click-event-style position information for a given visible buffer | 3781 click-event-style position information for a given visible buffer |
3776 position or for a given window pixel coordinate. | 3782 position or for a given window pixel coordinate. |
3783 | |
3784 *** New function `mouse-on-link-p' tests if a position is in a clickable link. | |
3785 | |
3786 This is the function used by the new `mouse-1-click-follows-link' | |
3787 functionality. | |
3777 | 3788 |
3778 ** Text modification: | 3789 ** Text modification: |
3779 | 3790 |
3780 *** The new function `buffer-chars-modified-tick' returns a buffer's | 3791 *** The new function `buffer-chars-modified-tick' returns a buffer's |
3781 tick counter for changes to characters. Each time text in that buffer | 3792 tick counter for changes to characters. Each time text in that buffer |
3884 change group you start for any given buffer should be the last one | 3895 change group you start for any given buffer should be the last one |
3885 finished. | 3896 finished. |
3886 | 3897 |
3887 ** Buffer-related changes: | 3898 ** Buffer-related changes: |
3888 | 3899 |
3889 *** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. | |
3890 | |
3891 If it is non-nil, it specifies which buffers to list. | |
3892 | |
3893 *** `kill-buffer-hook' is now a permanent local. | |
3894 | |
3895 *** The new function `buffer-local-value' returns the buffer-local | 3900 *** The new function `buffer-local-value' returns the buffer-local |
3896 binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not | 3901 binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not |
3897 have a buffer-local binding in buffer BUFFER, it returns the default | 3902 have a buffer-local binding in buffer BUFFER, it returns the default |
3898 value of VARIABLE instead. | 3903 value of VARIABLE instead. |
3904 | |
3905 *** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. | |
3906 | |
3907 If it is non-nil, it specifies which buffers to list. | |
3908 | |
3909 *** `kill-buffer-hook' is now a permanent local. | |
3899 | 3910 |
3900 *** The function `frame-or-buffer-changed-p' now lets you maintain | 3911 *** The function `frame-or-buffer-changed-p' now lets you maintain |
3901 various status records in parallel. | 3912 various status records in parallel. |
3902 | 3913 |
3903 It takes a variable (a symbol) as argument. If the variable is non-nil, | 3914 It takes a variable (a symbol) as argument. If the variable is non-nil, |
3939 | 3950 |
3940 These match the beginning and end of a symbol. A symbol is a | 3951 These match the beginning and end of a symbol. A symbol is a |
3941 non-empty sequence of either word or symbol constituent characters, as | 3952 non-empty sequence of either word or symbol constituent characters, as |
3942 specified by the syntax table. | 3953 specified by the syntax table. |
3943 | 3954 |
3944 *** rx.el has new corresponding `symbol-start' and `symbol-end' elements. | |
3945 | |
3946 *** `skip-chars-forward' and `skip-chars-backward' now handle | 3955 *** `skip-chars-forward' and `skip-chars-backward' now handle |
3947 character classes such as `[:alpha:]', along with individual | 3956 character classes such as `[:alpha:]', along with individual |
3948 characters and ranges. | 3957 characters and ranges. |
3949 | 3958 |
3950 *** In `replace-match', the replacement text no longer inherits | 3959 *** In `replace-match', the replacement text no longer inherits |
3955 accepts such a list for restoring the match state. | 3964 accepts such a list for restoring the match state. |
3956 | 3965 |
3957 *** Functions `match-data' and `set-match-data' now have an optional | 3966 *** Functions `match-data' and `set-match-data' now have an optional |
3958 argument `reseat'. When non-nil, all markers in the match data list | 3967 argument `reseat'. When non-nil, all markers in the match data list |
3959 passed to these functions will be reseated to point to nowhere. | 3968 passed to these functions will be reseated to point to nowhere. |
3969 | |
3970 *** rx.el has new corresponding `symbol-start' and `symbol-end' elements. | |
3960 | 3971 |
3961 *** The default value of `sentence-end' is now defined using the new | 3972 *** The default value of `sentence-end' is now defined using the new |
3962 variable `sentence-end-without-space', which contains such characters | 3973 variable `sentence-end-without-space', which contains such characters |
3963 that end a sentence without following spaces. | 3974 that end a sentence without following spaces. |
3964 | 3975 |
3982 | 3993 |
3983 *** If the buffer's undo list for the current command gets longer than | 3994 *** If the buffer's undo list for the current command gets longer than |
3984 `undo-outer-limit', garbage collection empties it. This is to prevent | 3995 `undo-outer-limit', garbage collection empties it. This is to prevent |
3985 it from using up the available memory and choking Emacs. | 3996 it from using up the available memory and choking Emacs. |
3986 | 3997 |
3987 ** New `yank-handler' text property can be used to control how | 3998 ** Killing and yanking changes: |
3999 | |
4000 *** New `yank-handler' text property can be used to control how | |
3988 previously killed text on the kill ring is reinserted. | 4001 previously killed text on the kill ring is reinserted. |
3989 | 4002 |
3990 The value of the `yank-handler' property must be a list with one to four | 4003 The value of the `yank-handler' property must be a list with one to four |
3991 elements with the following format: | 4004 elements with the following format: |
3992 (FUNCTION PARAM NOEXCLUDE UNDO). | 4005 (FUNCTION PARAM NOEXCLUDE UNDO). |
4026 string. The old behavior is available if you call | 4039 string. The old behavior is available if you call |
4027 `insert-for-yank-1' instead. | 4040 `insert-for-yank-1' instead. |
4028 | 4041 |
4029 ** Syntax table changes: | 4042 ** Syntax table changes: |
4030 | 4043 |
4031 *** The macro `with-syntax-table' no longer copies the syntax table. | 4044 *** The new function `syntax-ppss' provides an efficient way to find the |
4045 current syntactic context at point. | |
4032 | 4046 |
4033 *** The new function `syntax-after' returns the syntax code | 4047 *** The new function `syntax-after' returns the syntax code |
4034 of the character after a specified buffer position, taking account | 4048 of the character after a specified buffer position, taking account |
4035 of text properties as well as the character code. | 4049 of text properties as well as the character code. |
4036 | 4050 |
4037 *** `syntax-class' extracts the class of a syntax code (as returned | 4051 *** `syntax-class' extracts the class of a syntax code (as returned |
4038 by `syntax-after'). | 4052 by `syntax-after'). |
4039 | 4053 |
4040 *** The new function `syntax-ppss' provides an efficient way to find the | 4054 *** The macro `with-syntax-table' no longer copies the syntax table. |
4041 current syntactic context at point. | |
4042 | 4055 |
4043 ** File operation changes: | 4056 ** File operation changes: |
4044 | 4057 |
4045 *** New vars `exec-suffixes' and `load-suffixes' used when | 4058 *** New vars `exec-suffixes' and `load-suffixes' used when |
4046 searching for an executable or an Emacs Lisp file. | 4059 searching for an executable or an Emacs Lisp file. |
4047 | |
4048 *** The new primitive `set-file-times' sets a file's access and | |
4049 modification times. Magic file name handlers can handle this | |
4050 operation. | |
4051 | |
4052 *** The new function `file-remote-p' tests a file name and returns | |
4053 non-nil if it specifies a remote file (one that Emacs accesses using | |
4054 its own special methods and not directly through the file system). | |
4055 The value in that case is an identifier for the remote file system. | |
4056 | |
4057 *** `buffer-auto-save-file-format' is the new name for what was | |
4058 formerly called `auto-save-file-format'. It is now a permanent local. | |
4059 | |
4060 *** Functions `file-name-sans-extension' and `file-name-extension' now | |
4061 ignore the leading dots in file names, so that file names such as | |
4062 `.emacs' are treated as extensionless. | |
4063 | |
4064 *** `visited-file-modtime' and `calendar-time-from-absolute' now return | |
4065 a list of two integers, instead of a cons. | |
4066 | |
4067 *** `file-chase-links' now takes an optional second argument LIMIT which | |
4068 specifies the maximum number of links to chase through. If after that | |
4069 many iterations the file name obtained is still a symbolic link, | |
4070 `file-chase-links' returns it anyway. | |
4071 | |
4072 *** The new hook `before-save-hook' is invoked by `basic-save-buffer' | |
4073 before saving buffers. This allows packages to perform various final | |
4074 tasks. For example, it can be used by the copyright package to make | |
4075 sure saved files have the current year in any copyright headers. | |
4076 | |
4077 *** If `buffer-save-without-query' is non-nil in some buffer, | |
4078 `save-some-buffers' will always save that buffer without asking (if | |
4079 it's modified). | |
4080 | 4060 |
4081 *** New function `locate-file' searches for a file in a list of directories. | 4061 *** New function `locate-file' searches for a file in a list of directories. |
4082 `locate-file' accepts a name of a file to search (a string), and two | 4062 `locate-file' accepts a name of a file to search (a string), and two |
4083 lists: a list of directories to search in and a list of suffixes to | 4063 lists: a list of directories to search in and a list of suffixes to |
4084 try; typical usage might use `exec-path' and `load-path' for the list | 4064 try; typical usage might use `exec-path' and `load-path' for the list |
4088 | 4068 |
4089 One advantage of using this function is that the list of suffixes in | 4069 One advantage of using this function is that the list of suffixes in |
4090 `exec-suffixes' is OS-dependant, so this function will find | 4070 `exec-suffixes' is OS-dependant, so this function will find |
4091 executables without polluting Lisp code with OS dependencies. | 4071 executables without polluting Lisp code with OS dependencies. |
4092 | 4072 |
4073 *** The new function `file-remote-p' tests a file name and returns | |
4074 non-nil if it specifies a remote file (one that Emacs accesses using | |
4075 its own special methods and not directly through the file system). | |
4076 The value in that case is an identifier for the remote file system. | |
4077 | |
4078 *** The new hook `before-save-hook' is invoked by `basic-save-buffer' | |
4079 before saving buffers. This allows packages to perform various final | |
4080 tasks. For example, it can be used by the copyright package to make | |
4081 sure saved files have the current year in any copyright headers. | |
4082 | |
4083 *** `file-chase-links' now takes an optional second argument LIMIT which | |
4084 specifies the maximum number of links to chase through. If after that | |
4085 many iterations the file name obtained is still a symbolic link, | |
4086 `file-chase-links' returns it anyway. | |
4087 | |
4088 *** Functions `file-name-sans-extension' and `file-name-extension' now | |
4089 ignore the leading dots in file names, so that file names such as | |
4090 `.emacs' are treated as extensionless. | |
4091 | |
4092 *** If `buffer-save-without-query' is non-nil in some buffer, | |
4093 `save-some-buffers' will always save that buffer without asking (if | |
4094 it's modified). | |
4095 | |
4096 *** `buffer-auto-save-file-format' is the new name for what was | |
4097 formerly called `auto-save-file-format'. It is now a permanent local. | |
4098 | |
4099 *** `visited-file-modtime' and `calendar-time-from-absolute' now return | |
4100 a list of two integers, instead of a cons. | |
4101 | |
4093 *** The precedence of file name handlers has been changed. | 4102 *** The precedence of file name handlers has been changed. |
4094 | 4103 |
4095 Instead of choosing the first handler that matches, | 4104 Instead of choosing the first handler that matches, |
4096 `find-file-name-handler' now gives precedence to a file name handler | 4105 `find-file-name-handler' now gives precedence to a file name handler |
4097 that matches nearest the end of the file name. More precisely, the | 4106 that matches nearest the end of the file name. More precisely, the |
4112 name handlers. This will be exploited for remote files mainly. | 4121 name handlers. This will be exploited for remote files mainly. |
4113 | 4122 |
4114 *** The function `file-name-completion' accepts an optional argument | 4123 *** The function `file-name-completion' accepts an optional argument |
4115 PREDICATE, and rejects completion candidates that don't satisfy PREDICATE. | 4124 PREDICATE, and rejects completion candidates that don't satisfy PREDICATE. |
4116 | 4125 |
4126 *** The new primitive `set-file-times' sets a file's access and | |
4127 modification times. Magic file name handlers can handle this | |
4128 operation. | |
4129 | |
4117 ** Input changes: | 4130 ** Input changes: |
4131 | |
4132 *** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that | |
4133 display a prompt but don't use the minibuffer, now display the prompt | |
4134 using the text properties (esp. the face) of the prompt string. | |
4118 | 4135 |
4119 *** The functions `read-event', `read-char', and `read-char-exclusive' | 4136 *** The functions `read-event', `read-char', and `read-char-exclusive' |
4120 have a new optional argument SECONDS. If non-nil, this specifies a | 4137 have a new optional argument SECONDS. If non-nil, this specifies a |
4121 maximum time to wait for input, in seconds. If no input arrives after | 4138 maximum time to wait for input, in seconds. If no input arrives after |
4122 this time elapses, the functions stop waiting and return nil. | 4139 this time elapses, the functions stop waiting and return nil. |
4126 previous `k' or `K' argument was a down-event; otherwise nil is used. | 4143 previous `k' or `K' argument was a down-event; otherwise nil is used. |
4127 | 4144 |
4128 *** The new interactive-specification `G' reads a file name | 4145 *** The new interactive-specification `G' reads a file name |
4129 much like `F', but if the input is a directory name (even defaulted), | 4146 much like `F', but if the input is a directory name (even defaulted), |
4130 it returns just the directory name. | 4147 it returns just the directory name. |
4131 | |
4132 *** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that | |
4133 display a prompt but don't use the minibuffer, now display the prompt | |
4134 using the text properties (esp. the face) of the prompt string. | |
4135 | 4148 |
4136 *** (while-no-input BODY...) runs BODY, but only so long as no input | 4149 *** (while-no-input BODY...) runs BODY, but only so long as no input |
4137 arrives. If the user types or clicks anything, BODY stops as if a | 4150 arrives. If the user types or clicks anything, BODY stops as if a |
4138 quit had occurred. `while-no-input' returns the value of BODY, if BODY | 4151 quit had occurred. `while-no-input' returns the value of BODY, if BODY |
4139 finishes. It returns nil if BODY was aborted by a quit, and t if | 4152 finishes. It returns nil if BODY was aborted by a quit, and t if |
4207 arguments. FUN must return the completion table that will be stored in VAR. | 4220 arguments. FUN must return the completion table that will be stored in VAR. |
4208 If completion is requested in the minibuffer, FUN will be called in the buffer | 4221 If completion is requested in the minibuffer, FUN will be called in the buffer |
4209 from which the minibuffer was entered. The return value of | 4222 from which the minibuffer was entered. The return value of |
4210 `lazy-completion-table' must be used to initialize the value of VAR. | 4223 `lazy-completion-table' must be used to initialize the value of VAR. |
4211 | 4224 |
4225 ** Abbrev changes: | |
4226 | |
4227 *** `define-abbrev' now accepts an optional argument SYSTEM-FLAG. | |
4228 | |
4229 If non-nil, this marks the abbrev as a "system" abbrev, which means | |
4230 that it won't be stored in the user's abbrevs file if he saves the | |
4231 abbrevs. Major modes that predefine some abbrevs should always | |
4232 specify this flag. | |
4233 | |
4234 *** The new function `copy-abbrev-table' copies an abbrev table. | |
4235 | |
4236 It returns a new abbrev table that is a copy of a given abbrev table. | |
4237 | |
4212 ** Enhancements to keymaps. | 4238 ** Enhancements to keymaps. |
4239 | |
4240 *** Cleaner way to enter key sequences. | |
4241 | |
4242 You can enter a constant key sequence in a more natural format, the | |
4243 same one used for saving keyboard macros, using the macro `kbd'. For | |
4244 example, | |
4245 | |
4246 (kbd "C-x C-f") => "\^x\^f" | |
4247 | |
4248 Actually, this format has existed since Emacs 20.1. | |
4249 | |
4250 *** Interactive commands can be remapped through keymaps. | |
4251 | |
4252 This is an alternative to using `defadvice' or `substitute-key-definition' | |
4253 to modify the behavior of a key binding using the normal keymap | |
4254 binding and lookup functionality. | |
4255 | |
4256 When a key sequence is bound to a command, and that command is | |
4257 remapped to another command, that command is run instead of the | |
4258 original command. | |
4259 | |
4260 Example: | |
4261 Suppose that minor mode `my-mode' has defined the commands | |
4262 `my-kill-line' and `my-kill-word', and it wants C-k (and any other key | |
4263 bound to `kill-line') to run the command `my-kill-line' instead of | |
4264 `kill-line', and likewise it wants to run `my-kill-word' instead of | |
4265 `kill-word'. | |
4266 | |
4267 Instead of rebinding C-k and the other keys in the minor mode map, | |
4268 command remapping allows you to directly map `kill-line' into | |
4269 `my-kill-line' and `kill-word' into `my-kill-word' using `define-key': | |
4270 | |
4271 (define-key my-mode-map [remap kill-line] 'my-kill-line) | |
4272 (define-key my-mode-map [remap kill-word] 'my-kill-word) | |
4273 | |
4274 When `my-mode' is enabled, its minor mode keymap is enabled too. So | |
4275 when the user types C-k, that runs the command `my-kill-line'. | |
4276 | |
4277 Only one level of remapping is supported. In the above example, this | |
4278 means that if `my-kill-line' is remapped to `other-kill', then C-k still | |
4279 runs `my-kill-line'. | |
4280 | |
4281 The following changes have been made to provide command remapping: | |
4282 | |
4283 - Command remappings are defined using `define-key' with a prefix-key | |
4284 `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD | |
4285 to definition DEF in keymap MAP. The definition is not limited to | |
4286 another command; it can be anything accepted for a normal binding. | |
4287 | |
4288 - The new function `command-remapping' returns the binding for a | |
4289 remapped command in the current keymaps, or nil if not remapped. | |
4290 | |
4291 - `key-binding' now remaps interactive commands unless the optional | |
4292 third argument NO-REMAP is non-nil. | |
4293 | |
4294 - `where-is-internal' now returns nil for a remapped command (e.g. | |
4295 `kill-line', when `my-mode' is enabled), and the actual key binding for | |
4296 the command it is remapped to (e.g. C-k for my-kill-line). | |
4297 It also has a new optional fifth argument, NO-REMAP, which inhibits | |
4298 remapping if non-nil (e.g. it returns "C-k" for `kill-line', and | |
4299 "<kill-line>" for `my-kill-line'). | |
4300 | |
4301 - The new variable `this-original-command' contains the original | |
4302 command before remapping. It is equal to `this-command' when the | |
4303 command was not remapped. | |
4304 | |
4305 *** The definition of a key-binding passed to define-key can use XEmacs-style | |
4306 key-sequences, such as [(control a)]. | |
4213 | 4307 |
4214 *** New keymaps for typing file names | 4308 *** New keymaps for typing file names |
4215 | 4309 |
4216 Two new keymaps, `minibuffer-local-filename-completion-map' and | 4310 Two new keymaps, `minibuffer-local-filename-completion-map' and |
4217 `minibuffer-local-must-match-filename-map', apply whenever | 4311 `minibuffer-local-must-match-filename-map', apply whenever |
4218 Emacs reads a file name in the minibuffer. These key maps override | 4312 Emacs reads a file name in the minibuffer. These key maps override |
4219 the usual binding of SPC to `minibuffer-complete-word' (so that file | 4313 the usual binding of SPC to `minibuffer-complete-word' (so that file |
4220 names with embedded spaces could be typed without the need to quote | 4314 names with embedded spaces could be typed without the need to quote |
4221 the spaces). | 4315 the spaces). |
4222 | 4316 |
4223 *** Cleaner way to enter key sequences. | 4317 *** New function `current-active-maps' returns a list of currently |
4224 | 4318 active keymaps. |
4225 You can enter a constant key sequence in a more natural format, the | 4319 |
4226 same one used for saving keyboard macros, using the macro `kbd'. For | 4320 *** New function `describe-buffer-bindings' inserts the list of all |
4227 example, | 4321 defined keys and their definitions. |
4228 | 4322 |
4229 (kbd "C-x C-f") => "\^x\^f" | 4323 *** New function `keymap-prompt' returns the prompt string of a keymap. |
4230 | |
4231 Actually, this format has existed since Emacs 20.1. | |
4232 | |
4233 *** Interactive commands can be remapped through keymaps. | |
4234 | |
4235 This is an alternative to using `defadvice' or `substitute-key-definition' | |
4236 to modify the behavior of a key binding using the normal keymap | |
4237 binding and lookup functionality. | |
4238 | |
4239 When a key sequence is bound to a command, and that command is | |
4240 remapped to another command, that command is run instead of the | |
4241 original command. | |
4242 | |
4243 Example: | |
4244 Suppose that minor mode `my-mode' has defined the commands | |
4245 `my-kill-line' and `my-kill-word', and it wants C-k (and any other key | |
4246 bound to `kill-line') to run the command `my-kill-line' instead of | |
4247 `kill-line', and likewise it wants to run `my-kill-word' instead of | |
4248 `kill-word'. | |
4249 | |
4250 Instead of rebinding C-k and the other keys in the minor mode map, | |
4251 command remapping allows you to directly map `kill-line' into | |
4252 `my-kill-line' and `kill-word' into `my-kill-word' using `define-key': | |
4253 | |
4254 (define-key my-mode-map [remap kill-line] 'my-kill-line) | |
4255 (define-key my-mode-map [remap kill-word] 'my-kill-word) | |
4256 | |
4257 When `my-mode' is enabled, its minor mode keymap is enabled too. So | |
4258 when the user types C-k, that runs the command `my-kill-line'. | |
4259 | |
4260 Only one level of remapping is supported. In the above example, this | |
4261 means that if `my-kill-line' is remapped to `other-kill', then C-k still | |
4262 runs `my-kill-line'. | |
4263 | |
4264 The following changes have been made to provide command remapping: | |
4265 | |
4266 - Command remappings are defined using `define-key' with a prefix-key | |
4267 `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD | |
4268 to definition DEF in keymap MAP. The definition is not limited to | |
4269 another command; it can be anything accepted for a normal binding. | |
4270 | |
4271 - The new function `command-remapping' returns the binding for a | |
4272 remapped command in the current keymaps, or nil if not remapped. | |
4273 | |
4274 - `key-binding' now remaps interactive commands unless the optional | |
4275 third argument NO-REMAP is non-nil. | |
4276 | |
4277 - `where-is-internal' now returns nil for a remapped command (e.g. | |
4278 `kill-line', when `my-mode' is enabled), and the actual key binding for | |
4279 the command it is remapped to (e.g. C-k for my-kill-line). | |
4280 It also has a new optional fifth argument, NO-REMAP, which inhibits | |
4281 remapping if non-nil (e.g. it returns "C-k" for `kill-line', and | |
4282 "<kill-line>" for `my-kill-line'). | |
4283 | |
4284 - The new variable `this-original-command' contains the original | |
4285 command before remapping. It is equal to `this-command' when the | |
4286 command was not remapped. | |
4287 | 4324 |
4288 *** If text has a `keymap' property, that keymap takes precedence | 4325 *** If text has a `keymap' property, that keymap takes precedence |
4289 over minor mode keymaps. | 4326 over minor mode keymaps. |
4290 | 4327 |
4291 *** The `keymap' property now also works at the ends of overlays and | 4328 *** The `keymap' property now also works at the ends of overlays and |
4296 keymaps consulted by `key-binding' will get adapted if the key | 4333 keymaps consulted by `key-binding' will get adapted if the key |
4297 sequence is started with a mouse event. Instead of letting the click | 4334 sequence is started with a mouse event. Instead of letting the click |
4298 position be determined from the key sequence itself, it is also | 4335 position be determined from the key sequence itself, it is also |
4299 possible to specify it with an optional argument explicitly. | 4336 possible to specify it with an optional argument explicitly. |
4300 | 4337 |
4301 *** Dense keymaps now handle inheritance correctly. | |
4302 | |
4303 Previously a dense keymap would hide all of the simple-char key | |
4304 bindings of the parent keymap. | |
4305 | |
4306 *** `define-key-after' now accepts keys longer than 1. | 4338 *** `define-key-after' now accepts keys longer than 1. |
4307 | |
4308 *** New function `current-active-maps' returns a list of currently | |
4309 active keymaps. | |
4310 | |
4311 *** New function `describe-buffer-bindings' inserts the list of all | |
4312 defined keys and their definitions. | |
4313 | |
4314 *** New function `keymap-prompt' returns the prompt string of a keymap. | |
4315 | 4339 |
4316 *** (map-keymap FUNCTION KEYMAP) applies the function to each binding | 4340 *** (map-keymap FUNCTION KEYMAP) applies the function to each binding |
4317 in the keymap. | 4341 in the keymap. |
4318 | 4342 |
4319 *** New variable `emulation-mode-map-alists'. | 4343 *** New variable `emulation-mode-map-alists'. |
4320 | 4344 |
4321 Lisp packages using many minor mode keymaps can now maintain their own | 4345 Lisp packages using many minor mode keymaps can now maintain their own |
4322 keymap alist separate from `minor-mode-map-alist' by adding their | 4346 keymap alist separate from `minor-mode-map-alist' by adding their |
4323 keymap alist to this list. | 4347 keymap alist to this list. |
4324 | 4348 |
4325 *** The definition of a key-binding passed to define-key can use XEmacs-style | 4349 *** Dense keymaps now handle inheritance correctly. |
4326 key-sequences, such as [(control a)]. | 4350 |
4327 | 4351 Previously a dense keymap would hide all of the simple-char key |
4328 ** Abbrev changes: | 4352 bindings of the parent keymap. |
4329 | |
4330 *** The new function `copy-abbrev-table' copies an abbrev table. | |
4331 | |
4332 It returns a new abbrev table that is a copy of a given abbrev table. | |
4333 | |
4334 *** `define-abbrev' now accepts an optional argument SYSTEM-FLAG. | |
4335 | |
4336 If non-nil, this marks the abbrev as a "system" abbrev, which means | |
4337 that it won't be stored in the user's abbrevs file if he saves the | |
4338 abbrevs. Major modes that predefine some abbrevs should always | |
4339 specify this flag. | |
4340 | 4353 |
4341 ** Enhancements to process support | 4354 ** Enhancements to process support |
4342 | |
4343 *** Function `list-processes' now has an optional argument; if non-nil, | |
4344 it lists only the processes whose query-on-exit flag is set. | |
4345 | |
4346 *** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'. | |
4347 | |
4348 These replace the old function `process-kill-without-query'. That | |
4349 function is still supported, but new code should use the new | |
4350 functions. | |
4351 | |
4352 *** Function `signal-process' now accepts a process object or process | |
4353 name in addition to a process id to identify the signaled process. | |
4354 | |
4355 *** Processes now have an associated property list where programs can | |
4356 maintain process state and other per-process related information. | |
4357 | |
4358 Use the new functions `process-get' and `process-put' to access, add, | |
4359 and modify elements on this property list. Use the new functions | |
4360 `process-plist' and `set-process-plist' to access and replace the | |
4361 entire property list of a process. | |
4362 | |
4363 *** Function `accept-process-output' has a new optional fourth arg | |
4364 JUST-THIS-ONE. If non-nil, only output from the specified process | |
4365 is handled, suspending output from other processes. If value is an | |
4366 integer, also inhibit running timers. This feature is generally not | |
4367 recommended, but may be necessary for specific applications, such as | |
4368 speech synthesis. | |
4369 | 4355 |
4370 *** Adaptive read buffering of subprocess output. | 4356 *** Adaptive read buffering of subprocess output. |
4371 | 4357 |
4372 On some systems, when Emacs reads the output from a subprocess, the | 4358 On some systems, when Emacs reads the output from a subprocess, the |
4373 output data is read in very small blocks, potentially resulting in | 4359 output data is read in very small blocks, potentially resulting in |
4375 by setting the new variable `process-adaptive-read-buffering' to a | 4361 by setting the new variable `process-adaptive-read-buffering' to a |
4376 non-nil value (the default), as it will automatically delay reading | 4362 non-nil value (the default), as it will automatically delay reading |
4377 from such processes, allowing them to produce more output before | 4363 from such processes, allowing them to produce more output before |
4378 Emacs tries to read it. | 4364 Emacs tries to read it. |
4379 | 4365 |
4366 *** Processes now have an associated property list where programs can | |
4367 maintain process state and other per-process related information. | |
4368 | |
4369 Use the new functions `process-get' and `process-put' to access, add, | |
4370 and modify elements on this property list. Use the new functions | |
4371 `process-plist' and `set-process-plist' to access and replace the | |
4372 entire property list of a process. | |
4373 | |
4374 *** Function `list-processes' now has an optional argument; if non-nil, | |
4375 it lists only the processes whose query-on-exit flag is set. | |
4376 | |
4377 *** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'. | |
4378 | |
4379 These replace the old function `process-kill-without-query'. That | |
4380 function is still supported, but new code should use the new | |
4381 functions. | |
4382 | |
4380 *** The new function `call-process-shell-command'. | 4383 *** The new function `call-process-shell-command'. |
4381 | 4384 |
4382 This executes a shell command synchronously in a separate process. | 4385 This executes a shell command synchronously in a separate process. |
4383 | 4386 |
4384 *** The new function `process-file' is similar to `call-process', but | 4387 *** The new function `process-file' is similar to `call-process', but |
4385 obeys file handlers. The file handler is chosen based on | 4388 obeys file handlers. The file handler is chosen based on |
4386 `default-directory'. | 4389 `default-directory'. |
4390 | |
4391 *** Function `signal-process' now accepts a process object or process | |
4392 name in addition to a process id to identify the signaled process. | |
4393 | |
4394 *** Function `accept-process-output' has a new optional fourth arg | |
4395 JUST-THIS-ONE. If non-nil, only output from the specified process | |
4396 is handled, suspending output from other processes. If value is an | |
4397 integer, also inhibit running timers. This feature is generally not | |
4398 recommended, but may be necessary for specific applications, such as | |
4399 speech synthesis. | |
4387 | 4400 |
4388 *** A process filter function gets the output as multibyte string | 4401 *** A process filter function gets the output as multibyte string |
4389 if the process specifies t for its filter's multibyteness. | 4402 if the process specifies t for its filter's multibyteness. |
4390 | 4403 |
4391 That multibyteness is decided by the value of | 4404 That multibyteness is decided by the value of |
4425 (featurep 'make-network-process '(:type datagram)) | 4438 (featurep 'make-network-process '(:type datagram)) |
4426 (featurep 'make-network-process '(:family ipv6)) | 4439 (featurep 'make-network-process '(:family ipv6)) |
4427 | 4440 |
4428 *** The old `open-network-stream' now uses `make-network-process'. | 4441 *** The old `open-network-stream' now uses `make-network-process'. |
4429 | 4442 |
4430 *** New functions `process-datagram-address', `set-process-datagram-address'. | 4443 *** `process-contact' has an optional KEY argument. |
4431 | 4444 |
4432 These functions are used with datagram-based network processes to get | 4445 Depending on this argument, you can get the complete list of network |
4433 and set the current address of the remote partner. | 4446 process properties or a specific property. Using :local or :remote as |
4447 the KEY, you get the address of the local or remote end-point. | |
4448 | |
4449 An Inet address is represented as a 5 element vector, where the first | |
4450 4 elements contain the IP address and the fifth is the port number. | |
4451 | |
4452 *** New functions `stop-process' and `continue-process'. | |
4453 | |
4454 These functions stop and restart communication through a network | |
4455 connection. For a server process, no connections are accepted in the | |
4456 stopped state. For a client process, no input is received in the | |
4457 stopped state. | |
4434 | 4458 |
4435 *** New function `format-network-address'. | 4459 *** New function `format-network-address'. |
4436 | 4460 |
4437 This function reformats the Lisp representation of a network address | 4461 This function reformats the Lisp representation of a network address |
4438 to a printable string. For example, an IP address A.B.C.D and port | 4462 to a printable string. For example, an IP address A.B.C.D and port |
4439 number P is represented as a five element vector [A B C D P], and the | 4463 number P is represented as a five element vector [A B C D P], and the |
4440 printable string returned for this vector is "A.B.C.D:P". See the doc | 4464 printable string returned for this vector is "A.B.C.D:P". See the doc |
4441 string for other formatting options. | 4465 string for other formatting options. |
4442 | 4466 |
4443 *** `process-contact' has an optional KEY argument. | |
4444 | |
4445 Depending on this argument, you can get the complete list of network | |
4446 process properties or a specific property. Using :local or :remote as | |
4447 the KEY, you get the address of the local or remote end-point. | |
4448 | |
4449 An Inet address is represented as a 5 element vector, where the first | |
4450 4 elements contain the IP address and the fifth is the port number. | |
4451 | |
4452 *** New functions `stop-process' and `continue-process'. | |
4453 | |
4454 These functions stop and restart communication through a network | |
4455 connection. For a server process, no connections are accepted in the | |
4456 stopped state. For a client process, no input is received in the | |
4457 stopped state. | |
4458 | |
4459 *** New function `network-interface-list'. | 4467 *** New function `network-interface-list'. |
4460 | 4468 |
4461 This function returns a list of network interface names and their | 4469 This function returns a list of network interface names and their |
4462 current network addresses. | 4470 current network addresses. |
4463 | 4471 |
4464 *** New function `network-interface-info'. | 4472 *** New function `network-interface-info'. |
4465 | 4473 |
4466 This function returns the network address, hardware address, current | 4474 This function returns the network address, hardware address, current |
4467 status, and other information about a specific network interface. | 4475 status, and other information about a specific network interface. |
4476 | |
4477 *** New functions `process-datagram-address', `set-process-datagram-address'. | |
4478 | |
4479 These functions are used with datagram-based network processes to get | |
4480 and set the current address of the remote partner. | |
4468 | 4481 |
4469 *** Deleting a network process with `delete-process' calls the sentinel. | 4482 *** Deleting a network process with `delete-process' calls the sentinel. |
4470 | 4483 |
4471 The status message passed to the sentinel for a deleted network | 4484 The status message passed to the sentinel for a deleted network |
4472 process is "deleted". The message passed to the sentinel when the | 4485 process is "deleted". The message passed to the sentinel when the |
4473 connection is closed by the remote peer has been changed to | 4486 connection is closed by the remote peer has been changed to |
4474 "connection broken by remote peer". | 4487 "connection broken by remote peer". |
4475 | 4488 |
4476 ** Using window objects: | 4489 ** Using window objects: |
4477 | |
4478 *** New function `window-body-height'. | |
4479 | |
4480 This is like `window-height' but does not count the mode line or the | |
4481 header line. | |
4482 | 4490 |
4483 *** You can now make a window as short as one line. | 4491 *** You can now make a window as short as one line. |
4484 | 4492 |
4485 A window that is just one line tall does not display either a mode | 4493 A window that is just one line tall does not display either a mode |
4486 line or a header line, even if the variables `mode-line-format' and | 4494 line or a header line, even if the variables `mode-line-format' and |
4494 the mode line. | 4502 the mode line. |
4495 | 4503 |
4496 *** The new functions `window-pixel-edges' and `window-inside-pixel-edges' | 4504 *** The new functions `window-pixel-edges' and `window-inside-pixel-edges' |
4497 return window edges in units of pixels, rather than columns and lines. | 4505 return window edges in units of pixels, rather than columns and lines. |
4498 | 4506 |
4507 *** New function `window-body-height'. | |
4508 | |
4509 This is like `window-height' but does not count the mode line or the | |
4510 header line. | |
4511 | |
4512 *** The new function `adjust-window-trailing-edge' moves the right | |
4513 or bottom edge of a window. It does not move other window edges. | |
4514 | |
4499 *** The new macro `with-selected-window' temporarily switches the | 4515 *** The new macro `with-selected-window' temporarily switches the |
4500 selected window without impacting the order of `buffer-list'. | 4516 selected window without impacting the order of `buffer-list'. |
4501 It saves and restores the current buffer, too. | 4517 It saves and restores the current buffer, too. |
4502 | 4518 |
4503 *** `select-window' takes an optional second argument NORECORD. | 4519 *** `select-window' takes an optional second argument NORECORD. |
4518 | 4534 |
4519 *** The functions `get-lru-window' and `get-largest-window' take an optional | 4535 *** The functions `get-lru-window' and `get-largest-window' take an optional |
4520 argument `dedicated'. If non-nil, those functions do not ignore | 4536 argument `dedicated'. If non-nil, those functions do not ignore |
4521 dedicated windows. | 4537 dedicated windows. |
4522 | 4538 |
4523 *** The new function `adjust-window-trailing-edge' moves the right | |
4524 or bottom edge of a window. It does not move other window edges. | |
4525 | |
4526 ** Customizable fringe bitmaps | 4539 ** Customizable fringe bitmaps |
4540 | |
4541 *** There are new display properties, `left-fringe' and `right-fringe', | |
4542 that can be used to show a specific bitmap in the left or right fringe | |
4543 bitmap of the display line. | |
4544 | |
4545 Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a | |
4546 symbol identifying a fringe bitmap, either built-in or defined with | |
4547 `define-fringe-bitmap', and FACE is an optional face name to be used | |
4548 for displaying the bitmap instead of the default `fringe' face. | |
4549 When specified, FACE is automatically merged with the `fringe' face. | |
4527 | 4550 |
4528 *** New buffer-local variables `fringe-indicator-alist' and | 4551 *** New buffer-local variables `fringe-indicator-alist' and |
4529 `fringe-cursor-alist' maps between logical (internal) fringe indicator | 4552 `fringe-cursor-alist' maps between logical (internal) fringe indicator |
4530 and cursor symbols and the actual fringe bitmaps to be displayed. | 4553 and cursor symbols and the actual fringe bitmaps to be displayed. |
4531 This decouples the logical meaning of the fringe indicators from the | 4554 This decouples the logical meaning of the fringe indicators from the |
4540 | 4563 |
4541 *** New function `set-fringe-bitmap-face' specifies the face to be | 4564 *** New function `set-fringe-bitmap-face' specifies the face to be |
4542 used for a specific fringe bitmap. The face is automatically merged | 4565 used for a specific fringe bitmap. The face is automatically merged |
4543 with the `fringe' face, so normally, the face should only specify the | 4566 with the `fringe' face, so normally, the face should only specify the |
4544 foreground color of the bitmap. | 4567 foreground color of the bitmap. |
4545 | |
4546 *** There are new display properties, `left-fringe' and `right-fringe', | |
4547 that can be used to show a specific bitmap in the left or right fringe | |
4548 bitmap of the display line. | |
4549 | |
4550 Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a | |
4551 symbol identifying a fringe bitmap, either built-in or defined with | |
4552 `define-fringe-bitmap', and FACE is an optional face name to be used | |
4553 for displaying the bitmap instead of the default `fringe' face. | |
4554 When specified, FACE is automatically merged with the `fringe' face. | |
4555 | 4568 |
4556 *** New function `fringe-bitmaps-at-pos' returns the current fringe | 4569 *** New function `fringe-bitmaps-at-pos' returns the current fringe |
4557 bitmaps in the display line at a given buffer position. | 4570 bitmaps in the display line at a given buffer position. |
4558 | 4571 |
4559 ** Other window fringe features: | 4572 ** Other window fringe features: |
4823 *** The mouse pointer shape over ordinary text or images can now be | 4836 *** The mouse pointer shape over ordinary text or images can now be |
4824 controlled/overridden via the `pointer' text property. | 4837 controlled/overridden via the `pointer' text property. |
4825 | 4838 |
4826 ** Mouse event enhancements: | 4839 ** Mouse event enhancements: |
4827 | 4840 |
4828 *** Mouse events for clicks on window fringes now specify `left-fringe' | |
4829 or `right-fringe' as the area. | |
4830 | |
4831 *** All mouse events now include a buffer position regardless of where | 4841 *** All mouse events now include a buffer position regardless of where |
4832 you clicked. For mouse clicks in window margins and fringes, this is | 4842 you clicked. For mouse clicks in window margins and fringes, this is |
4833 a sensible buffer position corresponding to the surrounding text. | 4843 a sensible buffer position corresponding to the surrounding text. |
4834 | 4844 |
4845 *** Mouse events for clicks on window fringes now specify `left-fringe' | |
4846 or `right-fringe' as the area. | |
4847 | |
4848 *** Mouse events include actual glyph column and row for all event types | |
4849 and all areas. | |
4850 | |
4851 *** Mouse events can now indicate an image object clicked on. | |
4852 | |
4853 *** Mouse events include relative X and Y pixel coordinates relative to | |
4854 the top left corner of the object (image or character) clicked on. | |
4855 | |
4856 *** Mouse events include the pixel width and height of the object | |
4857 (image or character) clicked on. | |
4858 | |
4859 *** Function `mouse-set-point' now works for events outside text area. | |
4860 | |
4835 *** `posn-point' now returns buffer position for non-text area events. | 4861 *** `posn-point' now returns buffer position for non-text area events. |
4836 | |
4837 *** Function `mouse-set-point' now works for events outside text area. | |
4838 | 4862 |
4839 *** New function `posn-area' returns window area clicked on (nil means | 4863 *** New function `posn-area' returns window area clicked on (nil means |
4840 text area). | 4864 text area). |
4841 | 4865 |
4842 *** Mouse events include actual glyph column and row for all event types | |
4843 and all areas. | |
4844 | |
4845 *** New function `posn-actual-col-row' returns the actual glyph coordinates | 4866 *** New function `posn-actual-col-row' returns the actual glyph coordinates |
4846 of the mouse event position. | 4867 of the mouse event position. |
4847 | |
4848 *** Mouse events can now indicate an image object clicked on. | |
4849 | |
4850 *** Mouse events include relative X and Y pixel coordinates relative to | |
4851 the top left corner of the object (image or character) clicked on. | |
4852 | |
4853 *** Mouse events include the pixel width and height of the object | |
4854 (image or character) clicked on. | |
4855 | 4868 |
4856 *** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'. | 4869 *** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'. |
4857 | 4870 |
4858 These return the image or string object of a mouse click, the X and Y | 4871 These return the image or string object of a mouse click, the X and Y |
4859 pixel coordinates relative to the top left corner of that object, and | 4872 pixel coordinates relative to the top left corner of that object, and |
4912 *** The first face specification element in a defface can specify | 4925 *** The first face specification element in a defface can specify |
4913 `default' instead of frame classification. Then its attributes act as | 4926 `default' instead of frame classification. Then its attributes act as |
4914 defaults that apply to all the subsequent cases (and can be overridden | 4927 defaults that apply to all the subsequent cases (and can be overridden |
4915 by them). | 4928 by them). |
4916 | 4929 |
4930 *** The function `face-differs-from-default-p' now truly checks | |
4931 whether the given face displays differently from the default face or | |
4932 not (previously it did only a very cursory check). | |
4933 | |
4934 *** `face-attribute', `face-foreground', `face-background', `face-stipple'. | |
4935 | |
4936 These now accept a new optional argument, INHERIT, which controls how | |
4937 face inheritance is used when determining the value of a face | |
4938 attribute. | |
4939 | |
4940 *** New functions `face-attribute-relative-p' and `merge-face-attribute' | |
4941 help with handling relative face attributes. | |
4942 | |
4943 *** The priority of faces in an :inherit attribute face list is reversed. | |
4944 | |
4945 If a face contains an :inherit attribute with a list of faces, earlier | |
4946 faces in the list override later faces in the list; in previous | |
4947 releases of Emacs, the order was the opposite. This change was made | |
4948 so that :inherit face lists operate identically to face lists in text | |
4949 `face' properties. | |
4950 | |
4917 *** The variable `face-font-rescale-alist' specifies how much larger | 4951 *** The variable `face-font-rescale-alist' specifies how much larger |
4918 (or smaller) font we should use. For instance, if the value is | 4952 (or smaller) font we should use. For instance, if the value is |
4919 '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 | 4953 '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 |
4920 point, we actually use a font of 13 point if the font matches | 4954 point, we actually use a font of 13 point if the font matches |
4921 SOME-FONTNAME-PATTERN. | 4955 SOME-FONTNAME-PATTERN. |
4922 | 4956 |
4923 *** The function `face-differs-from-default-p' now truly checks | |
4924 whether the given face displays differently from the default face or | |
4925 not (previously it did only a very cursory check). | |
4926 | |
4927 *** `face-attribute', `face-foreground', `face-background', `face-stipple'. | |
4928 | |
4929 These now accept a new optional argument, INHERIT, which controls how | |
4930 face inheritance is used when determining the value of a face | |
4931 attribute. | |
4932 | |
4933 *** New functions `face-attribute-relative-p' and `merge-face-attribute' | |
4934 help with handling relative face attributes. | |
4935 | |
4936 *** The priority of faces in an :inherit attribute face list is reversed. | |
4937 | |
4938 If a face contains an :inherit attribute with a list of faces, earlier | |
4939 faces in the list override later faces in the list; in previous | |
4940 releases of Emacs, the order was the opposite. This change was made | |
4941 so that :inherit face lists operate identically to face lists in text | |
4942 `face' properties. | |
4943 | |
4944 *** On terminals, faces with the :inverse-video attribute are displayed | 4957 *** On terminals, faces with the :inverse-video attribute are displayed |
4945 with swapped foreground and background colors even when one of them is | 4958 with swapped foreground and background colors even when one of them is |
4946 not specified. In previous releases of Emacs, if either foreground | 4959 not specified. In previous releases of Emacs, if either foreground |
4947 or background color was unspecified, colors were not swapped. This | 4960 or background color was unspecified, colors were not swapped. This |
4948 was inconsistent with the face behavior under X. | 4961 was inconsistent with the face behavior under X. |
4991 the fontification region is chosen. This can be used to prevent rounding | 5004 the fontification region is chosen. This can be used to prevent rounding |
4992 up to whole lines, or to extend the region to include all related lines | 5005 up to whole lines, or to extend the region to include all related lines |
4993 of multiline constructs so that such constructs get properly recognized. | 5006 of multiline constructs so that such constructs get properly recognized. |
4994 | 5007 |
4995 ** Major mode mechanism changes: | 5008 ** Major mode mechanism changes: |
5009 | |
5010 *** New variable `magic-mode-alist' determines major mode for a file by | |
5011 looking at the file contents. It takes precedence over `auto-mode-alist'. | |
5012 | |
5013 *** XML or SGML major mode is selected when file starts with an `<?xml' | |
5014 or `<!DOCTYPE' declaration. | |
5015 | |
5016 *** An interpreter magic line (if present) takes precedence over the | |
5017 file name when setting the major mode. | |
4996 | 5018 |
4997 *** If new variable `auto-mode-case-fold' is set to a non-nil value, | 5019 *** If new variable `auto-mode-case-fold' is set to a non-nil value, |
4998 Emacs will perform a second case-insensitive search through | 5020 Emacs will perform a second case-insensitive search through |
4999 `auto-mode-alist' if the first case-sensitive search fails. This | 5021 `auto-mode-alist' if the first case-sensitive search fails. This |
5000 means that a file FILE.TXT is opened in text-mode, and a file | 5022 means that a file FILE.TXT is opened in text-mode, and a file |
5001 PROG.HTML is opened in html-mode. Note however, that independent of | 5023 PROG.HTML is opened in html-mode. Note however, that independent of |
5002 this setting, *.C files are usually recognized as C++ files. It also | 5024 this setting, *.C files are usually recognized as C++ files. It also |
5003 has no effect on systems with case-insensitive file names. | 5025 has no effect on systems with case-insensitive file names. |
5004 | 5026 |
5005 *** New variable `magic-mode-alist' determines major mode for a file by | |
5006 looking at the file contents. It takes precedence over `auto-mode-alist'. | |
5007 | |
5008 *** An interpreter magic line (if present) takes precedence over the | |
5009 file name when setting the major mode. | |
5010 | |
5011 *** XML or SGML major mode is selected when file starts with an `<?xml' | |
5012 or `<!DOCTYPE' declaration. | |
5013 | |
5014 *** Use the new function `run-mode-hooks' to run the major mode's mode hook. | |
5015 | |
5016 *** All major mode functions should now run the new normal hook | 5027 *** All major mode functions should now run the new normal hook |
5017 `after-change-major-mode-hook', at their very end, after the mode | 5028 `after-change-major-mode-hook', at their very end, after the mode |
5018 hooks. `run-mode-hooks' does this automatically. | 5029 hooks. `run-mode-hooks' does this automatically. |
5019 | 5030 |
5031 *** Major modes can define `eldoc-documentation-function' | |
5032 locally to provide Eldoc functionality by some method appropriate to | |
5033 the language. | |
5034 | |
5035 *** Use the new function `run-mode-hooks' to run the major mode's mode hook. | |
5036 | |
5037 *** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' | |
5038 are used by `define-derived-mode' to make sure the mode hook for the | |
5039 parent mode is run at the end of the child mode. | |
5040 | |
5041 *** `define-derived-mode' by default creates a new empty abbrev table. | |
5042 It does not copy abbrevs from the parent mode's abbrev table. | |
5043 | |
5020 *** If a major mode function has a non-nil `no-clone-indirect' | 5044 *** If a major mode function has a non-nil `no-clone-indirect' |
5021 property, `clone-indirect-buffer' signals an error if you use | 5045 property, `clone-indirect-buffer' signals an error if you use |
5022 it in that buffer. | 5046 it in that buffer. |
5023 | 5047 |
5024 *** Major modes can define `eldoc-documentation-function' | |
5025 locally to provide Eldoc functionality by some method appropriate to | |
5026 the language. | |
5027 | |
5028 *** `define-derived-mode' by default creates a new empty abbrev table. | |
5029 It does not copy abbrevs from the parent mode's abbrev table. | |
5030 | |
5031 *** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' | |
5032 are used by `define-derived-mode' to make sure the mode hook for the | |
5033 parent mode is run at the end of the child mode. | |
5034 | |
5035 ** Minor mode changes: | 5048 ** Minor mode changes: |
5036 | 5049 |
5037 *** `define-minor-mode' now accepts arbitrary additional keyword arguments | 5050 *** `define-minor-mode' now accepts arbitrary additional keyword arguments |
5038 and simply passes them to `defcustom', if applicable. | 5051 and simply passes them to `defcustom', if applicable. |
5039 | 5052 |
5040 *** `minor-mode-list' now holds a list of minor mode commands. | |
5041 | |
5042 *** `define-globalized-minor-mode'. | 5053 *** `define-globalized-minor-mode'. |
5043 | 5054 |
5044 This is a new name for what was formerly called | 5055 This is a new name for what was formerly called |
5045 `easy-mmode-define-global-mode'. The old name remains as an alias. | 5056 `easy-mmode-define-global-mode'. The old name remains as an alias. |
5057 | |
5058 *** `minor-mode-list' now holds a list of minor mode commands. | |
5046 | 5059 |
5047 ** Command loop changes: | 5060 ** Command loop changes: |
5048 | 5061 |
5049 *** The new function `called-interactively-p' does what many people | 5062 *** The new function `called-interactively-p' does what many people |
5050 have mistakenly believed `interactive-p' to do: it returns t if the | 5063 have mistakenly believed `interactive-p' to do: it returns t if the |
5160 Reference manual for more detailed documentation. | 5173 Reference manual for more detailed documentation. |
5161 | 5174 |
5162 *** When using non-toolkit scroll bars with the default width, | 5175 *** When using non-toolkit scroll bars with the default width, |
5163 the `scroll-bar-width' frame parameter value is nil. | 5176 the `scroll-bar-width' frame parameter value is nil. |
5164 | 5177 |
5178 ** Mode line changes: | |
5179 | |
5180 *** New function `format-mode-line'. | |
5181 | |
5182 This returns the mode line or header line of the selected (or a | |
5183 specified) window as a string with or without text properties. | |
5184 | |
5185 *** The new mode-line construct `(:propertize ELT PROPS...)' can be | |
5186 used to add text properties to mode-line elements. | |
5187 | |
5188 *** The new `%i' and `%I' constructs for `mode-line-format' can be used | |
5189 to display the size of the accessible part of the buffer on the mode | |
5190 line. | |
5191 | |
5192 *** Mouse-face on mode-line (and header-line) is now supported. | |
5193 | |
5194 ** Menu manipulation changes: | |
5195 | |
5196 *** To manipulate the File menu using easy-menu, you must specify the | |
5197 proper name "file". In previous Emacs versions, you had to specify | |
5198 "files", even though the menu item itself was changed to say "File" | |
5199 several versions ago. | |
5200 | |
5201 *** The dummy function keys made by easy-menu are now always lower case. | |
5202 If you specify the menu item name "Ada", for instance, it uses `ada' | |
5203 as the "key" bound by that key binding. | |
5204 | |
5205 This is relevant only if Lisp code looks for the bindings that were | |
5206 made with easy-menu. | |
5207 | |
5208 *** `easy-menu-define' now allows you to use nil for the symbol name | |
5209 if you don't need to give the menu a name. If you install the menu | |
5210 into other keymaps right away (MAPS is non-nil), it usually doesn't | |
5211 need to have a name. | |
5212 | |
5165 ** Mule changes: | 5213 ** Mule changes: |
5166 | 5214 |
5167 *** Already true in Emacs 21.1, but not emphasized clearly enough: | 5215 *** Already true in Emacs 21.1, but not emphasized clearly enough: |
5168 | 5216 |
5169 Multibyte buffers can now faithfully record all 256 character codes | 5217 Multibyte buffers can now faithfully record all 256 character codes |
5177 the time it takes to convert the format. | 5225 the time it takes to convert the format. |
5178 | 5226 |
5179 3. For binary files where format conversion would be pointless and | 5227 3. For binary files where format conversion would be pointless and |
5180 wasteful. | 5228 wasteful. |
5181 | 5229 |
5182 *** `set-buffer-file-coding-system' now takes an additional argument, | |
5183 NOMODIFY. If it is non-nil, it means don't mark the buffer modified. | |
5184 | |
5185 *** The new variable `auto-coding-functions' lets you specify functions | 5230 *** The new variable `auto-coding-functions' lets you specify functions |
5186 to examine a file being visited and deduce the proper coding system | 5231 to examine a file being visited and deduce the proper coding system |
5187 for it. (If the coding system is detected incorrectly for a specific | 5232 for it. (If the coding system is detected incorrectly for a specific |
5188 file, you can put a `coding:' tags to override it.) | 5233 file, you can put a `coding:' tags to override it.) |
5189 | 5234 |
5206 hash tables defined by the Lisp function `define-translation-hash-table'. | 5251 hash tables defined by the Lisp function `define-translation-hash-table'. |
5207 | 5252 |
5208 *** New function `quail-find-key' returns a list of keys to type in the | 5253 *** New function `quail-find-key' returns a list of keys to type in the |
5209 current input method to input a character. | 5254 current input method to input a character. |
5210 | 5255 |
5211 ** Mode line changes: | 5256 *** `set-buffer-file-coding-system' now takes an additional argument, |
5212 | 5257 NOMODIFY. If it is non-nil, it means don't mark the buffer modified. |
5213 *** New function `format-mode-line'. | |
5214 | |
5215 This returns the mode line or header line of the selected (or a | |
5216 specified) window as a string with or without text properties. | |
5217 | |
5218 *** The new mode-line construct `(:propertize ELT PROPS...)' can be | |
5219 used to add text properties to mode-line elements. | |
5220 | |
5221 *** The new `%i' and `%I' constructs for `mode-line-format' can be used | |
5222 to display the size of the accessible part of the buffer on the mode | |
5223 line. | |
5224 | |
5225 *** Mouse-face on mode-line (and header-line) is now supported. | |
5226 | |
5227 ** Menu manipulation changes: | |
5228 | |
5229 *** To manipulate the File menu using easy-menu, you must specify the | |
5230 proper name "file". In previous Emacs versions, you had to specify | |
5231 "files", even though the menu item itself was changed to say "File" | |
5232 several versions ago. | |
5233 | |
5234 *** The dummy function keys made by easy-menu are now always lower case. | |
5235 If you specify the menu item name "Ada", for instance, it uses `ada' | |
5236 as the "key" bound by that key binding. | |
5237 | |
5238 This is relevant only if Lisp code looks for the bindings that were | |
5239 made with easy-menu. | |
5240 | |
5241 *** `easy-menu-define' now allows you to use nil for the symbol name | |
5242 if you don't need to give the menu a name. If you install the menu | |
5243 into other keymaps right away (MAPS is non-nil), it usually doesn't | |
5244 need to have a name. | |
5245 | 5258 |
5246 ** Operating system access: | 5259 ** Operating system access: |
5247 | 5260 |
5248 *** The new primitive `get-internal-run-time' returns the processor | 5261 *** The new primitive `get-internal-run-time' returns the processor |
5249 run time used by Emacs since start-up. | 5262 run time used by Emacs since start-up. |
5258 The Windows specific variable w32-system-coding-system, which was | 5271 The Windows specific variable w32-system-coding-system, which was |
5259 formerly used for that purpose is now an alias for locale-coding-system. | 5272 formerly used for that purpose is now an alias for locale-coding-system. |
5260 | 5273 |
5261 *** New function `redirect-debugging-output' can be used to redirect | 5274 *** New function `redirect-debugging-output' can be used to redirect |
5262 debugging output on the stderr file handle to a file. | 5275 debugging output on the stderr file handle to a file. |
5276 | |
5277 ** GC changes: | |
5278 | |
5279 *** New variable `gc-cons-percentage' automatically grows the GC cons threshold | |
5280 as the heap size increases. | |
5281 | |
5282 *** New variables `gc-elapsed' and `gcs-done' provide extra information | |
5283 on garbage collection. | |
5284 | |
5285 *** The normal hook `post-gc-hook' is run at the end of garbage collection. | |
5286 | |
5287 The hook is run with GC inhibited, so use it with care. | |
5263 | 5288 |
5264 ** Miscellaneous: | 5289 ** Miscellaneous: |
5265 | 5290 |
5266 *** A number of hooks have been renamed to better follow the conventions: | 5291 *** A number of hooks have been renamed to better follow the conventions: |
5267 | 5292 |
5279 | 5304 |
5280 Use the LOCAL arg of `add-hook'. | 5305 Use the LOCAL arg of `add-hook'. |
5281 | 5306 |
5282 *** New function `x-send-client-message' sends a client message when | 5307 *** New function `x-send-client-message' sends a client message when |
5283 running under X. | 5308 running under X. |
5284 | |
5285 ** GC changes: | |
5286 | |
5287 *** New variable `gc-cons-percentage' automatically grows the GC cons threshold | |
5288 as the heap size increases. | |
5289 | |
5290 *** New variables `gc-elapsed' and `gcs-done' provide extra information | |
5291 on garbage collection. | |
5292 | |
5293 *** The normal hook `post-gc-hook' is run at the end of garbage collection. | |
5294 | |
5295 The hook is run with GC inhibited, so use it with care. | |
5296 | 5309 |
5297 * New Packages for Lisp Programming in Emacs 22.1 | 5310 * New Packages for Lisp Programming in Emacs 22.1 |
5298 | 5311 |
5299 ** The new library button.el implements simple and fast `clickable | 5312 ** The new library button.el implements simple and fast `clickable |
5300 buttons' in Emacs buffers. Buttons are much lighter-weight than the | 5313 buttons' in Emacs buffers. Buttons are much lighter-weight than the |