33149
|
1 GNU Emacs NEWS -- history of user-visible changes. 26-Mar-1986
|
|
2 Copyright (C) 1986 Richard M. Stallman.
|
|
3 See the end for copying conditions.
|
|
4
|
|
5 For older news, see the file NEWS.1.
|
|
6
|
|
7 Changes in Emacs 17
|
|
8
|
|
9 * Frustrated?
|
|
10
|
|
11 Try M-x doctor.
|
|
12
|
|
13 * Bored?
|
|
14
|
|
15 Try M-x hanoi.
|
|
16
|
|
17 * Brain-damaged?
|
|
18
|
|
19 Try M-x yow.
|
|
20
|
|
21 * Sun3, Tahoe, Apollo, HP9000s300, Celerity, NCR Tower 32,
|
|
22 Sequent, Stride, Encore, Plexus and AT&T 7300 machines supported.
|
|
23
|
|
24 The Tahoe, Sun3, Sequent and Celerity use 4.2. In regard to the
|
|
25 Apollo, see the file APOLLO in this directory. NCR Tower32,
|
|
26 HP9000s300, Stride and Nu run forms of System V. System V rel 2 also
|
|
27 works on Vaxes now. See etc/MACHINES.
|
|
28
|
|
29 * System V Unix supported, including subprocesses.
|
|
30
|
|
31 It should be possible now to bring up Emacs on a machine running
|
|
32 mere unameliorated system V Unix with no major work; just possible bug
|
|
33 fixes. But you can expect to find a handful of those on any machine
|
|
34 that Emacs has not been run on before.
|
|
35
|
|
36 * Berkeley 4.1 Unix supported.
|
|
37
|
|
38 See etc/MACHINES.
|
|
39
|
|
40 * Portable `alloca' provided.
|
|
41
|
|
42 Emacs can now run on machines that do not and cannot support the library
|
|
43 subroutine `alloca' in the canonical fashion, using an `alloca' emulation
|
|
44 written in C.
|
|
45
|
|
46 * On-line manual.
|
|
47
|
|
48 Info now contains an Emacs manual, with essentially the same text
|
|
49 as in the printed manual.
|
|
50
|
|
51 The manual can now be printed with a standard TeX.
|
|
52
|
|
53 Nicely typeset and printed copies of the manual are available
|
|
54 from the Free Software Foundation.
|
|
55
|
|
56 * Backup file version numbers.
|
|
57
|
|
58 Emacs now supports version numbers in backup files.
|
|
59
|
|
60 The first time you save a particular file in one editing session,
|
|
61 the old file is copied or renamed to serve as a backup file.
|
|
62 In the past, the name for the backup file was made by appending `~'
|
|
63 to the end of the original file name.
|
|
64
|
|
65 Now the backup file name can instead be made by appending ".~NN~" to
|
|
66 the original file name, where NN stands for a numeric version. Each
|
|
67 time this is done, the new version number is one higher than the
|
|
68 highest previously used.
|
|
69
|
|
70 Thus, the active, current file does not have a version number.
|
|
71 Only the backups have them.
|
|
72
|
|
73 This feature is controlled by the variable `version-control'. If it
|
|
74 is `nil', as normally, then numbered backups are made only for files
|
|
75 that already have numbered backups. Backup names with just `~' are
|
|
76 used for files that have no numbered backups.
|
|
77
|
|
78 If `version-control' is `never', then the backup file's name is
|
|
79 made with just `~' in any case.
|
|
80
|
|
81 If `version-control' is not `nil' or `never', numbered backups are
|
|
82 made unconditionally.
|
|
83
|
|
84 To prevent unlimited consumption of disk space, Emacs can delete
|
|
85 old backup versions automatically. Generally Emacs keeps the first
|
|
86 few backups and the latest few backups, deleting any in between.
|
|
87 This happens every time a new backup is made. The two variables that
|
|
88 control the deletion are `kept-old-versions' and `kept-new-versions'.
|
|
89 Their values are, respectively, the number of oldest backups to keep
|
|
90 and the number of newest ones to keep, each time a new backup is made.
|
|
91 The value of `kept-new-versions' includes the backup just created.
|
|
92 By default, both values are 2.
|
|
93
|
|
94 If `trim-versions-without-asking' is non-`nil', the excess middle versions
|
|
95 are deleted without a murmur. If it is `nil', the default, then you
|
|
96 are asked whether the excess middle versions should really be deleted.
|
|
97
|
|
98 Dired has a new command `.' which marks for deletion all but the latest
|
|
99 and oldest few of every numeric series of backups. `kept-old-versions'
|
|
100 controls the number of oldest versions to keep, and `dired-kept-versions'
|
|
101 controls the number of latest versions to keep. A numeric argument to
|
|
102 the `.' command, if positive, specifies the number of latest versions
|
|
103 to keep, overriding `dired-kept-versions'. A negative argument specifies
|
|
104 the number of oldest versions to keep, using minus the argument to override
|
|
105 `kept-old-versions'.
|
|
106
|
|
107 * Immediate conflict detection.
|
|
108
|
|
109 Emacs now locks the files it is modifying, so that if
|
|
110 you start to modify within Emacs a file that is being
|
|
111 modified in another Emacs, you get an immediate warning.
|
|
112
|
|
113 The warning gives you three choices:
|
|
114 1. Give up, and do not make any changes.
|
|
115 2. Make changes anyway at your own risk.
|
|
116 3. Make changes anyway, and record yourself as
|
|
117 the person locking the file (instead of whoever
|
|
118 was previously recorded.)
|
|
119
|
|
120 Just visiting a file does not lock it. It is locked
|
|
121 when you try to change the buffer that is visiting the file.
|
|
122 Saving the file unlocks it until you make another change.
|
|
123
|
|
124 Locking is done by writing a lock file in a special designated
|
|
125 directory. If such a directory is not provided and told to
|
|
126 Emacs as part of configuring it for your machine, the lock feature
|
|
127 is turned off.
|
|
128
|
|
129 * M-x recover-file.
|
|
130
|
|
131 This command is used to get a file back from an auto-save
|
|
132 (after a system crash, for example). It takes a file name
|
|
133 as argument and visits that file, but gets the data from the
|
|
134 file's last auto save rather than from the file itself.
|
|
135
|
|
136 * M-x normal-mode.
|
|
137
|
|
138 This command resets the current buffer's major mode and local
|
|
139 variables to be as specified by the visit filename, the -*- line
|
|
140 and/or the Local Variables: block at the end of the buffer.
|
|
141 It is the same thing normally done when a file is first visited.
|
|
142
|
|
143 * Echo area messages disappear shortly if minibuffer is in use.
|
|
144
|
|
145 Any message in the echo area disappears after 2 seconds
|
|
146 if the minibuffer is active. This allows the minibuffer
|
|
147 to become visible again.
|
|
148
|
|
149 * C-z on System V runs a subshell.
|
|
150
|
|
151 On systems which do not allow programs to be suspended, the C-z command
|
|
152 forks a subshell that talks directly to the terminal, and then waits
|
|
153 for the subshell to exit. This gets almost the effect of suspending
|
|
154 in that you can run other programs and then return to Emacs. However,
|
|
155 you cannot log out from the subshell.
|
|
156
|
|
157 * C-c is always a prefix character.
|
|
158
|
|
159 Also, subcommands of C-c which are letters are always
|
|
160 reserved for the user. No standard Emacs major mode
|
|
161 defines any of them.
|
|
162
|
|
163 * Picture mode C-c commands changed.
|
|
164
|
|
165 The old C-c k command is now C-c C-w.
|
|
166 The old C-c y command is now C-c C-x.
|
|
167
|
|
168 * Shell mode commands changed.
|
|
169
|
|
170 All the special commands of Shell mode are now moved onto
|
|
171 the C-c prefix. Most are not changed aside from that.
|
|
172 Thus, the old Shell mode C-c command (kill current job)
|
|
173 is now C-c C-c; the old C-z (suspend current job) is now C-c C-z,
|
|
174 etc.
|
|
175
|
|
176 The old C-x commands are now C-c commands. C-x C-k (kill output)
|
|
177 is now C-c C-o, and C-x C-v (show output) is now C-c C-r.
|
|
178
|
|
179 The old M-= (copy previous input) command is now C-c C-y.
|
|
180
|
|
181 * Shell mode recognizes aliases for `pushd', `popd' and `cd'.
|
|
182
|
|
183 Shell mode now uses the variable `shell-pushd-regexp' as a
|
|
184 regular expression to recognize any command name that is
|
|
185 equivalent to a `pushd' command. By default it is set up
|
|
186 to recognize just `pushd' itself. If you use aliases for
|
|
187 `pushd', change the regexp to recognize them as well.
|
|
188
|
|
189 There are also `shell-popd-regexp' to recognize commands
|
|
190 with the effect of a `popd', and `shell-cd-regexp' to recognize
|
|
191 commands with the effect of a `cd'.
|
|
192
|
|
193 * "Exit" command in certain modes now C-c C-c.
|
|
194
|
|
195 These include electric buffer menu mode, electric command history
|
|
196 mode, Info node edit mode, and Rmail edit mode. In all these
|
|
197 modes, the command to exit used to be just C-c.
|
|
198
|
|
199 * Outline mode changes.
|
|
200
|
|
201 Lines that are not heading lines are now called "body" lines.
|
|
202 The command `hide-text' is renamed to `hide-body'.
|
|
203 The key M-H is renamed to C-c C-h.
|
|
204 The key M-S is renamed to C-c C-s.
|
|
205 The key M-s is renamed to C-c C-i.
|
|
206
|
|
207 Changes of line visibility are no longer undoable. As a result,
|
|
208 they no longer use up undo memory and no longer interfere with
|
|
209 undoing earlier commands.
|
|
210
|
|
211 * Rmail changes.
|
|
212
|
|
213 The s and q commands now both expunge deleted messages before saving;
|
|
214 use C-x C-s to save without expunging.
|
|
215
|
|
216 The u command now undeletes the current message if it is deleted;
|
|
217 otherwise, it backs up as far as necessary to reach a deleted message,
|
|
218 and undeletes that one. The u command in the summary behaves likewise,
|
|
219 but considers only messages listed in the summary. The M-u command
|
|
220 has been eliminated.
|
|
221
|
|
222 The o and C-o keys' meanings are interchanged.
|
|
223 o now outputs to an Rmail file, and C-o to a Unix mail file.
|
|
224
|
|
225 The F command (rmail-find) is renamed to M-s (rmail-search).
|
|
226 Various new commands and features exist; see the Emacs manual.
|
|
227
|
|
228 * Local bindings described first in describe-bindings.
|
|
229
|
|
230 * [...], {...} now balance in Fundamental mode.
|
|
231
|
|
232 * Nroff mode and TeX mode.
|
|
233
|
|
234 The are two new major modes for editing nroff input and TeX input.
|
|
235 See the Emacs manual for full information.
|
|
236
|
|
237 * New C indentation style variable `c-brace-imaginary-offset'.
|
|
238
|
|
239 The value of `c-brace-imaginary-offset', normally zero, controls the
|
|
240 indentation of a statement inside a brace-group where the open-brace
|
|
241 is not the first thing on a line. The value says where the open-brace
|
|
242 is imagined to be, relative to the first nonblank character on the line.
|
|
243
|
|
244 * Dired improvements.
|
|
245
|
|
246 Dired now normally keeps the cursor at the beginning of the file name,
|
|
247 not at the beginning of the line. The most used motion commands are
|
|
248 redefined in Dired to position the cursor this way.
|
|
249
|
|
250 `n' and `p' are now equivalent in dired to `C-n' and `C-p'.
|
|
251
|
|
252 If any files to be deleted cannot be deleted, their names are
|
|
253 printed in an error message.
|
|
254
|
|
255 If the `v' command is invoked on a file which is a directory,
|
|
256 dired is run on that directory.
|
|
257
|
|
258 * `visit-tag-table' renamed `visit-tags-table'.
|
|
259
|
|
260 This is so apropos of `tags' finds everything you need to
|
|
261 know about in connection with Tags.
|
|
262
|
|
263 * `mh-e' library uses C-c as prefix.
|
|
264
|
|
265 All the special commands of `mh-rmail' now are placed on a
|
|
266 C-c prefix rather than on the C-x prefix. This is for
|
|
267 consistency with other special modes with their own commands.
|
|
268
|
|
269 * M-$ or `spell-word' checks word before point.
|
|
270
|
|
271 It used to check the word after point.
|
|
272
|
|
273 * Quitting during autoloading no longer causes trouble.
|
|
274
|
|
275 Now, when a file is autoloaded, all function redefinitions
|
|
276 and `provide' calls are recorded and are undone if you quit
|
|
277 before the file is finished loading.
|
|
278
|
|
279 As a result, it no longer happens that some of the entry points
|
|
280 which are normally autoloading have been defined already, but the
|
|
281 entire file is not really present to support them.
|
|
282
|
|
283 * `else' can now be indented correctly in C mode.
|
|
284
|
|
285 TAB in C mode now knows which `if' statement an `else' matches
|
|
286 up with, and can indent the `else' correctly under the `if',
|
|
287 even if the `if' contained such things as another `if' statement,
|
|
288 or a `while' or `for' statement, with no braces around it.
|
|
289
|
|
290 * `batch-byte-compile'
|
|
291
|
|
292 Runs byte-compile-file on the files specified on the command line.
|
|
293 All the rest of the command line arguments are taken as files to
|
|
294 compile (or, if directories, to do byte-recompile-directory on).
|
|
295 Must be used only with -batch, and kills emacs on completion.
|
|
296 Each file will be processed even if an error occurred previously.
|
|
297 For example, invoke `emacs -batch -f batch-byte-compile *.el'.
|
|
298
|
|
299 * `-batch' changes.
|
|
300
|
|
301 `-batch' now implies `-q': no init file is loaded by Emacs when
|
|
302 `-batch' is used. Also, no `term/TERMTYPE.el' file is loaded. Auto
|
|
303 saving is not done except in buffers in which it is explicitly
|
|
304 requested. Also, many echo-area printouts describing what is going on
|
|
305 are inhibited in batch mode, so that the only output you get is the
|
|
306 output you program specifically.
|
|
307
|
|
308 One echo-area message that is not suppressed is the one that says
|
|
309 that a file is being loaded. That is because you can prevent this
|
|
310 message by passing `t' as the third argument to `load'.
|
|
311
|
|
312 * Display of search string in incremental search.
|
|
313
|
|
314 Now, when you type C-s or C-r to reuse the previous search
|
|
315 string, that search string is displayed immediately in the echo area.
|
|
316
|
|
317 Three dots are displayed after the search string while search
|
|
318 is actually going on.
|
|
319
|
|
320 * View commands.
|
|
321
|
|
322 The commands C-x ], C-x [, C-x /, C-x j and C-x o are now
|
|
323 available inside `view-buffer' and `view-file', with their
|
|
324 normal meanings.
|
|
325
|
|
326 * Full-width windows preferred.
|
|
327
|
|
328 The ``other-window'' commands prefer other full width windows,
|
|
329 and will split only full width windows.
|
|
330
|
|
331 * M-x rename-file can copy if necessary.
|
|
332
|
|
333 When used between different file systems, since actual renaming does
|
|
334 not work, the old file will be copied and deleted.
|
|
335
|
|
336 * Within C-x ESC, you can pick the command to repeat.
|
|
337
|
|
338 While editing a previous command to be repeated, inside C-x ESC,
|
|
339 you can now use the commands M-p and M-n to pick an earlier or
|
|
340 later command to repeat. M-n picks the next earlier command
|
|
341 and M-p picks the next later one. The new command appears in
|
|
342 the minibuffer, and you can go ahead and edit it, and repeat it
|
|
343 when you exit the minibuffer.
|
|
344
|
|
345 Using M-n or M-p within C-x ESC is like having used a different
|
|
346 numeric argument when you ran C-x ESC in the first place.
|
|
347
|
|
348 The command you finally execute using C-x ESC is added to the
|
|
349 front of the command history, unless it is identical with the
|
|
350 first thing in the command history.
|
|
351
|
|
352 * Use C-c C-c to exit from editing within Info.
|
|
353
|
|
354 It used to be C-z for this. Somehow this use of C-z was
|
|
355 left out when all the others were moved. The intention is that
|
|
356 C-z should always suspend Emacs.
|
|
357
|
|
358 * Default arg to C-x < and C-x > now window width minus 2.
|
|
359
|
|
360 These commands, which scroll the current window horizontally
|
|
361 by a specified number of columns, now scroll a considerable
|
|
362 distance rather than a single column if used with no argument.
|
|
363
|
|
364 * Auto Save Files Deleted.
|
|
365
|
|
366 The default value of `delete-auto-save-files' is now `t', so that
|
|
367 when you save a file for real, its auto save file is deleted.
|
|
368
|
|
369 * Rnews changes.
|
|
370
|
|
371 The N, P and J keys in Rnews are renamed to M-n, M-p and M-j.
|
|
372 These keys move among newsgroups.
|
|
373
|
|
374 The n and p keys for moving sequentially between news articles now
|
|
375 accept repeat count arguments, and the + and - keys, made redundant by
|
|
376 this change, are eliminated.
|
|
377
|
|
378 The s command for outputting the current article to a file
|
|
379 is renamed as o, to be compatible with Rmail.
|
|
380
|
|
381 * Sendmail changes.
|
|
382
|
|
383 If you have a ~/.mailrc file, Emacs searches it for mailing address
|
|
384 aliases, and these aliases are expanded when you send mail in Emacs.
|
|
385
|
|
386 Fcc fields can now be used in the headers in the *mail* buffer
|
|
387 to specify files in which copies of the message should be put.
|
|
388 The message is written into those files in Unix mail file format.
|
|
389 The message as sent does not contain any Fcc fields in its header.
|
|
390 You can use any number of Fcc fields, but only one file name in each one.
|
|
391 The variable `mail-archive-file-name', if non-`nil', can be a string
|
|
392 which is a file name; an Fcc to that file will be inserted in every
|
|
393 message when you begin to compose it.
|
|
394
|
|
395 A new command C-c q now exists in Mail mode. It fills the
|
|
396 paragraphs of an old message that had been inserted with C-c y.
|
|
397
|
|
398 When the *mail* buffer is put in Mail mode, text-mode-hook
|
|
399 is now run in addition to mail-mode-hook. text-mode-hook
|
|
400 is run first.
|
|
401
|
|
402 The new variable `mail-header-separator' now specifies the string
|
|
403 to use on the line that goes between the headers and the message text.
|
|
404 By default it is still "--text follows this line--".
|
|
405
|
|
406 * Command history truncated automatically.
|
|
407
|
|
408 Just before each garbage collection, all but the last 30 elements
|
|
409 of the command history are discarded.
|
|
410
|
|
411 Incompatible Lisp Programming Changes in Emacs 17
|
|
412
|
|
413 * `"e' no longer supported.
|
|
414
|
|
415 This feature, which allowed Lisp functions to take arguments
|
|
416 that were not evaluated, has been eliminated, because it is
|
|
417 inescapably hard to make the compiler work properly with such
|
|
418 functions.
|
|
419
|
|
420 You should use macros instead. A simple way to change any
|
|
421 code that uses `"e' is to replace
|
|
422
|
|
423 (defun foo ("e x y z) ...
|
|
424
|
|
425 with
|
|
426
|
|
427 (defmacro foo (x y z)
|
|
428 (list 'foo-1 (list 'quote x) (list 'quote y) (list 'quote z)))
|
|
429
|
|
430 (defun foo-1 (x y z) ...
|
|
431
|
|
432 * Functions `region-to-string' and `region-around-match' removed.
|
|
433
|
|
434 These functions were made for compatibility with Gosling Emacs, but it
|
|
435 turns out to be undesirable to use them in GNU Emacs because they use
|
|
436 the mark. They have been eliminated from Emacs proper, but are
|
|
437 present in mlsupport.el for the sake of converted mocklisp programs.
|
|
438
|
|
439 If you were using `region-to-string', you should instead use
|
|
440 `buffer-substring'; then you can pass the bounds as arguments and
|
|
441 can avoid setting the mark.
|
|
442
|
|
443 If you were using `region-around-match', you can use instead
|
|
444 the two functions `match-beginning' and `match-end'. These give
|
|
445 you one bound at a time, as a numeric value, without changing
|
|
446 point or the mark.
|
|
447
|
|
448 * Function `function-type' removed.
|
|
449
|
|
450 This just appeared not to be very useful. It can easily be written in
|
|
451 Lisp if you happen to want it. Just use `symbol-function' to get the
|
|
452 function definition of a symbol, and look at its data type or its car
|
|
453 if it is a list.
|
|
454
|
|
455 * Variable `buffer-number' removed.
|
|
456
|
|
457 You can still use the function `buffer-number' to find out
|
|
458 a buffer's unique number (assigned in order of creation).
|
|
459
|
|
460 * Variable `executing-macro' renamed `executing-kbd-macro'.
|
|
461
|
|
462 This variable is the currently executing keyboard macro, as
|
|
463 a string, or `nil' when no keyboard macro is being executed.
|
|
464
|
|
465 * Loading term/$TERM.
|
|
466
|
|
467 The library term/$TERM (where $TERM get replaced by your terminal
|
|
468 type), which is done by Emacs automatically when it starts up, now
|
|
469 happens after the user's .emacs file is loaded.
|
|
470
|
|
471 In previous versions of Emacs, these files had names of the form
|
|
472 term-$TERM; thus, for example, term-vt100.el, but now they live
|
|
473 in a special subdirectory named term, and have names like
|
|
474 term/vt100.el.
|
|
475
|
|
476 * `command-history' format changed.
|
|
477
|
|
478 The elements of this list are now Lisp expressions which can
|
|
479 be evaluated directly to repeat a command.
|
|
480
|
|
481 * Unused editing commands removed.
|
|
482
|
|
483 The functions `forward-to-word', `backward-to-word',
|
|
484 `upcase-char', `mark-beginning-of-buffer' and `mark-end-of-buffer'
|
|
485 have been removed. Their definitions can be found in file
|
|
486 lisp/unused.el if you need them.
|
|
487
|
|
488 Upward Compatible Lisp Programming Changes in Emacs 17
|
|
489
|
|
490 * You can now continue after errors and quits.
|
|
491
|
|
492 When the debugger is entered because of a C-g, due to
|
|
493 a non-`nil' value of `debug-on-quit', the `c' command in the debugger
|
|
494 resumes execution of the code that was running when the quit happened.
|
|
495 Use the `q' command to go ahead and quit.
|
|
496
|
|
497 The same applies to some kinds of errors, but not all. Errors
|
|
498 signaled with the Lisp function `signal' can be continued; the `c'
|
|
499 command causes `signal' to return. The `r' command causes `signal' to
|
|
500 return the value you specify. The `c' command is equivalent to `r'
|
|
501 with the value `nil'.
|
|
502
|
|
503 For a `wrong-type-argument' error, the value returned with the `r'
|
|
504 command is used in place of the invalid argument. If this new value
|
|
505 is not valid, another error occurs.
|
|
506
|
|
507 Errors signaled with the function `error' cannot be continued.
|
|
508 If you try to continue, the error just happens again.
|
|
509
|
|
510 * `dot' renamed `point'.
|
|
511
|
|
512 The word `dot' has been replaced with `point' in all
|
|
513 function and variable names, including:
|
|
514
|
|
515 point, point-min, point-max,
|
|
516 point-marker, point-min-marker, point-max-marker,
|
|
517 window-point, set-window-point,
|
|
518 point-to-register, register-to-point,
|
|
519 exchange-point-and-mark.
|
|
520
|
|
521 The old names are still supported, for now.
|
|
522
|
|
523 * `string-match' records position of end of match.
|
|
524
|
|
525 After a successful call to `string-match', `(match-end 0)' will
|
|
526 return the index in the string of the first character after the match.
|
|
527 Also, `match-begin' and `match-end' with nonzero arguments can be
|
|
528 used to find the indices of beginnings and ends of substrings matched
|
|
529 by subpatterns surrounded by parentheses.
|
|
530
|
|
531 * New function `insert-before-markers'.
|
|
532
|
|
533 This function is just like `insert' except in the handling of any
|
|
534 relocatable markers that are located at the point of insertion.
|
|
535 With `insert', such markers end up pointing before the inserted text.
|
|
536 With `insert-before-markers', they end up pointing after the inserted
|
|
537 text.
|
|
538
|
|
539 * New function `copy-alist'.
|
|
540
|
|
541 This function takes one argument, a list, and makes a disjoint copy
|
|
542 of the alist structure. The list itself is copied, and each element
|
|
543 that is a cons cell is copied, but the cars and cdrs of elements
|
|
544 remain shared with the original argument.
|
|
545
|
|
546 This is what it takes to get two alists disjoint enough that changes
|
|
547 in one do not change the result of `assq' on the other.
|
|
548
|
|
549 * New function `copy-keymap'.
|
|
550
|
|
551 This function takes a keymap as argument and returns a new keymap
|
|
552 containing initially the same bindings. Rebindings in either one of
|
|
553 them will not alter the bindings in the other.
|
|
554
|
|
555 * New function `copy-syntax-table'.
|
|
556
|
|
557 This function takes a syntax table as argument and returns a new
|
|
558 syntax table containing initially the same syntax settings. Changes
|
|
559 in either one of them will not alter the other.
|
|
560
|
|
561 * Randomizing the random numbers.
|
|
562
|
|
563 `(random t)' causes the random number generator's seed to be set
|
|
564 based on the current time and Emacs's process id.
|
|
565
|
|
566 * Third argument to `modify-syntax-entry'.
|
|
567
|
|
568 The optional third argument to `modify-syntax-entry', if specified
|
|
569 should be a syntax table. The modification is made in that syntax table
|
|
570 rather than in the current syntax table.
|
|
571
|
|
572 * New function `run-hooks'.
|
|
573
|
|
574 This function takes any number of symbols as arguments.
|
|
575 It processes the symbols in order. For each symbol which
|
|
576 has a value (as a variable) that is non-nil, the value is
|
|
577 called as a function, with no arguments.
|
|
578
|
|
579 This is useful in major mode commands.
|
|
580
|
|
581 * Second arg to `switch-to-buffer'.
|
|
582
|
|
583 If this function is given a non-`nil' second argument, then the
|
|
584 selection being done is not recorded on the selection history.
|
|
585 The buffer's position in the history remains unchanged. This
|
|
586 feature is used by the view commands, so that the selection history
|
|
587 after exiting from viewing is the same as it was before.
|
|
588
|
|
589 * Second arg to `display-buffer' and `pop-to-buffer'.
|
|
590
|
|
591 These two functions both accept an optional second argument which
|
|
592 defaults to `nil'. If the argument is not `nil', it means that
|
|
593 another window (not the selected one) must be found or created to
|
|
594 display the specified buffer in, even if it is already shown in
|
|
595 the selected window.
|
|
596
|
|
597 This feature is used by `switch-to-buffer-other-window'.
|
|
598
|
|
599 * New variable `completion-ignore-case'.
|
|
600
|
|
601 If this variable is non-`nil', completion allows strings
|
|
602 in different cases to be considered matching. The global value
|
|
603 is `nil'
|
|
604
|
|
605 This variable exists for the sake of commands that are completing
|
|
606 an argument in which case is not significant. It is possible
|
|
607 to change the value globally, but you might not like the consequences
|
|
608 in the many situations (buffer names, command names, file names)
|
|
609 where case makes a difference.
|
|
610
|
|
611 * Major modes related to Text mode call text-mode-hook, then their own hooks.
|
|
612
|
|
613 For example, turning on Outline mode first calls the value of
|
|
614 `text-mode-hook' as a function, if it exists and is non-`nil',
|
|
615 and then does likewise for the variable `outline-mode-hook'.
|
|
616
|
|
617 * Defining new command line switches.
|
|
618
|
|
619 You can define a new command line switch in your .emacs file
|
|
620 by putting elements on the value of `command-switch-alist'.
|
|
621 Each element of this list should look like
|
|
622 (SWITCHSTRING . FUNCTION)
|
|
623 where SWITCHSTRING is a string containing the switch to be
|
|
624 defined, such as "-foo", and FUNCTION is a function to be called
|
|
625 if such an argument is found in the command line. FUNCTION
|
|
626 receives the command line argument, a string, as its argument.
|
|
627
|
|
628 To implement a switch that uses up one or more following arguments,
|
|
629 use the fact that the remaining command line arguments are kept
|
|
630 as a list in the variable `command-line-args'. FUNCTION can
|
|
631 examine this variable, and do
|
|
632 (setq command-line-args (cdr command-line-args)
|
|
633 to "use up" an argument.
|
|
634
|
|
635 * New variable `load-in-progress'.
|
|
636
|
|
637 This variable is non-`nil' when a file of Lisp code is being read
|
|
638 and executed by `load'.
|
|
639
|
|
640 * New variable `print-length'.
|
|
641
|
|
642 The value of this variable is normally `nil'. It may instead be
|
|
643 a number; in that case, when a list is printed by `prin1' or
|
|
644 `princ' only that many initial elements are printed; the rest are
|
|
645 replaced by `...'.
|
|
646
|
|
647 * New variable `find-file-not-found-hook'.
|
|
648
|
|
649 If `find-file' or any of its variants is used on a nonexistent file,
|
|
650 the value of `find-file-not-found-hook' is called (if it is not `nil')
|
|
651 with no arguments, after creating an empty buffer. The file's name
|
|
652 can be found as the value of `buffer-file-name'.
|
|
653
|
|
654 * Processes without buffers.
|
|
655
|
|
656 In the function `start-process', you can now specify `nil' as
|
|
657 the process's buffer. You can also set a process's buffer to `nil'
|
|
658 using `set-process-buffer'.
|
|
659
|
|
660 The reason you might want to do this is to prevent the process
|
|
661 from being killed because any particular buffer is killed.
|
|
662 When a process has a buffer, killing that buffer kills the
|
|
663 process too.
|
|
664
|
|
665 When a process has no buffer, its output is lost unless it has a
|
|
666 filter, and no indication of its being stopped or killed is given
|
|
667 unless it has a sentinel.
|
|
668
|
|
669 * New function `user-variable-p'. `v' arg prompting changed.
|
|
670
|
|
671 This function takes a symbol as argument and returns `t' if
|
|
672 the symbol is defined as a user option variable. This means
|
|
673 that it has a `variable-documentation' property whose value is
|
|
674 a string starting with `*'.
|
|
675
|
|
676 Code `v' in an interactive arg reading string now accepts
|
|
677 user variables only, and completion is limited to the space of
|
|
678 user variables.
|
|
679
|
|
680 The function `read-variable' also now accepts and completes
|
|
681 over user variables only.
|
|
682
|
|
683 * CBREAK mode input is the default in Unix 4.3 bsd.
|
|
684
|
|
685 In Berkeley 4.3 Unix, there are sufficient features for Emacs to
|
|
686 work fully correctly using CBREAK mode and not using SIGIO.
|
|
687 Therefore, this mode is the default when running under 4.3.
|
|
688 This mode corresponds to `nil' as the first argument to
|
|
689 `set-input-mode'. You can still select either mode by calling
|
|
690 that function.
|
|
691
|
|
692 * Information on memory usage.
|
|
693
|
|
694 The new variable `data-bytes-used' contains the number
|
|
695 of bytes of impure space allocated in Emacs.
|
|
696 `data-bytes-free' contains the number of additional bytes
|
|
697 Emacs could allocate. Note that space formerly allocated
|
|
698 and freed again still counts as `used', since it is still
|
|
699 in Emacs's address space.
|
|
700
|
|
701 * No limit on size of output from `format'.
|
|
702
|
|
703 The string output from `format' used to be truncated to
|
|
704 100 characters in length. Now it can have any length.
|
|
705
|
|
706 * New errors `void-variable' and `void-function' replace `void-symbol'.
|
|
707
|
|
708 This change makes it possible to have error messages that
|
|
709 clearly distinguish undefined variables from undefined functions.
|
|
710 It also allows `condition-case' to handle one case without the other.
|
|
711
|
|
712 * `replace-match' handling of `\'.
|
|
713
|
|
714 In `replace-match', when the replacement is not literal,
|
|
715 `\' in the replacement string is always treated as an
|
|
716 escape marker. The only two special `\' constructs
|
|
717 are `\&' and `\DIGIT', so `\' followed by anything other than
|
|
718 `&' or a digit has no effect. `\\' is necessary to include
|
|
719 a `\' in the replacement text.
|
|
720
|
|
721 This level of escaping is comparable with what goes on in
|
|
722 a regular expression. It is over and above the level of `\'
|
|
723 escaping that goes on when strings are read in Lisp syntax.
|
|
724
|
|
725 * New error `invalid-regexp'.
|
|
726
|
|
727 A regexp search signals this type of error if the argument does
|
|
728 not meet the rules for regexp syntax.
|
|
729
|
|
730 * `kill-emacs' with argument.
|
|
731
|
|
732 If the argument is a number, it is returned as the exit status code
|
|
733 of the Emacs process. If the argument is a string, its contents
|
|
734 are stuffed as pending terminal input, to be read by another program
|
|
735 after Emacs is dead.
|
|
736
|
|
737 * New fifth argument to `subst-char-in-region'.
|
|
738
|
|
739 This argument is optional and defaults to `nil'. If it is not `nil',
|
|
740 then the substitutions made by this function are not recorded
|
|
741 in the Undo mechanism.
|
|
742
|
|
743 This feature should be used with great care. It is now used
|
|
744 by Outline mode to make lines visible or invisible.
|
|
745
|
|
746 * ` *Backtrace*' buffer renamed to `*Backtrace*'.
|
|
747
|
|
748 As a result, you can now reselect this buffer easily if you switch to
|
|
749 another while in the debugger.
|
|
750
|
|
751 Exiting from the debugger kills the `*Backtrace*' buffer, so you will
|
|
752 not try to give commands in it when no longer really in the debugger.
|
|
753
|
|
754 * New function `switch-to-buffer-other-window'.
|
|
755
|
|
756 This is the new primitive to select a specified buffer (the
|
|
757 argument) in another window. It is not quite the same as
|
|
758 `pop-to-buffer', because it is guaranteed to create another
|
|
759 window (assuming there is room on the screen) so that it can
|
|
760 leave the current window's old buffer displayed as well.
|
|
761
|
|
762 All functions to select a buffer in another window should
|
|
763 do so by calling this new function.
|
|
764
|
|
765 * New variable `minibuffer-help-form'.
|
|
766
|
|
767 At entry to the minibuffer, the variable `help-form' is bound
|
|
768 to the value of `minibuffer-help-form'.
|
|
769
|
|
770 `help-form' is expected at all times to contain either `nil'
|
|
771 or an expression to be executed when C-h is typed (overriding
|
|
772 teh definition of C-h as a command). `minibuffer-help-form'
|
|
773 can be used to provide a different default way of handling
|
|
774 C-h while in the minibuffer.
|
|
775
|
|
776 * New \{...} documentation construct.
|
|
777
|
|
778 It is now possible to set up the documentation string for
|
|
779 a major mode in such a way that it always describes the contents
|
|
780 of the major mode's keymap, as it has been customized.
|
|
781 To do this, include in the documentation string the characters `\{'
|
|
782 followed by the name of the variable containing the keymap,
|
|
783 terminated with `}'. (The `\' at the beginning probably needs to
|
|
784 be quoted with a second `\', to include it in the doc string.)
|
|
785 This construct is normally used on a line by itself, with no blank
|
|
786 lines before or after.
|
|
787
|
|
788 For example, the documentation string for the function `c-mode' contains
|
|
789 ...
|
|
790 Paragraphs are separated by blank lines only.
|
|
791 Delete converts tabs to spaces as it moves back.
|
|
792 \\{c-mode-map}
|
|
793 Variables controlling indentation style:
|
|
794 ...
|
|
795
|
|
796 * New character syntax class "punctuation".
|
|
797
|
|
798 Punctuation characters behave like whitespace in word and
|
|
799 list parsing, but can be distinguished in regexps and in the
|
|
800 function `char-syntax'. Punctuation syntax is represented by
|
|
801 a period in `modify-syntax-entry'.
|
|
802
|
|
803 * `auto-mode-alist' no longer needs entries for backup-file names,
|
|
804
|
|
805 Backup suffixes of all kinds are now stripped from a file's name
|
|
806 before searching `auto-mode-alist'.
|
|
807
|
|
808 Changes in Emacs 16
|
|
809
|
|
810 * No special code for Ambassadors, VT-100's and Concept-100's.
|
|
811
|
|
812 Emacs now controls these terminals based on the termcap entry, like
|
|
813 all other terminals. Formerly it did not refer to the termcap entries
|
|
814 for those terminal types, and often the termcap entries for those
|
|
815 terminals are wrong or inadequate. If you experience worse behavior
|
|
816 on these terminals than in version 15, you can probably correct it by
|
|
817 fixing up the termcap entry. See ./TERMS for more info.
|
|
818
|
|
819 See ./TERMS in any case if you find that some terminal does not work
|
|
820 right with Emacs now.
|
|
821
|
|
822 * Minibuffer default completion character is TAB (and not ESC).
|
|
823
|
|
824 So that ESC can be used in minibuffer for more useful prefix commands.
|
|
825
|
|
826 * C-z suspends Emacs in all modes.
|
|
827
|
|
828 Formerly, C-z was redefined for other purposes by certain modes,
|
|
829 such as Buffer Menu mode. Now other keys are used for those purposes,
|
|
830 to keep the meaning of C-z uniform.
|
|
831
|
|
832 * C-x ESC (repeat-complex-command) allows editing the command it repeats.
|
|
833
|
|
834 Instead of asking for confirmation to re-execute a command from the
|
|
835 command history, the command is placed, in its Lisp form, into the
|
|
836 minibuffer for editing. You can confirm by typing RETURN, change some
|
|
837 arguments and then confirm, or abort with C-g.
|
|
838
|
|
839 * Incremental search does less redisplay on slow terminals.
|
|
840
|
|
841 If the terminal baud rate is <= the value of `isearch-slow-speed',
|
|
842 incremental searching outside the text on the screen creates
|
|
843 a single-line window and uses that to display the line on which
|
|
844 a match has been found. Exiting or quitting the search restores
|
|
845 the previous window configuration and redisplays the window you
|
|
846 were searching in.
|
|
847
|
|
848 The initial value of `isearch-slow-speed' is 1200.
|
|
849
|
|
850 This feature is courtesy of crl@purdue.
|
|
851
|
|
852 * Recursive minibuffers not allowed.
|
|
853
|
|
854 If the minibuffer window is selected, most commands that would
|
|
855 use the minibuffer gets an error instead. (Specific commands
|
|
856 may override this feature and therefore still be allowed.)
|
|
857
|
|
858 Strictly speaking, recursive entry to the minibuffer is still
|
|
859 possible, because you can switch to another window after
|
|
860 entering the minibuffer, and then minibuffer-using commands
|
|
861 are allowed. This is still allowed by a deliberate decision:
|
|
862 if you know enough to switch windows while in the minibuffer,
|
|
863 you can probably understand recursive minibuffers.
|
|
864
|
|
865 This may be overridden by binding the variable
|
|
866 `enable-recursive-minibuffers' to t.
|
|
867
|
|
868 * New major mode Emacs-Lisp mode, for editing Lisp code to run in Emacs.
|
|
869
|
|
870 The mode in which emacs lisp files is edited is now called emacs-lisp-mode
|
|
871 and is distinct from lisp-mode. The latter is intended for use with
|
|
872 lisps external to emacs.
|
|
873
|
|
874 The hook which is funcalled (if non-nil) on entry to elisp-mode is now
|
|
875 called emacs-lisp-mode-hook. A consequence of this changes is that
|
|
876 .emacs init files which set the value of lisp-mode-hook may need to be
|
|
877 changed to use the new names.
|
|
878
|
|
879 * Correct matching of parentheses is checked on insertion.
|
|
880
|
|
881 When you insert a close-paren, the matching open-paren
|
|
882 is checked for validity. The close paren must be the kind
|
|
883 of close-paren that the open-paren says it should match.
|
|
884 Otherwise, a warning message is printed. close-paren immediately
|
|
885 preceded by quoting backslash syntax character is not matched.
|
|
886
|
|
887 This feature was originally written by shane@mit-ajax.
|
|
888
|
|
889 * M-x list-command-history
|
|
890 * M-x command-history-mode
|
|
891 * M-x electric-command-history
|
|
892
|
|
893 `list-command-history' displays forms from the command history subject
|
|
894 to user controlled filtering and limit on number of forms. It leaves
|
|
895 the buffer in `command-history-mode'. M-x command-history-mode
|
|
896 recomputes the command history each time it is invoked via
|
|
897 `list-command-history'. It is like Emacs-Lisp mode except that characters
|
|
898 don't insert themselves and provision is made for re-evaluating an
|
|
899 expression from the list. `electric-command-history' pops up a type
|
|
900 out window with the command history displayed. If the very next
|
|
901 character is Space, the window goes away and the previous window
|
|
902 configuration is restored. Otherwise you can move around in the
|
|
903 history and select an expression for evaluation *inside* the buffer
|
|
904 which invoked `electric-command-history'. The original window
|
|
905 configuration is restored on exit unless the command selected changes
|
|
906 it.
|
|
907
|
|
908 * M-x edit-picture
|
|
909
|
|
910 Enters a temporary major mode (the previous major mode is remembered
|
|
911 and can is restored on exit) designed for editing pictures and tables.
|
|
912 Printing characters replace rather than insert themselves with motion
|
|
913 afterwards that is user controlled (you can specify any of the 8
|
|
914 compass directions). Special commands for movement are provided.
|
|
915 Special commands for hacking tabs and tab stops are provided. Special
|
|
916 commands for killing rectangles and overlaying them are provided. See
|
|
917 the documentation of function edit-picture for more details.
|
|
918
|
|
919 Calls value of `edit-picture-hook' on entry if non-nil.
|
|
920
|
|
921 * Stupid C-s/C-q `flow control' supported.
|
|
922
|
|
923 Do (set-input-mode nil t) to tell Emacs to use CBREAK mode and interpret
|
|
924 C-s and C-q as flow control commands. (set-input-mode t nil) switches
|
|
925 back to interrupt-driven input. (set-input-mode nil nil) uses CBREAK
|
|
926 mode but no `flow control'; this may make it easier to run Emacs under
|
|
927 certain debuggers that have trouble dealing with inferiors that use SIGIO.
|
|
928
|
|
929 CBREAK mode has certain inherent disadvantages, which are why it is
|
|
930 not the default:
|
|
931
|
|
932 Meta-keys are ignored; CBREAK mode discards the 8th bit of
|
|
933 input characters.
|
|
934
|
|
935 Control-G as keyboard input discards buffered output,
|
|
936 and therefore can cause incorrect screen updating.
|
|
937
|
|
938 The use of `flow control' has its own additional disadvantage: the
|
|
939 characters C-s and C-q are not available as editing commands. You can
|
|
940 partially compensate for this by setting up a keyboard-translate-table
|
|
941 (see file ONEWS) that maps two other characters (such as C-^ and C-\) into
|
|
942 C-s and C-q. Of course, C-^ and C-\ are commonly used as escape
|
|
943 characters in remote-terminal programs. You really can't win except
|
|
944 by getting rid of this sort of `flow control.'
|
|
945
|
|
946 The configuration switch CBREAK_INPUT is now eliminated.
|
|
947 INTERRUPT_INPUT exists only to specify the default mode of operation;
|
|
948 #define it to make interrupt-driven input the default.
|
|
949
|
|
950 * Completion of directory names provides a slash.
|
|
951
|
|
952 If file name completion yields the name of a directory,
|
|
953 a slash is appended to it.
|
|
954
|
|
955 * Undo can clear modified-flag.
|
|
956
|
|
957 If you undo changes in a buffer back to a state in which the
|
|
958 buffer was not considered "modified", then it is labelled as
|
|
959 once again "unmodified".
|
|
960
|
|
961 * M-x run-lisp.
|
|
962
|
|
963 This command creates an inferior Lisp process whose input and output
|
|
964 appear in the Emacs buffer named `*lisp*'. That buffer uses a major mode
|
|
965 called inferior-lisp-mode, which has many of the commands of lisp-mode
|
|
966 and those of shell-mode. Calls the value of shell-mode-hook and
|
|
967 lisp-mode-hook, in that order, if non-nil.
|
|
968
|
|
969 Meanwhile, in lisp-mode, the command C-M-x is defined to
|
|
970 send the current defun as input to the `*lisp*' subprocess.
|
|
971
|
|
972 * Mode line says `Narrow' when buffer is clipped.
|
|
973
|
|
974 If a buffer has a clipping restriction (made by `narrow-to-region')
|
|
975 then its mode line contains the word `Narrow' after the major and
|
|
976 minor modes.
|
|
977
|
|
978 * Mode line says `Abbrev' when abbrev mode is on.
|
|
979
|
|
980 * add-change-log-entry takes prefix argument
|
|
981
|
|
982 Giving a prefix argument makes it prompt for login name, full name,
|
|
983 and site name, with defaults. Otherwise the defaults are used
|
|
984 with no confirmation.
|
|
985
|
|
986 * M-x view-buffer and M-x view-file
|
|
987
|
|
988 view-buffer selects the named buffer, view-file finds the named file; the
|
|
989 resulting buffer is placed into view-mode (a recursive edit). The normal
|
|
990 emacs commands are not available. Instead a set of special commands is
|
|
991 provided which faclitate moving around in the buffer, searching and
|
|
992 scrolling by screenfuls. Exiting view-mode returns to the buffer in which
|
|
993 the view-file or view-buffer command was given.
|
|
994 Type ? or h when viewing for a complete list of view commands.
|
|
995 Each calls value of `view-hook' if non-nil on entry.
|
|
996
|
|
997 written by shane@mit-ajax.
|
|
998
|
|
999 * New key commands in dired.
|
|
1000
|
|
1001 `v' views (like more) the file on the current line.
|
|
1002 `#' marks auto-save files for deletion.
|
|
1003 `~' marks backup files for deletion.
|
|
1004 `r' renames a file and updates the directory listing if the
|
|
1005 file is renamed to same directory.
|
|
1006 `c' copies a file and updates the directory listing if the file is
|
|
1007 copied to the same directory.
|
|
1008
|
|
1009 * New function `electric-buffer-list'.
|
|
1010
|
|
1011 This pops up a buffer describing the set of emacs buffers.
|
|
1012 Immediately typing space makes the buffer list go away and returns
|
|
1013 to the buffer and window which were previously selected.
|
|
1014
|
|
1015 Otherwise one may use the c-p and c-n commands to move around in the
|
|
1016 buffer-list buffer and type Space or C-z to select the buffer on the
|
|
1017 cursor's line. There are a number of other commands which are the same
|
|
1018 as those of buffer-menu-mode.
|
|
1019
|
|
1020 This is a useful thing to bind to c-x c-b in your `.emacs' file if the
|
|
1021 rather non-standard `electric' behaviour of the buffer list suits your taste.
|
|
1022 Type C-h after invoking electric-buffer-list for more information.
|
|
1023
|
|
1024 Calls value of `electric-buffer-menu-mode-hook' if non-nil on entry.
|
|
1025 Calls value of `after-electric-buffer-menu' on exit (select) if non-nil.
|
|
1026
|
|
1027 Changes in version 16 for mail reading and sending
|
|
1028
|
|
1029 * sendmail prefix character is C-c (and not C-z). New command C-c w.
|
|
1030
|
|
1031 For instance C-c C-c (or C-c C-s) sends mail now rather than C-z C-z.
|
|
1032 C-c w inserts your `signature' (contents of ~/.signature) at the end
|
|
1033 of mail.
|
|
1034
|
|
1035 * New feature in C-c y command in sending mail.
|
|
1036
|
|
1037 C-c y is the command to insert the message being replied to.
|
|
1038 Normally it deletes most header fields and indents everything
|
|
1039 by three spaces.
|
|
1040
|
|
1041 Now, C-c y does not delete header fields or indent.
|
|
1042 C-c y with any other numeric argument does delete most header
|
|
1043 fields, but indents by the amount specified in the argument.
|
|
1044
|
|
1045 * C-r command in Rmail edits current message.
|
|
1046
|
|
1047 It does this by switching to a different major mode
|
|
1048 which is nearly the same as Text mode. The only difference
|
|
1049 between it and text mode are the two command C-c and C-].
|
|
1050 C-c is defined to switch back to Rmail mode, and C-]
|
|
1051 is defined to restore the original contents of the message
|
|
1052 and then switch back to Rmail mode.
|
|
1053
|
|
1054 C-c and C-] are the only ways "back into Rmail", but you
|
|
1055 can switch to other buffers and edit them as usual.
|
|
1056 C-r in Rmail changes only the handling of the Rmail buffer.
|
|
1057
|
|
1058 * Rmail command `t' toggles header display.
|
|
1059
|
|
1060 Normally Rmail reformats messages to hide most header fields.
|
|
1061 `t' switches to display of all the header fields of the
|
|
1062 current message, as long as it remains current.
|
|
1063 Another `t' switches back to the usual display.
|
|
1064
|
|
1065 * Rmail command '>' goes to the last message.
|
|
1066
|
|
1067 * Rmail commands `a' and `k' set message attributes.
|
|
1068 `a' adds an attribute and `k' removes one. You specify
|
|
1069 the attrbute by name. You can specify either a built-in
|
|
1070 flag such as "deleted" or "filed", or a user-defined keyword
|
|
1071 (anything not recognized as built-in).
|
|
1072
|
|
1073 * Rmail commands `l' and `L' summarize by attributes.
|
|
1074
|
|
1075 These commands create a summary with one line per message,
|
|
1076 like `h', but they list only some of the messages. You
|
|
1077 specify which attribute (for `l') or attributes (for `L')
|
|
1078 the messages should have.
|
|
1079
|
|
1080 * Rmail can parse mmdf mail files.
|
|
1081
|
|
1082 * Interface to MH mail system.
|
|
1083
|
|
1084 mh-e is a front end for GNU emacs and the MH mail system. It
|
|
1085 provides a friendly and convient interface to the MH commands.
|
|
1086
|
|
1087 To read mail, invoke mh-rmail. This will inc new mail and display the
|
|
1088 scan listing on the screen. To see a summary of the mh-e commands,
|
|
1089 type ?. Help is available through the usual facilities.
|
|
1090
|
|
1091 To send mail, invoke mh-smail.
|
|
1092
|
|
1093 mh-e requires a copy of MH.5 that has been compiled with the MHE
|
|
1094 compiler switch.
|
|
1095
|
|
1096 From larus@berkeley.
|
|
1097
|
|
1098 New hooks and parameters in version 16
|
|
1099
|
|
1100 * New variable `blink-matching-paren-distance'.
|
|
1101
|
|
1102 This is the maximum number of characters to search for
|
|
1103 an open-paren to match an inserted close-paren.
|
|
1104 The matching open-paren is shown and checked if it is found
|
|
1105 within this distance.
|
|
1106
|
|
1107 `nil' means search all the way to the beginning of the buffer.
|
|
1108 In this case, a warning message is printed if no matching
|
|
1109 open-paren is found.
|
|
1110
|
|
1111 This feature was originally written by shane@mit-ajax.
|
|
1112
|
|
1113 * New variable `find-file-run-dired'
|
|
1114
|
|
1115 If nil, find-file will report an error if an attempt to visit a
|
|
1116 directory is detected; otherwise, it runs dired on that directory.
|
|
1117 The default is t.
|
|
1118
|
|
1119 * Variable `dired-listing-switches' holds switches given to `ls' by dired.
|
|
1120
|
|
1121 The value should be a string containing `-' followed by letters.
|
|
1122 The letter `l' had better be included and letter 'F' had better be excluded!
|
|
1123 The default is "-al".
|
|
1124
|
|
1125 This feature was originally written by shane@mit-ajax.
|
|
1126
|
|
1127 * New variable `display-time-day-and-date'.
|
|
1128
|
|
1129 If this variable is set non-`nil', the function M-x display-time
|
|
1130 displays the day and date, as well as the time.
|
|
1131
|
|
1132 * New parameter `c-continued-statement-indent'.
|
|
1133
|
|
1134 This controls the extra indentation given to a line
|
|
1135 that continues a C statement started on the previous line.
|
|
1136 By default it is 2, which is why you would see
|
|
1137
|
|
1138 if (foo)
|
|
1139 bar ();
|
|
1140
|
|
1141
|
|
1142 * Changed meaning of `c-indent-level'.
|
|
1143
|
|
1144 The value of `c-brace-offset' used to be
|
|
1145 subtracted from the value of `c-indent-level' whenever
|
|
1146 that value was used. Now it is not.
|
|
1147
|
|
1148 As a result, `c-indent-level' is now the offset of
|
|
1149 statements within a block, relative to the line containing
|
|
1150 the open-brace that starts the block.
|
|
1151
|
|
1152 * turn-on-auto-fill is useful value for text-mode-hook.
|
|
1153
|
|
1154 (setq text-mode-hook 'turn-on-auto-fill)
|
|
1155 is all you have to do to make sure Auto Fill mode is turned
|
|
1156 on whenever you enter Text mode.
|
|
1157
|
|
1158 * Parameter explicit-shell-file-name for M-x shell.
|
|
1159
|
|
1160 This variable, if non-nil, specifies the file name to use
|
|
1161 for the shell to run if you do M-x shell.
|
|
1162
|
|
1163 Changes in version 16 affecting Lisp programming:
|
|
1164
|
|
1165 * Documentation strings adapt to customization.
|
|
1166
|
|
1167 Often the documentation string for a command wants to mention
|
|
1168 another command. Simply stating the other command as a
|
|
1169 character sequence has a disadvantage: if the user customizes
|
|
1170 Emacs by moving that function to a different command, the
|
|
1171 cross reference in the documentation becomes wrong.
|
|
1172
|
|
1173 A new feature allows you to write the documentation string
|
|
1174 using a function name, and the command to run that function
|
|
1175 is looked up when the documentation is printed.
|
|
1176
|
|
1177 If a documentation string contains `\[' (two characters) then
|
|
1178 the following text, up to the next `]', is taken as a function name.
|
|
1179 Instead of printing that function name, the command that runs it is printed.
|
|
1180 (M-x is used to construct a command if no shorter one exists.)
|
|
1181
|
|
1182 For example, instead of putting `C-n' in a documentation string
|
|
1183 to refer to the C-n command, put in `\[next-line]'. (In practice
|
|
1184 you will need to quote the backslash with another backslash,
|
|
1185 due to the syntax for strings in Lisp and C.)
|
|
1186
|
|
1187 To include the literal characters `\[' in a documentation string,
|
|
1188 precede them with `\='. To include the characters `\=', precede
|
|
1189 them with `\='. For example, "\\=\\= is the way to quote \\=\\["
|
|
1190 will come out as `\= is the way to quote \['.
|
|
1191
|
|
1192 The new function `substitute-command-keys' takes a string possibly
|
|
1193 contaning \[...] constructs and replaces those constructs with
|
|
1194 the key sequences they currently stand for.
|
|
1195
|
|
1196 * Primitives `find-line-comment' and `find-line-comment-body' flushed.
|
|
1197
|
|
1198 Search for the value of `comment-start-skip' if you want to find
|
|
1199 whether and where a line has a comment.
|
|
1200
|
|
1201 * New function `auto-save-file-name-p'
|
|
1202
|
|
1203 Should return non-`nil' iff given a string which is the name of an
|
|
1204 auto-save file (sans directory name). If you redefine
|
|
1205 `make-auto-save-file-name', you should redefine this accordingly. By
|
|
1206 default, this function returns `t' for filenames beginning with
|
|
1207 character `#'.
|
|
1208
|
|
1209 * The value of `exec-directory' now ends in a slash.
|
|
1210
|
|
1211 This is to be compatible with most directory names in GNU Emacs.
|
|
1212
|
|
1213 * Dribble files and termscript files.
|
|
1214
|
|
1215 (open-dribble-file FILE) opens a dribble file named FILE. When a
|
|
1216 dribble file is open, every character Emacs reads from the terminal is
|
|
1217 written to the dribble file.
|
|
1218
|
|
1219 (open-termscript FILE) opens a termscript file named FILE. When a
|
|
1220 termscript file is open, all characters sent to the terminal by Emacs
|
|
1221 are also written in the termscript file.
|
|
1222
|
|
1223 The two of these together are very useful for debugging Emacs problems
|
|
1224 in redisplay.
|
|
1225
|
|
1226 * Upper case command characters by default are same as lower case.
|
|
1227
|
|
1228 If a character in a command is an upper case letter, and is not defined,
|
|
1229 Emacs uses the definition of the corresponding lower case letter.
|
|
1230 For example, if C-x U is not directly undefined, it is treated as
|
|
1231 a synonym for C-x u (undo).
|
|
1232
|
|
1233 * Undefined function errors versus undefined variable errors.
|
|
1234
|
|
1235 Void-symbol errors now say "boundp" if the symbol's value was void
|
|
1236 or "fboundp" if the function definition was void.
|
|
1237
|
|
1238 * New function `bury-buffer'.
|
|
1239
|
|
1240 The new function `bury-buffer' takes one argument, a buffer object,
|
|
1241 and puts that buffer at the end of the internal list of buffers.
|
|
1242 So it is the least preferred candidate for use as the default value
|
|
1243 of C-x b, or for other-buffer to return.
|
|
1244
|
|
1245 * Already-displayed buffers have low priority for display.
|
|
1246
|
|
1247 When a buffer is chosen automatically for display, or to be the
|
|
1248 default in C-x b, buffers already displayed in windows have lower
|
|
1249 priority than buffers not currently visible.
|
|
1250
|
|
1251 * `set-window-start' accepts a third argument NOFORCE.
|
|
1252
|
|
1253 This argument, if non-nil, prevents the window's force_start flag
|
|
1254 from being set. Setting the force_start flag causes the next
|
|
1255 redisplay to insist on starting display at the specified starting
|
|
1256 point, even if dot must be moved to get it onto the screen.
|
|
1257
|
|
1258 * New function `send-string-to-terminal'.
|
|
1259
|
|
1260 This function takes one argument, a string, and outputs its contents
|
|
1261 to the terminal exactly as specified: control characters, escape
|
|
1262 sequences, and all.
|
|
1263
|
|
1264 * Keypad put in command mode.
|
|
1265
|
|
1266 The terminal's keypad is now put into command mode, as opposed to
|
|
1267 numeric mode, while Emacs is running. This is done by means of the
|
|
1268 termcap `ks' and `ke' strings.
|
|
1269
|
|
1270 * New function `generate-new-buffer'
|
|
1271
|
|
1272 This function takes a string as an argument NAME and looks for a
|
|
1273 creates and returns a buffer called NAME if one did not already exist.
|
|
1274 Otherwise, it successively tries appending suffixes of the form "<1>",
|
|
1275 "<2>" etc to NAME until it creates a string which does not name an
|
|
1276 existing buffer. A new buffer with that name is the created and returned.
|
|
1277
|
|
1278 * New function `prin1-to-string'
|
|
1279 This function takes one argument, a lisp object, and returns a string
|
|
1280 containing that object's printed representation, such as `prin1'
|
|
1281 would output.
|
|
1282
|
|
1283 * New function `read-from-minibuffer'
|
|
1284 Lets you supply a prompt, initial-contents, a keymap, and specify
|
|
1285 whether the result should be interpreted as a string or a lisp object.
|
|
1286
|
|
1287 Old functions `read-minibuffer', `eval-minibuffer', `read-string' all
|
|
1288 take second optional string argument which is initial contents of
|
|
1289 minibuffer.
|
|
1290
|
|
1291 * minibuffer variable names changed (names of keymaps)
|
|
1292
|
|
1293 minibuf-local-map -> minibuffer-local-map
|
|
1294 minibuf-local-ns-map -> minibuffer-local-ns-map
|
|
1295 minibuf-local-completion-map -> minibuffer-local-completion-map
|
|
1296 minibuf-local-must-match-map -> minibuffer-local-must-match-map
|
|
1297
|
|
1298 Changes in version 16 affecting configuring and building Emacs
|
|
1299
|
|
1300 * Configuration switch VT100_INVERSE eliminated.
|
|
1301
|
|
1302 You can control the use of inverse video on any terminal by setting
|
|
1303 the variable `inverse-video', or by changing the termcap entry. If
|
|
1304 you like, set `inverse-video' in your `.emacs' file based on
|
|
1305 examination of (getenv "TERM").
|
|
1306
|
|
1307 * New switch `-batch' makes Emacs run noninteractively.
|
|
1308
|
|
1309 If the switch `-batch' is used, Emacs treats its standard output
|
|
1310 and input like ordinary files (even if they are a terminal).
|
|
1311 It does not display buffers or windows; the only output to standard output
|
|
1312 is what would appear as messages in the echo area, and each
|
|
1313 message is followed by a newline.
|
|
1314
|
|
1315 The terminal modes are not changed, so that C-z and C-c retain
|
|
1316 their normal Unix meanings. Emacs does still read commands from
|
|
1317 the terminal, but the idea of `-batch' is that you use it with
|
|
1318 other command line arguments that tell Emacs a complete task to perform,
|
|
1319 including killing itself. `-kill' used as the last argument is a good
|
|
1320 way to accomplish this.
|
|
1321
|
|
1322 The Lisp variable `noninteractive' is now defined, to be `nil'
|
|
1323 except when `-batch' has been specified.
|
|
1324
|
|
1325 * Emacs can be built with output redirected to a file.
|
|
1326
|
|
1327 This is because -batch (see above) is now used in building Emacs.
|
|
1328
|
|
1329 For older news, see the file ONEWS.1.
|
|
1330
|
|
1331 ----------------------------------------------------------------------
|
|
1332 Copyright information:
|
|
1333
|
|
1334 Copyright (C) 1985 Richard M. Stallman
|
|
1335
|
|
1336 Permission is granted to anyone to make or distribute verbatim copies
|
|
1337 of this document as received, in any medium, provided that the
|
|
1338 copyright notice and this permission notice are preserved,
|
|
1339 thus giving the recipient permission to redistribute in turn.
|
|
1340
|
|
1341 Permission is granted to distribute modified versions
|
|
1342 of this document, or of portions of it,
|
|
1343 under the above conditions, provided also that they
|
|
1344 carry prominent notices stating who last changed them.
|
|
1345
|
|
1346 Local variables:
|
|
1347 mode: text
|
|
1348 end:
|