annotate etc/ONEWS @ 42103:e5356ff675e3

(DECODE_COMPOSITION_END): Check for ! COMPOSING (coding) instead of only for COMPOSITION_DISABLED.
author Richard M. Stallman <rms@gnu.org>
date Mon, 17 Dec 2001 14:05:07 +0000
parents 061a65fa5a43
children 19880a4faa73
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
1 GNU Emacs NEWS -- history of user-visible changes. 1992.
35782
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
2 Copyright (C) 1995, 2001 Free Software Foundation, Inc.
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
3 See the end for copying conditions.
Dave Love <fx@gnu.org>
parents:
diff changeset
4
33644
b75587b124c4 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 33149
diff changeset
5 For older news, see the file ONEWS.4.
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
6
35782
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
7 * Emacs 19.34 is a bug-fix release with no user-visible changes.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
8
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
9 * Changes in Emacs 19.33.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
10
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
11 ** Bibtex mode no longer turns on Auto Fill automatically. (No major
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
12 mode should do that--it is the user's choice.)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
13
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
14 ** The variable normal-auto-fill-function specifies the function to
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
15 use for auto-fill-function, if and when Auto Fill is turned on.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
16 Major modes can set this locally to alter how Auto Fill works.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
17
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
18 * Editing Changes in Emacs 19.32
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
19
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
20 ** C-x f with no argument now signals an error.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
21 To set the fill column at the current column, use C-u C-x f.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
22
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
23 ** Expanding dynamic abbrevs with M-/ is now smarter about case
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
24 conversion. If you type the abbreviation with mixed case, and it
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
25 matches the beginning of the expansion including case, then the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
26 expansion is copied verbatim. Using SPC M-/ to copy an additional
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
27 word always copies it verbatim except when the previous copied word is
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
28 all caps.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
29
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
30 ** On a non-windowing terminal, which can display only one Emacs frame
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
31 at a time, creating a new frame with C-x 5 2 also selects that frame.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
32
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
33 When using a display that can show multiple frames at once, C-x 5 2
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
34 does make the frame visible, but does not select it. This is the same
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
35 as in previous Emacs versions.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
36
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
37 ** You can use C-x 5 2 to create multiple frames on MSDOS, just as on a
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
38 non-X terminal on Unix. Of course, only one frame is visible at any
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
39 time, since your terminal doesn't have the ability to display multiple
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
40 frames.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
41
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
42 ** On Windows, set win32-pass-alt-to-system to a non-nil value
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
43 if you would like tapping the Alt key to invoke the Windows menu.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
44 This feature is not enabled by default; since the Alt key is also the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
45 Meta key, it is too easy and painful to activate this feature by
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
46 accident.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
47
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
48 ** The command apply-macro-to-region-lines repeats the last defined
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
49 keyboard macro once for each complete line within the current region.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
50 It does this line by line, by moving point to the beginning of that
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
51 line and then executing the macro.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
52
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
53 This command is not new, but was never documented before.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
54
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
55 ** You can now use Mouse-1 to place the region around a string constant
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
56 (something surrounded by doublequote characters or other delimiter
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
57 characters of like syntax) by double-clicking on one of the delimiting
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
58 characters.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
59
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
60 ** Font Lock mode
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
61
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
62 *** Font Lock support modes
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
63
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
64 Font Lock can be configured to use Fast Lock mode and Lazy Lock mode (see
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
65 below) in a flexible way. Rather than adding the appropriate function to the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
66 hook font-lock-mode-hook, you can use the new variable font-lock-support-mode
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
67 to control which modes have Fast Lock mode or Lazy Lock mode turned on when
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
68 Font Lock mode is enabled.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
69
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
70 For example, to use Fast Lock mode when Font Lock mode is turned on, put:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
71
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
72 (setq font-lock-support-mode 'fast-lock-mode)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
73
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
74 in your ~/.emacs.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
75
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
76 *** lazy-lock
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
77
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
78 The lazy-lock package speeds up Font Lock mode by making fontification occur
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
79 only when necessary, such as when a previously unfontified part of the buffer
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
80 becomes visible in a window. When you create a buffer with Font Lock mode and
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
81 Lazy Lock mode turned on, the buffer is not fontified. When certain events
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
82 occur (such as scrolling), Lazy Lock makes sure that the visible parts of the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
83 buffer are fontified. Lazy Lock also defers on-the-fly fontification until
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
84 Emacs has been idle for a given amount of time.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
85
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
86 To use this package, put in your ~/.emacs:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
87
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
88 (setq font-lock-support-mode 'lazy-lock-mode)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
89
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
90 To control the package behaviour, see the documentation for `lazy-lock-mode'.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
91
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
92 ** Changes in BibTeX mode.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
93
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
94 *** For all entries allow spaces and tabs between opening brace or
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
95 paren and key.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
96
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
97 *** Non-escaped double-quoted characters (as in `Sch"of') are now
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
98 supported.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
99
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
100 ** Gnus changes.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
101
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
102 Gnus, the Emacs news reader, has undergone further rewriting. Many new
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
103 commands and variables have been added. There should be no
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
104 significant incompatibilities between this Gnus version and the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
105 previously released version, except in the message composition area.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
106
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
107 Below is a list of the more user-visible changes. Coding changes
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
108 between Gnus 5.1 and 5.2 are more extensive.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
109
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
110 *** A new message composition mode is used. All old customization
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
111 variables for mail-mode, rnews-reply-mode and gnus-msg are now
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
112 obsolete.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
113
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
114 *** Gnus is now able to generate "sparse" threads -- threads where
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
115 missing articles are represented by empty nodes.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
116
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
117 (setq gnus-build-sparse-threads 'some)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
118
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
119 *** Outgoing articles are stored on a special archive server.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
120
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
121 To disable this: (setq gnus-message-archive-group nil)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
122
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
123 *** Partial thread regeneration now happens when articles are
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
124 referred.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
125
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
126 *** Gnus can make use of GroupLens predictions:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
127
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
128 (setq gnus-use-grouplens t)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
129
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
130 *** A trn-line tree buffer can be displayed.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
131
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
132 (setq gnus-use-trees t)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
133
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
134 *** An nn-like pick-and-read minor mode is available for the summary
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
135 buffers.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
136
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
137 (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
138
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
139 *** In binary groups you can use a special binary minor mode:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
140
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
141 `M-x gnus-binary-mode'
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
142
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
143 *** Groups can be grouped in a folding topic hierarchy.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
144
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
145 (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
146
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
147 *** Gnus can re-send and bounce mail.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
148
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
149 Use the `S D r' and `S D b'.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
150
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
151 *** Groups can now have a score, and bubbling based on entry frequency
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
152 is possible.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
153
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
154 (add-hook 'gnus-summary-exit-hook 'gnus-summary-bubble-group)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
155
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
156 *** Groups can be process-marked, and commands can be performed on
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
157 groups of groups.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
158
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
159 *** Caching is possible in virtual groups.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
160
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
161 *** nndoc now understands all kinds of digests, mail boxes, rnews news
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
162 batches, ClariNet briefs collections, and just about everything else.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
163
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
164 *** Gnus has a new backend (nnsoup) to create/read SOUP packets.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
165
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
166 *** The Gnus cache is much faster.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
167
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
168 *** Groups can be sorted according to many criteria.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
169
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
170 For instance: (setq gnus-group-sort-function 'gnus-group-sort-by-rank)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
171
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
172 *** New group parameters have been introduced to set list-address and
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
173 expiration times.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
174
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
175 *** All formatting specs allow specifying faces to be used.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
176
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
177 *** There are several more commands for setting/removing/acting on
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
178 process marked articles on the `M P' submap.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
179
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
180 *** The summary buffer can be limited to show parts of the available
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
181 articles based on a wide range of criteria. These commands have been
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
182 bound to keys on the `/' submap.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
183
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
184 *** Articles can be made persistent -- as an alternative to saving
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
185 articles with the `*' command.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
186
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
187 *** All functions for hiding article elements are now toggles.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
188
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
189 *** Article headers can be buttonized.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
190
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
191 (add-hook 'gnus-article-display-hook 'gnus-article-add-buttons-to-head)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
192
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
193 *** All mail backends support fetching articles by Message-ID.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
194
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
195 *** Duplicate mail can now be treated properly. See the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
196 `nnmail-treat-duplicates' variable.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
197
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
198 *** All summary mode commands are available directly from the article
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
199 buffer.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
200
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
201 *** Frames can be part of `gnus-buffer-configuration'.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
202
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
203 *** Mail can be re-scanned by a daemonic process.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
204
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
205 *** Gnus can make use of NoCeM files to filter spam.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
206
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
207 (setq gnus-use-nocem t)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
208
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
209 *** Groups can be made permanently visible.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
210
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
211 (setq gnus-permanently-visible-groups "^nnml:")
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
212
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
213 *** Many new hooks have been introduced to make customizing easier.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
214
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
215 *** Gnus respects the Mail-Copies-To header.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
216
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
217 *** Threads can be gathered by looking at the References header.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
218
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
219 (setq gnus-summary-thread-gathering-function
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
220 'gnus-gather-threads-by-references)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
221
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
222 *** Read articles can be stored in a special backlog buffer to avoid
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
223 refetching.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
224
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
225 (setq gnus-keep-backlog 50)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
226
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
227 *** A clean copy of the current article is always stored in a separate
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
228 buffer to allow easier treatment.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
229
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
230 *** Gnus can suggest where to save articles. See `gnus-split-methods'.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
231
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
232 *** Gnus doesn't have to do as much prompting when saving.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
233
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
234 (setq gnus-prompt-before-saving t)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
235
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
236 *** gnus-uu can view decoded files asynchronously while fetching
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
237 articles.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
238
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
239 (setq gnus-uu-grabbed-file-functions 'gnus-uu-grab-view)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
240
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
241 *** Filling in the article buffer now works properly on cited text.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
242
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
243 *** Hiding cited text adds buttons to toggle hiding, and how much
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
244 cited text to hide is now customizable.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
245
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
246 (setq gnus-cited-lines-visible 2)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
247
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
248 *** Boring headers can be hidden.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
249
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
250 (add-hook 'gnus-article-display-hook 'gnus-article-hide-boring-headers)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
251
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
252 *** Default scoring values can now be set from the menu bar.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
253
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
254 *** Further syntax checking of outgoing articles have been added.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
255
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
256 The Gnus manual has been expanded. It explains all these new features
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
257 in greater detail.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
258
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
259 * Lisp Changes in Emacs 19.32
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
260
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
261 ** The function set-visited-file-name now accepts an optional
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
262 second argument NO-QUERY. If it is non-nil, then the user is not
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
263 asked for confirmation in the case where the specified file already
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
264 exists.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
265
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
266 ** The variable print-length applies to printing vectors and bitvectors,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
267 as well as lists.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
268
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
269 ** The new function keymap-parent returns the parent keymap
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
270 of a given keymap.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
271
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
272 ** The new function set-keymap-parent specifies a new parent for a
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
273 given keymap. The arguments are KEYMAP and PARENT. PARENT must be a
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
274 keymap or nil.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
275
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
276 ** Sometimes menu keymaps use a command name, a symbol, which is really
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
277 an automatically generated alias for some other command, the "real"
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
278 name. In such a case, you should give that alias symbol a non-nil
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
279 menu-alias property. That property tells the menu system to look for
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
280 equivalent keys for the real name instead of equivalent keys for the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
281 alias.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
282
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
283 * Editing Changes in Emacs 19.31
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
284
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
285 ** Freedom of the press restricted in the United States.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
286
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
287 Emacs has been censored in accord with the Communications Decency Act.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
288 This includes removing some features of the doctor program. That law
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
289 was described by its supporters as a ban on pornography, but it bans
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
290 far more than that. The Emacs distribution has never contained any
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
291 pornography, but parts of it were nonetheless prohibited.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
292
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
293 For information on US government censorship of the Internet, and what
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
294 you can do to bring back freedom of the press, see the web site
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
295 `http://www.vtw.org/'.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
296
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
297 ** A note about C mode indentation customization.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
298
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
299 The old (Emacs 19.29) ways of specifying a C indentation style
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
300 do not normally work in the new implementation of C mode.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
301 It has its own methods of customizing indentation, which are
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
302 much more powerful than the old C mode. See the Editing Programs
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
303 chapter of the manual for details.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
304
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
305 However, you can load the library cc-compat to make the old
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
306 customization variables take effect.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
307
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
308 ** Marking with the mouse.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
309
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
310 When you mark a region with the mouse, the region now remains
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
311 highlighted until the next input event, regardless of whether you are
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
312 using M-x transient-mark-mode.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
313
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
314 ** Improved Windows NT/95 support.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
315
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
316 *** Emacs now supports scroll bars on Windows NT and Windows 95.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
317
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
318 *** Emacs now supports subprocesses on Windows 95. (Subprocesses used
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
319 to work on NT only and not on 95.)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
320
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
321 *** There are difficulties with subprocesses, though, due to problems
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
322 in Windows, beyond the control of Emacs. They work fine as long as
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
323 you run Windows applications. The problems arise when you run a DOS
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
324 application in a subprocesses. Since current shells run as DOS
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
325 applications, these problems are significant.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
326
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
327 If you run a DOS application in a subprocess, then the application is
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
328 likely to busy-wait, which means that your machine will be 100% busy.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
329 However, if you don't mind the temporary heavy load, the subprocess
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
330 will work OK as long as you tell it to terminate before you start any
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
331 other DOS application as a subprocess.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
332
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
333 Emacs is unable to terminate or interrupt a DOS subprocess.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
334 You have to do this by providing input directly to the subprocess.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
335
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
336 If you run two DOS applications at the same time in two separate
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
337 subprocesses, even if one of them is asynchronous, you will probably
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
338 have to reboot your machine--until then, it will remain 100% busy.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
339 Windows simply does not cope when one Windows process tries to run two
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
340 separate DOS subprocesses. Typing CTL-ALT-DEL and then choosing
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
341 Shutdown seems to work although it may take a few minutes.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
342
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
343 ** M-x resize-minibuffer-mode.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
344
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
345 This command, not previously mentioned in NEWS, toggles a mode in
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
346 which the minibuffer window expands to show as many lines as the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
347 minibuffer contains.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
348
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
349 ** `title' frame parameter and resource.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
350
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
351 The `title' X resource now specifies just the frame title, nothing else.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
352 It does not affect the name used for looking up other X resources.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
353 It works by setting the new `title' frame parameter, which likewise
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
354 affects just the displayed title of the frame.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
355
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
356 The `name' parameter continues to do what it used to do:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
357 it specifies the frame name for looking up X resources,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
358 and also serves as the default for the displayed title
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
359 when the `title' parameter is unspecified or nil.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
360
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
361 ** Emacs now uses the X toolkit by default, if you have a new
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
362 enough version of X installed (X11R5 or newer).
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
363
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
364 ** When you compile Emacs with the Motif widget set, Motif handles the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
365 F10 key by activating the menu bar. To avoid confusion, the usual
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
366 Emacs binding of F10 is replaced with a no-op when using Motif.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
367
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
368 If you want to be able to use F10 in Emacs, you can rebind the Motif
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
369 menubar to some other key which you don't use. To do so, add
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
370 something like this to your X resources file. This example rebinds
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
371 the Motif menu bar activation key to S-F12:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
372
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
373 Emacs*defaultVirtualBindings: osfMenuBar : Shift<Key>F12
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
374
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
375 ** In overwrite mode, DEL now inserts spaces in most cases
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
376 to replace the characters it "deletes".
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
377
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
378 ** The Rmail summary now shows the number of lines in each message.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
379
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
380 ** Rmail has a new command M-x unforward-rmail-message, which extracts
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
381 a forwarded message from the message that forwarded it. To use it,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
382 select a message which contains a forwarded message and then type the command.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
383 It inserts the forwarded message as a separate Rmail message
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
384 immediately after the selected one.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
385
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
386 This command also undoes the textual modifications that are standardly
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
387 made, as part of forwarding, by Rmail and other mail reader programs.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
388
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
389 ** Turning off saving of .saves-... files in your home directory.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
390
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
391 Each Emacs session writes a file named .saves-... in your home
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
392 directory to record which files M-x recover-session should recover.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
393 If you exit Emacs normally with C-x C-c, it deletes that file. If
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
394 Emacs or the operating system crashes, the file remains for M-x
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
395 recover-session.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
396
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
397 You can turn off the writing of these files by setting
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
398 auto-save-list-file-name to nil. If you do this, M-x recover-session
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
399 will not work.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
400
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
401 Some previous Emacs versions failed to delete these files even on
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
402 normal exit. This is fixed now. If you are thinking of turning off
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
403 this feature because of past experiences with versions that had this
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
404 bug, it would make sense to check whether you still want to do so
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
405 now that the bug is fixed.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
406
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
407 ** Changes to Version Control (VC)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
408
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
409 There is a new variable, vc-follow-symlinks. It indicates what to do
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
410 when you visit a link to a file that is under version control.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
411 Editing the file through the link bypasses the version control system,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
412 which is dangerous and probably not what you want.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
413
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
414 If this variable is t, VC follows the link and visits the real file,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
415 telling you about it in the echo area. If it is `ask' (the default),
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
416 VC asks for confirmation whether it should follow the link. If nil,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
417 the link is visited and a warning displayed.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
418
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
419 ** iso-acc.el now lets you specify a choice of language.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
420 Languages include "latin-1" (the default) and "latin-2" (which
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
421 is designed for entering ISO Latin-2 characters).
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
422
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
423 There are also choices for specific human languages such as French and
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
424 Portuguese. These are subsets of Latin-1, which differ in that they
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
425 enable only the accent characters needed for particular language.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
426 The other accent characters, not needed for the chosen language,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
427 remain normal.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
428
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
429 ** Posting articles and sending mail now has M-TAB completion on various
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
430 header fields (Newsgroups, To, CC, ...).
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
431
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
432 Completion in the Newsgroups header depends on the list of groups
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
433 known to your news reader. Completion in the Followup-To header
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
434 offers those groups which are in the Newsgroups header, since
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
435 Followup-To usually just holds one of those.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
436
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
437 Completion in fields that hold mail addresses works based on the list
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
438 of local users plus your aliases. Additionally, if your site provides
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
439 a mail directory or a specific host to use for any unrecognized user
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
440 name, you can arrange to query that host for completion also. (See the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
441 documentation of variables `mail-directory-process' and
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
442 `mail-directory-stream'.)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
443
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
444 ** A greatly extended sgml-mode offers new features such as (to be configured)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
445 skeletons with completing read for tags and attributes, typing named
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
446 characters including optionally all 8bit characters, making tags invisible
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
447 with optional alternate display text, skipping and deleting tag(pair)s.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
448
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
449 Note: since Emacs' syntax feature cannot limit the special meaning of ', " and
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
450 - to inside <>, for some texts the result, especially of font locking, may be
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
451 wrong (see `sgml-specials' if you get wrong results).
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
452
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
453 The derived html-mode configures this with tags and attributes more or
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
454 less HTML3ish. It also offers optional quick keys like C-c 1 for
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
455 headline or C-c u for unordered list (see `html-quick-keys'). Edit /
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
456 Text Properties / Face or M-g combinations create tags as applicable.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
457 Outline minor mode is supported and level 1 font-locking tries to
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
458 fontify tag contents (which only works when they fit on one line, due
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
459 to a limitation in font-lock).
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
460
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
461 External viewing via browse-url can occur automatically upon saving.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
462
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
463 ** M-x imenu-add-to-menubar now adds to the menu bar for the current
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
464 buffer only. If you want to put an Imenu item in the menu bar for all
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
465 buffers that use a particular major mode, use the mode hook, as in
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
466 this example:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
467
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
468 (add-hook 'emacs-lisp-mode-hook
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
469 '(lambda () (imenu-add-to-menubar "Index")))
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
470
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
471 ** Changes in BibTeX mode.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
472
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
473 *** Field names may now contain digits, hyphens, and underscores.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
474
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
475 *** Font Lock mode is now supported.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
476
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
477 *** bibtex-make-optional-field is no longer interactive.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
478
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
479 *** If bibtex-maintain-sorted-entries is non-nil, inserting new
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
480 entries is now done with a faster algorithm. However, inserting
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
481 will fail in this case if the buffer contains invalid entries or
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
482 isn't in sorted order, so you should finish each entry with C-c C-c
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
483 (bibtex-close-entry) after you have inserted or modified it.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
484 The default value of bibtex-maintain-sorted-entries is nil.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
485
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
486 *** Function `show-all' is no longer bound to a key, since C-u C-c C-q
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
487 does the same job.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
488
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
489 *** Entries with quotes inside quote-delimited fields (as `author =
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
490 "Stefan Sch{\"o}f"') are now supported.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
491
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
492 *** Case in field names doesn't matter anymore when searching for help
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
493 text.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
494
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
495 ** Font Lock mode
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
496
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
497 *** Global Font Lock mode
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
498
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
499 Font Lock mode can be turned on globally, in buffers that support it, by the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
500 new command global-font-lock-mode. You can use the new variable
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
501 font-lock-global-modes to control which modes have Font Lock mode automagically
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
502 turned on. By default, this variable is set so that Font Lock mode is turned
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
503 on globally where the buffer mode supports it.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
504
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
505 For example, to automagically turn on Font Lock mode where supported, put:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
506
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
507 (global-font-lock-mode t)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
508
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
509 in your ~/.emacs.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
510
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
511 *** Local Refontification
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
512
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
513 In Font Lock mode, editing a line automatically refontifies that line only.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
514 However, if your change alters the syntactic context for following lines,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
515 those lines remain incorrectly fontified. To refontify them, use the new
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
516 command M-g M-g (font-lock-fontify-block).
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
517
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
518 In certain major modes, M-g M-g refontifies the entire current function.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
519 (The variable font-lock-mark-block-function controls how to find the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
520 current function.) In other major modes, M-g M-g refontifies 16 lines
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
521 above and below point.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
522
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
523 With a prefix argument N, M-g M-g refontifies N lines above and below point.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
524
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
525 ** Follow mode
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
526
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
527 Follow mode is a new minor mode combining windows showing the same
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
528 buffer into one tall "virtual window". The windows are typically two
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
529 side-by-side windows. Follow mode makes them scroll together as if
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
530 they were a unit. To use it, go to a frame with just one window,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
531 split it into two side-by-side windows using C-x 3, and then type M-x
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
532 follow-mode.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
533
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
534 M-x follow-mode turns off Follow mode if it is already enabled.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
535
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
536 To display two side-by-side windows and activate Follow mode, use the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
537 command M-x follow-delete-other-windows-and-split.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
538
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
539 ** hide-show changes.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
540
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
541 The hooks hs-hide-hooks and hs-show-hooks have been renamed
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
542 to hs-hide-hook and hs-show-hook, to follow the convention for
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
543 normal hooks.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
544
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
545 ** Simula mode now has a menu containing the most important commands.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
546 The new command simula-indent-exp is bound to C-M-q.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
547
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
548 ** etags can now handle programs written in Erlang. Files are
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
549 recognised by the extensions .erl and .hrl. The tagged lines are
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
550 those that begin a function, record, or macro.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
551
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
552 ** MSDOS Changes
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
553
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
554 *** It is now possible to compile Emacs with the version 2 of DJGPP.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
555 Compilation with DJGPP version 1 also still works.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
556
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
557 *** The documentation of DOS-specific aspects of Emacs was rewritten
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
558 and expanded; see the ``MS-DOS'' node in the on-line docs.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
559
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
560 *** Emacs now uses ~ for backup file names, not .bak.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
561
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
562 *** You can simulate mouse-3 on two-button mice by simultaneously
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
563 pressing both mouse buttons.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
564
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
565 *** A number of packages and commands which previously failed or had
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
566 restricted functionality on MS-DOS, now work. The most important ones
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
567 are:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
568
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
569 **** Printing (both with `M-x lpr-buffer' and with `ps-print' package)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
570 now works.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
571
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
572 **** `Ediff' works (in a single-frame mode).
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
573
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
574 **** `M-x display-time' can be used on MS-DOS (due to the new
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
575 implementation of Emacs timers, see below).
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
576
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
577 **** `Dired' supports Unix-style shell wildcards.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
578
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
579 **** The `c-macro-expand' command now works as on other platforms.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
580
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
581 **** `M-x recover-session' works.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
582
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
583 **** `M-x list-colors-display' displays all the available colors.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
584
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
585 **** The `TPU-EDT' package works.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
586
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
587 * Lisp changes in Emacs 19.31.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
588
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
589 ** The function using-unix-filesystems on Windows NT and Windows 95
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
590 tells Emacs to read and write files assuming that they reside on a
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
591 remote Unix filesystem. No CR/LF translation is done on any files in
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
592 this case. Invoking using-unix-filesystems with t activates this
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
593 behavior, and invoking it with any other value deactivates it.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
594
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
595 ** Change in system-type and system-configuration values.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
596
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
597 The value of system-type on a Linux-based GNU system is now `lignux',
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
598 not `linux'. This means that some programs which use `system-type'
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
599 need to be changed. The value of `system-configuration' will also
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
600 be different.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
601
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
602 It is generally recommended to use `system-configuration' rather
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
603 than `system-type'.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
604
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
605 See the file LINUX-GNU in this directory for more about this.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
606
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
607 ** The functions shell-command and dired-call-process
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
608 now run file name handlers for default-directory, if it has them.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
609
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
610 ** Undoing the deletion of text now restores the positions of markers
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
611 that pointed into or next to the deleted text.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
612
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
613 ** Timers created with run-at-time now work internally to Emacs, and
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
614 no longer use a separate process. Therefore, they now work more
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
615 reliably and can be used for shorter time delays.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
616
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
617 The new function run-with-timer is a convenient way to set up a timer
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
618 to run a specified amount of time after the present. A call looks
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
619 like this:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
620
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
621 (run-with-timer SECS REPEAT FUNCTION ARGS...)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
622
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
623 SECS says how many seconds should elapse before the timer happens.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
624 It may be an integer or a floating point number. When the timer
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
625 becomes ripe, the action is to call FUNCTION with arguments ARGS.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
626
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
627 REPEAT gives the interval for repeating the timer (measured in
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
628 seconds). It may be an integer or a floating point number. nil or 0
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
629 means don't repeat at all--call FUNCTION just once.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
630
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
631 *** with-timeout provides an easy way to do something but give
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
632 up if too much time passes.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
633
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
634 (with-timeout (SECONDS TIMEOUT-FORMS...) BODY...)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
635
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
636 This executes BODY, but gives up after SECONDS seconds.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
637 If it gives up, it runs the TIMEOUT-FORMS and returns the value
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
638 of the last one of them. Normally it returns the value of the last
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
639 form in BODY.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
640
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
641 *** You can now arrange to call a function whenever Emacs is idle for
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
642 a certain length of time. To do this, call run-with-idle-timer. A
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
643 call looks like this:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
644
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
645 (run-with-idle-timer SECS REPEAT FUNCTION ARGS...)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
646
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
647 SECS says how many seconds of idleness should elapse before the timer
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
648 runs. It may be an integer or a floating point number. When the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
649 timer becomes ripe, the action is to call FUNCTION with arguments
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
650 ARGS.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
651
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
652 Emacs becomes idle whenever it finishes executing a keyboard or mouse
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
653 command. It remains idle until it receives another keyboard or mouse
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
654 command.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
655
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
656 REPEAT, if non-nil, means this timer should be activated again each
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
657 time Emacs becomes idle and remains idle for SECS seconds The timer
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
658 does not repeat if Emacs *remains* idle; it runs at most once after
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
659 each time Emacs becomes idle.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
660
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
661 If REPEAT is nil, the timer runs just once, the first time Emacs is
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
662 idle for SECS seconds.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
663
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
664 *** post-command-idle-hook is now obsolete; you shouldn't use it at
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
665 all, because it interferes with the idle timer mechanism. If your
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
666 programs use post-command-idle-hook, convert them to use idle timers
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
667 instead.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
668
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
669 *** y-or-n-p-with-timeout lets you ask a question but give up if
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
670 there is no answer within a certain time.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
671
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
672 (y-or-n-p-with-timeout PROMPT SECONDS DEFAULT-VALUE)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
673
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
674 asks the question PROMPT (just like y-or-n-p). If the user answers
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
675 within SECONDS seconds, it returns the answer that the user gave.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
676 Otherwise it gives up after SECONDS seconds, and returns DEFAULT-VALUE.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
677
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
678 ** Minor change to `encode-time': you can now pass more than seven
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
679 arguments. If you do that, the first six arguments have the usual
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
680 meaning, the last argument is interpreted as the time zone, and the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
681 arguments in between are ignored.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
682
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
683 This means that it works to use the list returned by `decode-time' as
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
684 the list of arguments for `encode-time'.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
685
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
686 ** The default value of load-path now includes the directory
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
687 /usr/local/share/emacs/VERSION/site-lisp In addition to
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
688 /usr/local/share/emacs/site-lisp. You can use this new directory for
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
689 site-specific Lisp packages that belong with a particular Emacs
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
690 version.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
691
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
692 It is not unusual for a Lisp package that works well in one Emacs
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
693 version to cause trouble in another. Sometimes packages need updating
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
694 for incompatible changes; sometimes they look at internal data that
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
695 has changed; sometimes the package has been installed in Emacs itself
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
696 and the installed version should be used. Whatever the reason for the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
697 problem, this new feature makes it easier to solve.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
698
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
699 ** When your program contains a fixed file name (like .completions or
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
700 .abbrev.defs), the file name usually needs to be different on operating
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
701 systems with limited file name syntax.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
702
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
703 Now you can avoid ad-hoc conditionals by using the function
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
704 convert-standard-filename to convert the file name to a proper form
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
705 for each operating system. Here is an example of use, from the file
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
706 completions.el:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
707
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
708 (defvar save-completions-file-name
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
709 (convert-standard-filename "~/.completions")
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
710 "*The filename to save completions to.")
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
711
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
712 This sets the variable save-completions-file-name to a value that
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
713 depends on the operating system, because the definition of
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
714 convert-standard-filename depends on the operating system. On
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
715 Unix-like systems, it returns the specified file name unchanged. On
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
716 MS-DOS, it adapts the name to fit the limitations of that system.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
717
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
718 ** The interactive spec N now returns the numeric prefix argument
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
719 rather than the raw prefix argument. (It still reads a number using the
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
720 minibuffer if there is no prefix argument at all.)
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
721
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
722 ** When a process is deleted, this no longer disconnects the process
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
723 marker from its buffer position.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
724
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
725 ** The variable garbage-collection-messages now controls whether
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
726 Emacs displays a message at the beginning and end of garbage collection.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
727 The default is nil, meaning there are no messages.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
728
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
729 ** The variable debug-ignored-errors specifies certain kinds of errors
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
730 that should not enter the debugger. Its value is a list of error
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
731 condition symbols and/or regular expressions. If the error has any
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
732 of the condition symbols listed, or if any of the regular expressions
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
733 matches the error message, then that error does not enter the debugger,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
734 regardless of the value of debug-on-error.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
735
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
736 This variable is initialized to match certain common but uninteresting
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
737 errors that happen often during editing.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
738
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
739 ** The new function error-message-string converts an error datum
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
740 into its error message. The error datum is what condition-case
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
741 puts into the variable, to describe the error that happened.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
742
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
743 ** Anything that changes which buffer appears in a given window
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
744 now runs the window-scroll-functions for that window.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
745
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
746 ** The new function get-buffer-window-list returns a list of windows displaying
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
747 a buffer. The function is called with the buffer (a buffer object or a buffer
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
748 name) and two optional arguments specifying the minibuffer windows and frames
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
749 to search. Therefore this function takes optional args like next-window etc.,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
750 and not get-buffer-window.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
751
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
752 ** buffer-substring now runs the hook buffer-access-fontify-functions,
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
753 calling each function with two arguments--the range of the buffer
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
754 being accessed. buffer-substring-no-properties does not call them.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
755
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
756 If you use this feature, you should set the variable
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
757 buffer-access-fontified-property to a non-nil symbol, which is a
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
758 property name. Then, if all the characters in the buffer range have a
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
759 non-nil value for that property, the buffer-access-fontify-functions
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
760 are not called. When called, these functions should put a non-nil
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
761 property on the text that they fontify, so that they won't get called
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
762 over and over for the same text.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
763
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
764 ** Changes in lisp-mnt.el
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
765
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
766 *** The lisp-mnt package can now recognize file headers that are written
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
767 in the formats used by the `what' command and the RCS `ident' command:
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
768
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
769 ;; @(#) HEADER: text
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
770 ;; $HEADER: text $
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
771
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
772 in addition to the normal
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
773
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
774 ;; HEADER: text
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
775
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
776 *** The commands lm-verify and lm-synopsis are now interactive. lm-verify
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
777 checks that the library file has proper sections and headers, and
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
778 lm-synopsis extracts first line "synopsis'"information.
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
779
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
780
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
781
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
782 * Editing Changes in Emacs 19.30.
Dave Love <fx@gnu.org>
parents:
diff changeset
783
Dave Love <fx@gnu.org>
parents:
diff changeset
784 ** Be sure to recompile your byte-compiled Emacs Lisp files
Dave Love <fx@gnu.org>
parents:
diff changeset
785 if you last compiled them with Emacs 19.28 or earlier.
Dave Love <fx@gnu.org>
parents:
diff changeset
786 You can use M-x byte-force-recompile to recompile all the .elc files
Dave Love <fx@gnu.org>
parents:
diff changeset
787 in a specified directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
788
Dave Love <fx@gnu.org>
parents:
diff changeset
789 ** Emacs now provides multiple-frame support on Windows NT
Dave Love <fx@gnu.org>
parents:
diff changeset
790 and Windows 95.
Dave Love <fx@gnu.org>
parents:
diff changeset
791
Dave Love <fx@gnu.org>
parents:
diff changeset
792 ** M-x column-number-mode toggles a minor mode which displays
Dave Love <fx@gnu.org>
parents:
diff changeset
793 the current column number in the mode line.
Dave Love <fx@gnu.org>
parents:
diff changeset
794
Dave Love <fx@gnu.org>
parents:
diff changeset
795 ** Line Number mode is now enabled by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
796
Dave Love <fx@gnu.org>
parents:
diff changeset
797 ** M-x what-line now displays the line number in the accessible
Dave Love <fx@gnu.org>
parents:
diff changeset
798 portion of the buffer as well as the line number in the full buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
799 when narrowing is in effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
800
Dave Love <fx@gnu.org>
parents:
diff changeset
801 ** If you type a M-x command that has an equivalent key binding,
Dave Love <fx@gnu.org>
parents:
diff changeset
802 the equivalent is shown in the minibuffer before the command executes.
Dave Love <fx@gnu.org>
parents:
diff changeset
803 This feature is enabled by default for the sake of beginning users.
Dave Love <fx@gnu.org>
parents:
diff changeset
804 You can turn the feature off by setting suggest-key-bindings to nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
805
Dave Love <fx@gnu.org>
parents:
diff changeset
806 ** The menu bar is now visible on text-only terminals. To choose a
Dave Love <fx@gnu.org>
parents:
diff changeset
807 command from the menu bar when you have no mouse, type M-`
Dave Love <fx@gnu.org>
parents:
diff changeset
808 (Meta-Backquote) or F10. To turn off menu bar display,
Dave Love <fx@gnu.org>
parents:
diff changeset
809 do (menu-bar-mode -1).
Dave Love <fx@gnu.org>
parents:
diff changeset
810
Dave Love <fx@gnu.org>
parents:
diff changeset
811 ** Whenever you invoke a minibuffer, it appears in the minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
812 window that the current frame uses.
Dave Love <fx@gnu.org>
parents:
diff changeset
813
Dave Love <fx@gnu.org>
parents:
diff changeset
814 Emacs can only use one minibuffer window at a time. If you activate
Dave Love <fx@gnu.org>
parents:
diff changeset
815 the minibuffer while a minibuffer window is active in some other
Dave Love <fx@gnu.org>
parents:
diff changeset
816 frame, the outer minibuffer window disappears while the inner one is
Dave Love <fx@gnu.org>
parents:
diff changeset
817 active.
Dave Love <fx@gnu.org>
parents:
diff changeset
818
Dave Love <fx@gnu.org>
parents:
diff changeset
819 ** Echo area messages always appear in the minibuffer window that the
Dave Love <fx@gnu.org>
parents:
diff changeset
820 current frame uses. If a minibuffer is active in some other frame,
Dave Love <fx@gnu.org>
parents:
diff changeset
821 the echo area message does not hide it even temporarily.
Dave Love <fx@gnu.org>
parents:
diff changeset
822
Dave Love <fx@gnu.org>
parents:
diff changeset
823 ** The minibuffer now has a menu-bar menu. You can use it to exit or
Dave Love <fx@gnu.org>
parents:
diff changeset
824 abort the minibuffer, or to ask for completion.
Dave Love <fx@gnu.org>
parents:
diff changeset
825
Dave Love <fx@gnu.org>
parents:
diff changeset
826 ** Dead-key and composite character processing is done in the standard
Dave Love <fx@gnu.org>
parents:
diff changeset
827 X11R6 manner (through the default "input method" using the
Dave Love <fx@gnu.org>
parents:
diff changeset
828 /usr/lib/X11/locale/*/Compose databases of key combinations). I.e. if
Dave Love <fx@gnu.org>
parents:
diff changeset
829 it works in xterm, it should also work in emacs now.
Dave Love <fx@gnu.org>
parents:
diff changeset
830
Dave Love <fx@gnu.org>
parents:
diff changeset
831 ** Mouse changes
Dave Love <fx@gnu.org>
parents:
diff changeset
832
Dave Love <fx@gnu.org>
parents:
diff changeset
833 *** You can now use the mouse when running Emacs in an xterm.
Dave Love <fx@gnu.org>
parents:
diff changeset
834 Use M-x xterm-mouse-mode to let emacs take control over the mouse.
Dave Love <fx@gnu.org>
parents:
diff changeset
835
Dave Love <fx@gnu.org>
parents:
diff changeset
836 *** C-mouse-1 now once again provides a menu of buffers to select.
Dave Love <fx@gnu.org>
parents:
diff changeset
837 S-mouse-1 is now the way to select a default font for the frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
838
Dave Love <fx@gnu.org>
parents:
diff changeset
839 *** There is a new mouse-scroll-min-lines variable to control the
Dave Love <fx@gnu.org>
parents:
diff changeset
840 minimum number of lines scrolled by dragging the mouse outside a
Dave Love <fx@gnu.org>
parents:
diff changeset
841 window's edge.
Dave Love <fx@gnu.org>
parents:
diff changeset
842
Dave Love <fx@gnu.org>
parents:
diff changeset
843 *** Dragging mouse-1 on a vertical line that separates windows
Dave Love <fx@gnu.org>
parents:
diff changeset
844 now moves the line, thus changing the widths of the two windows.
Dave Love <fx@gnu.org>
parents:
diff changeset
845 (This feature is available only if you don't have vertical scroll bars.
Dave Love <fx@gnu.org>
parents:
diff changeset
846 If you do use them, a scroll bar separates two side-by-side windows.)
Dave Love <fx@gnu.org>
parents:
diff changeset
847
Dave Love <fx@gnu.org>
parents:
diff changeset
848 *** Double-click mouse-1 on a character with "symbol" syntax (such as
Dave Love <fx@gnu.org>
parents:
diff changeset
849 underscore, in C mode) selects the entire symbol surrounding that
Dave Love <fx@gnu.org>
parents:
diff changeset
850 character. (Double-click mouse-1 on a letter selects a whole word.)
Dave Love <fx@gnu.org>
parents:
diff changeset
851
Dave Love <fx@gnu.org>
parents:
diff changeset
852 ** When incremental search wraps around to the beginning (or end) of
Dave Love <fx@gnu.org>
parents:
diff changeset
853 the buffer, if you keep on searching until you go past the original
Dave Love <fx@gnu.org>
parents:
diff changeset
854 starting point of the search, the echo area changes from "Wrapped" to
Dave Love <fx@gnu.org>
parents:
diff changeset
855 "Overwrapped". That tells you that you are revisiting matches that
Dave Love <fx@gnu.org>
parents:
diff changeset
856 you have already seen.
Dave Love <fx@gnu.org>
parents:
diff changeset
857
Dave Love <fx@gnu.org>
parents:
diff changeset
858 ** Filling changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
859
Dave Love <fx@gnu.org>
parents:
diff changeset
860 *** If the variable colon-double-space is non-nil, the explicit fill
Dave Love <fx@gnu.org>
parents:
diff changeset
861 commands put two spaces after a colon.
Dave Love <fx@gnu.org>
parents:
diff changeset
862
Dave Love <fx@gnu.org>
parents:
diff changeset
863 *** Auto-Fill mode now supports Adaptive Fill mode just as the
Dave Love <fx@gnu.org>
parents:
diff changeset
864 explicit fill commands do. The variable adaptive-fill-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
865 specifies a regular expression to match text at the beginning of
Dave Love <fx@gnu.org>
parents:
diff changeset
866 a line that should be the fill prefix.
Dave Love <fx@gnu.org>
parents:
diff changeset
867
Dave Love <fx@gnu.org>
parents:
diff changeset
868 *** Adaptive Fill mode can take a fill prefix from the first line of a
Dave Love <fx@gnu.org>
parents:
diff changeset
869 paragraph, *provided* that line is not a paragraph-starter line.
Dave Love <fx@gnu.org>
parents:
diff changeset
870
Dave Love <fx@gnu.org>
parents:
diff changeset
871 Paragraph-starter lines are indented lines that start a new
Dave Love <fx@gnu.org>
parents:
diff changeset
872 paragraph because they are indented. This indentation shouldn't
Dave Love <fx@gnu.org>
parents:
diff changeset
873 be copied to additional lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
874
Dave Love <fx@gnu.org>
parents:
diff changeset
875 Whether indented lines are paragraph lines depends on the value of the
Dave Love <fx@gnu.org>
parents:
diff changeset
876 variable paragraph-start. Some major modes set this; you can set it
Dave Love <fx@gnu.org>
parents:
diff changeset
877 by hand or in mode hooks as well. For editing text in which paragraph
Dave Love <fx@gnu.org>
parents:
diff changeset
878 first lines are not indented, and which contains paragraphs in which
Dave Love <fx@gnu.org>
parents:
diff changeset
879 all lines are indented, you should use Indented Text mode or arrange
Dave Love <fx@gnu.org>
parents:
diff changeset
880 for paragraph-start not to match these lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
881
Dave Love <fx@gnu.org>
parents:
diff changeset
882 *** You can specify more complex ways of choosing a fill prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
883 automatically by setting `adaptive-fill-function'. This function
Dave Love <fx@gnu.org>
parents:
diff changeset
884 is called with point after the left margin of a line, and it should
Dave Love <fx@gnu.org>
parents:
diff changeset
885 return the appropriate fill prefix based on that line.
Dave Love <fx@gnu.org>
parents:
diff changeset
886 If it returns nil, that means it sees no fill prefix in that line.
Dave Love <fx@gnu.org>
parents:
diff changeset
887
Dave Love <fx@gnu.org>
parents:
diff changeset
888 ** Gnus changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
889
Dave Love <fx@gnu.org>
parents:
diff changeset
890 Gnus, the Emacs news reader, has been rewritten and expanded. Most
Dave Love <fx@gnu.org>
parents:
diff changeset
891 things that worked with the old version should still work with the new
Dave Love <fx@gnu.org>
parents:
diff changeset
892 version. Code that relies heavily on Gnus internals is likely to
Dave Love <fx@gnu.org>
parents:
diff changeset
893 fail, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
894
Dave Love <fx@gnu.org>
parents:
diff changeset
895 *** Incompatibilities with the old GNUS.
Dave Love <fx@gnu.org>
parents:
diff changeset
896
Dave Love <fx@gnu.org>
parents:
diff changeset
897 **** All interactive commands have kept their names, but many internal
Dave Love <fx@gnu.org>
parents:
diff changeset
898 functions have changed names.
Dave Love <fx@gnu.org>
parents:
diff changeset
899
Dave Love <fx@gnu.org>
parents:
diff changeset
900 **** The summary mode gnus-uu commands have been moved from the `C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
901 C-v' keymap to the `X' keymap.
Dave Love <fx@gnu.org>
parents:
diff changeset
902
Dave Love <fx@gnu.org>
parents:
diff changeset
903 **** There can now be several summary buffers active at once.
Dave Love <fx@gnu.org>
parents:
diff changeset
904 Variables that are relevant to each summary buffer are buffer-local to
Dave Love <fx@gnu.org>
parents:
diff changeset
905 that buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
906
Dave Love <fx@gnu.org>
parents:
diff changeset
907 **** Old hilit code doesn't work at all. Gnus performs its own
Dave Love <fx@gnu.org>
parents:
diff changeset
908 highlighting based not only on what's visible in the buffer, but on
Dave Love <fx@gnu.org>
parents:
diff changeset
909 other data structures.
Dave Love <fx@gnu.org>
parents:
diff changeset
910
Dave Love <fx@gnu.org>
parents:
diff changeset
911 **** Old packages like `expire-kill' will no longer work.
Dave Love <fx@gnu.org>
parents:
diff changeset
912
Dave Love <fx@gnu.org>
parents:
diff changeset
913 **** `C-c C-l' in the group buffer no longer switches to a different
Dave Love <fx@gnu.org>
parents:
diff changeset
914 buffer, but instead lists killed groups in the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
915
Dave Love <fx@gnu.org>
parents:
diff changeset
916 *** New features.
Dave Love <fx@gnu.org>
parents:
diff changeset
917
Dave Love <fx@gnu.org>
parents:
diff changeset
918 **** The look of all buffers can be changed by setting format-like
Dave Love <fx@gnu.org>
parents:
diff changeset
919 variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
920
Dave Love <fx@gnu.org>
parents:
diff changeset
921 **** Local spool and several NNTP servers can be used at once.
Dave Love <fx@gnu.org>
parents:
diff changeset
922
Dave Love <fx@gnu.org>
parents:
diff changeset
923 **** Groups can be combined into virtual groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
924
Dave Love <fx@gnu.org>
parents:
diff changeset
925 **** Different mail formats can be read much the same way as one would
Dave Love <fx@gnu.org>
parents:
diff changeset
926 read newsgroups. All the mail backends implement mail expiry schemes.
Dave Love <fx@gnu.org>
parents:
diff changeset
927
Dave Love <fx@gnu.org>
parents:
diff changeset
928 **** Gnus can use various strategies for gathering threads that have
Dave Love <fx@gnu.org>
parents:
diff changeset
929 lost their roots (thereby gathering loose sub-threads into one thread)
Dave Love <fx@gnu.org>
parents:
diff changeset
930 or it can go back and retrieve enough headers to build a complete
Dave Love <fx@gnu.org>
parents:
diff changeset
931 thread.
Dave Love <fx@gnu.org>
parents:
diff changeset
932
Dave Love <fx@gnu.org>
parents:
diff changeset
933 **** Killed groups can be read.
Dave Love <fx@gnu.org>
parents:
diff changeset
934
Dave Love <fx@gnu.org>
parents:
diff changeset
935 **** Gnus can do partial group updates - you do not have to retrieve
Dave Love <fx@gnu.org>
parents:
diff changeset
936 the entire active file just to check for new articles in a few groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
937
Dave Love <fx@gnu.org>
parents:
diff changeset
938 **** Gnus implements a sliding scale of subscribedness to groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
939
Dave Love <fx@gnu.org>
parents:
diff changeset
940 **** You can score articles according to any number of criteria. You
Dave Love <fx@gnu.org>
parents:
diff changeset
941 can get Gnus to score articles for you using adaptive scoring.
Dave Love <fx@gnu.org>
parents:
diff changeset
942
Dave Love <fx@gnu.org>
parents:
diff changeset
943 **** Gnus maintains a dribble buffer that is auto-saved the normal
Dave Love <fx@gnu.org>
parents:
diff changeset
944 Emacs manner, so it should be difficult to lose much data on what you
Dave Love <fx@gnu.org>
parents:
diff changeset
945 have read if your machine should go down.
Dave Love <fx@gnu.org>
parents:
diff changeset
946
Dave Love <fx@gnu.org>
parents:
diff changeset
947 **** Gnus now has its own startup file (`.gnus.el') to avoid
Dave Love <fx@gnu.org>
parents:
diff changeset
948 cluttering up the `.emacs' file.
Dave Love <fx@gnu.org>
parents:
diff changeset
949
Dave Love <fx@gnu.org>
parents:
diff changeset
950 **** You can set the process mark on both groups and articles and
Dave Love <fx@gnu.org>
parents:
diff changeset
951 perform operations on all the marked items.
Dave Love <fx@gnu.org>
parents:
diff changeset
952
Dave Love <fx@gnu.org>
parents:
diff changeset
953 **** You can grep through a subset of groups and create a group from
Dave Love <fx@gnu.org>
parents:
diff changeset
954 the results.
Dave Love <fx@gnu.org>
parents:
diff changeset
955
Dave Love <fx@gnu.org>
parents:
diff changeset
956 **** You can list subsets of groups using matches on group names or
Dave Love <fx@gnu.org>
parents:
diff changeset
957 group descriptions.
Dave Love <fx@gnu.org>
parents:
diff changeset
958
Dave Love <fx@gnu.org>
parents:
diff changeset
959 **** You can browse foreign servers and subscribe to groups from those
Dave Love <fx@gnu.org>
parents:
diff changeset
960 servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
961
Dave Love <fx@gnu.org>
parents:
diff changeset
962 **** Gnus can pre-fetch articles asynchronously on a second connection
Dave Love <fx@gnu.org>
parents:
diff changeset
963 to the servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
964
Dave Love <fx@gnu.org>
parents:
diff changeset
965 **** You can cache articles locally.
Dave Love <fx@gnu.org>
parents:
diff changeset
966
Dave Love <fx@gnu.org>
parents:
diff changeset
967 **** Gnus can fetch FAQs to and descriptions of groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
968
Dave Love <fx@gnu.org>
parents:
diff changeset
969 **** Digests (and other files) can be used as the basis for groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
970
Dave Love <fx@gnu.org>
parents:
diff changeset
971 **** Articles can be highlighted and customized.
Dave Love <fx@gnu.org>
parents:
diff changeset
972
Dave Love <fx@gnu.org>
parents:
diff changeset
973 ** Changes to Version Control (VC)
Dave Love <fx@gnu.org>
parents:
diff changeset
974
Dave Love <fx@gnu.org>
parents:
diff changeset
975 *** General changes (all backends).
Dave Love <fx@gnu.org>
parents:
diff changeset
976
Dave Love <fx@gnu.org>
parents:
diff changeset
977 VC directory listings (C-x v d) are now kept up to date when you do a
Dave Love <fx@gnu.org>
parents:
diff changeset
978 vc-next-action (C-x v v) on the marked files. The `g' command updates
Dave Love <fx@gnu.org>
parents:
diff changeset
979 the buffer properly. `=' in a VC dired buffer produces a version
Dave Love <fx@gnu.org>
parents:
diff changeset
980 control diff, not an ordinary diff.
Dave Love <fx@gnu.org>
parents:
diff changeset
981
Dave Love <fx@gnu.org>
parents:
diff changeset
982 *** CVS changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
983
Dave Love <fx@gnu.org>
parents:
diff changeset
984 Under CVS, you no longer need to type C-x C-q before you can edit a
Dave Love <fx@gnu.org>
parents:
diff changeset
985 file. VC doesn't write-protect unmodified buffers anymore; you can
Dave Love <fx@gnu.org>
parents:
diff changeset
986 freely change them at any time. The mode line keeps track of the
Dave Love <fx@gnu.org>
parents:
diff changeset
987 file status.
Dave Love <fx@gnu.org>
parents:
diff changeset
988
Dave Love <fx@gnu.org>
parents:
diff changeset
989 If you do want unmodified files to be write-protected, set your
Dave Love <fx@gnu.org>
parents:
diff changeset
990 CVSREAD environment variable. VC sees this and behaves accordingly;
Dave Love <fx@gnu.org>
parents:
diff changeset
991 that will give you the behaviour of Emacs 19.29, similar to that under
Dave Love <fx@gnu.org>
parents:
diff changeset
992 RCS and SCCS. In this mode, if the variable vc-mistrust-permissions
Dave Love <fx@gnu.org>
parents:
diff changeset
993 is nil, VC learns the modification state from the file permissions.
Dave Love <fx@gnu.org>
parents:
diff changeset
994 When setting CVSREAD for the first time, you should check out the
Dave Love <fx@gnu.org>
parents:
diff changeset
995 whole module anew, so that the file permissions are set correctly.
Dave Love <fx@gnu.org>
parents:
diff changeset
996
Dave Love <fx@gnu.org>
parents:
diff changeset
997 VC also works with remote repositories now. When you visit a file, it
Dave Love <fx@gnu.org>
parents:
diff changeset
998 doesn't run "cvs status" anymore, so there shouldn't be any long delays.
Dave Love <fx@gnu.org>
parents:
diff changeset
999
Dave Love <fx@gnu.org>
parents:
diff changeset
1000 Directory listings under VC/CVS have been enhanced. Type C-x v d, and
Dave Love <fx@gnu.org>
parents:
diff changeset
1001 you get a list of all files in or below the current directory that are
Dave Love <fx@gnu.org>
parents:
diff changeset
1002 not up-to-date. The actual status (modified, merge, conflict, ...) is
Dave Love <fx@gnu.org>
parents:
diff changeset
1003 displayed for each file. If you give a prefix argument (C-u C-x v d),
Dave Love <fx@gnu.org>
parents:
diff changeset
1004 up-to-date files are also listed. You can mark any number of files,
Dave Love <fx@gnu.org>
parents:
diff changeset
1005 and execute the next logical version control command on them (C-x v v).
Dave Love <fx@gnu.org>
parents:
diff changeset
1006
Dave Love <fx@gnu.org>
parents:
diff changeset
1007 *** Starting a new branch.
Dave Love <fx@gnu.org>
parents:
diff changeset
1008
Dave Love <fx@gnu.org>
parents:
diff changeset
1009 If you try to lock a version that is not the latest on its branch,
Dave Love <fx@gnu.org>
parents:
diff changeset
1010 VC asks for confirmation in the minibuffer. If you say no, it offers
Dave Love <fx@gnu.org>
parents:
diff changeset
1011 to lock the latest version instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
1012
Dave Love <fx@gnu.org>
parents:
diff changeset
1013 *** RCS non-strict locking.
Dave Love <fx@gnu.org>
parents:
diff changeset
1014
Dave Love <fx@gnu.org>
parents:
diff changeset
1015 VC can now handle RCS non-strict locking, too. In this mode, working
Dave Love <fx@gnu.org>
parents:
diff changeset
1016 files are always writable and you needn't lock the file before making
Dave Love <fx@gnu.org>
parents:
diff changeset
1017 changes, similar to the default mode under CVS. To enable non-strict
Dave Love <fx@gnu.org>
parents:
diff changeset
1018 locking for a file, use the "rcs -U" command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1019
Dave Love <fx@gnu.org>
parents:
diff changeset
1020 *** Sharing RCS master files.
Dave Love <fx@gnu.org>
parents:
diff changeset
1021
Dave Love <fx@gnu.org>
parents:
diff changeset
1022 If you share RCS subdirs with other users (through symbolic links),
Dave Love <fx@gnu.org>
parents:
diff changeset
1023 and you always want to work on the latest version, set
Dave Love <fx@gnu.org>
parents:
diff changeset
1024 vc-consult-headers to nil and vc-mistrust-permissions to `t'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1025 Then you see the state of the *latest* version on the mode line, not
Dave Love <fx@gnu.org>
parents:
diff changeset
1026 that of your working file. When you do a check out, VC overwrites
Dave Love <fx@gnu.org>
parents:
diff changeset
1027 your working file with the latest version from the master.
Dave Love <fx@gnu.org>
parents:
diff changeset
1028
Dave Love <fx@gnu.org>
parents:
diff changeset
1029 *** RCS customization.
Dave Love <fx@gnu.org>
parents:
diff changeset
1030
Dave Love <fx@gnu.org>
parents:
diff changeset
1031 There is a new variable vc-consult-headers. If it is t (the default),
35782
061a65fa5a43 Move 19.x news from NEWS here.
Gerd Moellmann <gerd@gnu.org>
parents: 33644
diff changeset
1032 VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.4 2000/11/20 16:15:34 gerd Exp $') and
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
1033 determines the state of the file from them, not from the master file.
Dave Love <fx@gnu.org>
parents:
diff changeset
1034 This is fast and more reliable when you use branches. (The variable
Dave Love <fx@gnu.org>
parents:
diff changeset
1035 was already present in Emacs 19.29, but didn't get mentioned in the
Dave Love <fx@gnu.org>
parents:
diff changeset
1036 NEWS.)
Dave Love <fx@gnu.org>
parents:
diff changeset
1037
Dave Love <fx@gnu.org>
parents:
diff changeset
1038 ** Calendar changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
1039
Dave Love <fx@gnu.org>
parents:
diff changeset
1040 *** New calendars supported: Chinese, Coptic, Ethiopic
Dave Love <fx@gnu.org>
parents:
diff changeset
1041
Dave Love <fx@gnu.org>
parents:
diff changeset
1042 Here are the commands for converting to and from these calendars:
Dave Love <fx@gnu.org>
parents:
diff changeset
1043
Dave Love <fx@gnu.org>
parents:
diff changeset
1044 gC: calendar-goto-chinese-date
Dave Love <fx@gnu.org>
parents:
diff changeset
1045 gk: calendar-goto-coptic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
1046 ge: calendar-goto-ethiopic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
1047
Dave Love <fx@gnu.org>
parents:
diff changeset
1048 pC: calendar-print-chinese-date
Dave Love <fx@gnu.org>
parents:
diff changeset
1049 pk: calendar-print-coptic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
1050 pe: calendar-print-ethiopic-date
Dave Love <fx@gnu.org>
parents:
diff changeset
1051
Dave Love <fx@gnu.org>
parents:
diff changeset
1052 *** Printed calendars
Dave Love <fx@gnu.org>
parents:
diff changeset
1053
Dave Love <fx@gnu.org>
parents:
diff changeset
1054 Calendar mode now has commands to produce fancy printed calendars via
Dave Love <fx@gnu.org>
parents:
diff changeset
1055 LaTeX. You can ask for a calendar for one or more days, weeks, months
Dave Love <fx@gnu.org>
parents:
diff changeset
1056 or years. The commands all start with `t'; see the manual for a list
Dave Love <fx@gnu.org>
parents:
diff changeset
1057 of them.
Dave Love <fx@gnu.org>
parents:
diff changeset
1058
Dave Love <fx@gnu.org>
parents:
diff changeset
1059 *** New sexp diary entry type
Dave Love <fx@gnu.org>
parents:
diff changeset
1060
Dave Love <fx@gnu.org>
parents:
diff changeset
1061 Reminders that apply in the days leading up to an event.
Dave Love <fx@gnu.org>
parents:
diff changeset
1062
Dave Love <fx@gnu.org>
parents:
diff changeset
1063 ** The CC-mode package now provides the default C and C++ modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
1064 See the manual for documentation of its features.
Dave Love <fx@gnu.org>
parents:
diff changeset
1065
Dave Love <fx@gnu.org>
parents:
diff changeset
1066 ** The uniquify package chooses buffer names differently when you
Dave Love <fx@gnu.org>
parents:
diff changeset
1067 visit multiple files with the same name (in different directories).
Dave Love <fx@gnu.org>
parents:
diff changeset
1068
Dave Love <fx@gnu.org>
parents:
diff changeset
1069 ** RMAIL now always uses the movemail program when it renames an
Dave Love <fx@gnu.org>
parents:
diff changeset
1070 inbox file, so that it can interlock properly with the mailer
Dave Love <fx@gnu.org>
parents:
diff changeset
1071 no matter where it is delivering mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
1072
Dave Love <fx@gnu.org>
parents:
diff changeset
1073 ** tex-start-of-header and tex-end-of-header are now regular expressions,
Dave Love <fx@gnu.org>
parents:
diff changeset
1074 not strings.
Dave Love <fx@gnu.org>
parents:
diff changeset
1075
Dave Love <fx@gnu.org>
parents:
diff changeset
1076 ** To enable automatic uncompression of compressed files,
Dave Love <fx@gnu.org>
parents:
diff changeset
1077 type M-x auto-compression-mode. (This command used to be called
Dave Love <fx@gnu.org>
parents:
diff changeset
1078 toggle-auto-compression, but was not documented before.) In Lisp,
Dave Love <fx@gnu.org>
parents:
diff changeset
1079 you can do
Dave Love <fx@gnu.org>
parents:
diff changeset
1080
Dave Love <fx@gnu.org>
parents:
diff changeset
1081 (auto-compression-mode 1)
Dave Love <fx@gnu.org>
parents:
diff changeset
1082
Dave Love <fx@gnu.org>
parents:
diff changeset
1083 to turn the mode on.
Dave Love <fx@gnu.org>
parents:
diff changeset
1084
Dave Love <fx@gnu.org>
parents:
diff changeset
1085 ** The new pc-select package emulates the key bindings for cutting and
Dave Love <fx@gnu.org>
parents:
diff changeset
1086 pasting, and selection of regions, found in Windows, Motif, and the
Dave Love <fx@gnu.org>
parents:
diff changeset
1087 Macintosh.
Dave Love <fx@gnu.org>
parents:
diff changeset
1088
Dave Love <fx@gnu.org>
parents:
diff changeset
1089 ** Help buffers now use a special major mode, Help mode. This mode
Dave Love <fx@gnu.org>
parents:
diff changeset
1090 normally turns on View mode; it also provides a hook, help-mode-hook,
Dave Love <fx@gnu.org>
parents:
diff changeset
1091 which you can use for other customization.
Dave Love <fx@gnu.org>
parents:
diff changeset
1092
Dave Love <fx@gnu.org>
parents:
diff changeset
1093 ** Apropos now uses faces for enhanced legibility. It now describes
Dave Love <fx@gnu.org>
parents:
diff changeset
1094 symbol properties as well as their function definitions and variable
Dave Love <fx@gnu.org>
parents:
diff changeset
1095 values. You can use Mouse-2 or RET to get more information about a
Dave Love <fx@gnu.org>
parents:
diff changeset
1096 function definition, variable, or property.
Dave Love <fx@gnu.org>
parents:
diff changeset
1097
Dave Love <fx@gnu.org>
parents:
diff changeset
1098 ** Font Lock mode
Dave Love <fx@gnu.org>
parents:
diff changeset
1099
Dave Love <fx@gnu.org>
parents:
diff changeset
1100 *** Supports Scheme, TCL and Help modes
Dave Love <fx@gnu.org>
parents:
diff changeset
1101
Dave Love <fx@gnu.org>
parents:
diff changeset
1102 For example, to automatically turn on Font Lock mode in the *Help*
Dave Love <fx@gnu.org>
parents:
diff changeset
1103 buffer, put:
Dave Love <fx@gnu.org>
parents:
diff changeset
1104
Dave Love <fx@gnu.org>
parents:
diff changeset
1105 (add-hook 'help-mode-hook 'turn-on-font-lock)
Dave Love <fx@gnu.org>
parents:
diff changeset
1106
Dave Love <fx@gnu.org>
parents:
diff changeset
1107 in your ~/.emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
1108
Dave Love <fx@gnu.org>
parents:
diff changeset
1109 *** Enhanced fontification
Dave Love <fx@gnu.org>
parents:
diff changeset
1110
Dave Love <fx@gnu.org>
parents:
diff changeset
1111 The structure of font-lock-keywords is extended to allow "anchored" keywords.
Dave Love <fx@gnu.org>
parents:
diff changeset
1112 Typically, a keyword item of font-lock-keywords comprises a regexp to search
Dave Love <fx@gnu.org>
parents:
diff changeset
1113 for and information to specify how the regexp should be highlighted. However,
Dave Love <fx@gnu.org>
parents:
diff changeset
1114 the highlighting information is extended so that it can be another keyword
Dave Love <fx@gnu.org>
parents:
diff changeset
1115 item. This keyword item, its regexp and highlighting information, is processed
Dave Love <fx@gnu.org>
parents:
diff changeset
1116 before resuming with the keyword item of which it is part.
Dave Love <fx@gnu.org>
parents:
diff changeset
1117
Dave Love <fx@gnu.org>
parents:
diff changeset
1118 For example, a typical keyword item might be:
Dave Love <fx@gnu.org>
parents:
diff changeset
1119
Dave Love <fx@gnu.org>
parents:
diff changeset
1120 ("\\<anchor\\>" (0 anchor-face))
Dave Love <fx@gnu.org>
parents:
diff changeset
1121
Dave Love <fx@gnu.org>
parents:
diff changeset
1122 which fontifies each occurrence of the discrete word "anchor" in the value of
Dave Love <fx@gnu.org>
parents:
diff changeset
1123 the variable anchor-face. However, the highlighting information can be used to
Dave Love <fx@gnu.org>
parents:
diff changeset
1124 fontify text that is anchored to the word "anchor". For example:
Dave Love <fx@gnu.org>
parents:
diff changeset
1125
Dave Love <fx@gnu.org>
parents:
diff changeset
1126 ("\\<anchor\\>" (0 anchor-face) ("\\=[ ,]*\\(item\\)" nil nil (1 item-face)))
Dave Love <fx@gnu.org>
parents:
diff changeset
1127
Dave Love <fx@gnu.org>
parents:
diff changeset
1128 which fontifies each occurrence of "anchor" as above, but for each occurrence
Dave Love <fx@gnu.org>
parents:
diff changeset
1129 of "anchor", each occurrence of "item", in any following comma separated list,
Dave Love <fx@gnu.org>
parents:
diff changeset
1130 is fontified in the value of the variable item-face. Thus the "item" text is
Dave Love <fx@gnu.org>
parents:
diff changeset
1131 anchored to the "anchor" text. See the variable documentation for further
Dave Love <fx@gnu.org>
parents:
diff changeset
1132 information.
Dave Love <fx@gnu.org>
parents:
diff changeset
1133
Dave Love <fx@gnu.org>
parents:
diff changeset
1134 This feature is used to extend the level and quality of fontification in a
Dave Love <fx@gnu.org>
parents:
diff changeset
1135 number of modes. For example, C/C++ modes now have level 3 decoration that
Dave Love <fx@gnu.org>
parents:
diff changeset
1136 includes the fontification of variable and function names in declaration lists.
Dave Love <fx@gnu.org>
parents:
diff changeset
1137 In this instance, the "anchor" described in the above example is a type or
Dave Love <fx@gnu.org>
parents:
diff changeset
1138 class name, and an "item" is a variable or function name.
Dave Love <fx@gnu.org>
parents:
diff changeset
1139
Dave Love <fx@gnu.org>
parents:
diff changeset
1140 *** Fontification levels
Dave Love <fx@gnu.org>
parents:
diff changeset
1141
Dave Love <fx@gnu.org>
parents:
diff changeset
1142 The variables font-lock-maximum-decoration and font-lock-maximum-size are
Dave Love <fx@gnu.org>
parents:
diff changeset
1143 extended to specify levels and sizes for specific modes. The variable
Dave Love <fx@gnu.org>
parents:
diff changeset
1144 font-lock-maximum-decoration specifies the preferred level of fontification for
Dave Love <fx@gnu.org>
parents:
diff changeset
1145 modes that provide multiple levels (typically from "subdued" to "gaudy"). The
Dave Love <fx@gnu.org>
parents:
diff changeset
1146 variable font-lock-maximum-size specifies the buffer size for which buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1147 fontification is suppressed when Font Lock mode is turned on (typically because
Dave Love <fx@gnu.org>
parents:
diff changeset
1148 it would take too long).
Dave Love <fx@gnu.org>
parents:
diff changeset
1149
Dave Love <fx@gnu.org>
parents:
diff changeset
1150 These variables can now specify values for individual modes, by supplying
Dave Love <fx@gnu.org>
parents:
diff changeset
1151 lists of mode names and values. For example, to use the above mentioned level
Dave Love <fx@gnu.org>
parents:
diff changeset
1152 3 decoration for buffers in C/C++ modes, and default decoration otherwise, put:
Dave Love <fx@gnu.org>
parents:
diff changeset
1153
Dave Love <fx@gnu.org>
parents:
diff changeset
1154 (setq font-lock-maximum-decoration '((c-mode . 3) (c++-mode . 3)))
Dave Love <fx@gnu.org>
parents:
diff changeset
1155
Dave Love <fx@gnu.org>
parents:
diff changeset
1156 in your ~/.emacs. Maximum buffer size values for individual modes are
Dave Love <fx@gnu.org>
parents:
diff changeset
1157 specified in the same way with the variable font-lock-maximum-size.
Dave Love <fx@gnu.org>
parents:
diff changeset
1158
Dave Love <fx@gnu.org>
parents:
diff changeset
1159 *** Font Lock configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
1160
Dave Love <fx@gnu.org>
parents:
diff changeset
1161 The mechanism to provide default settings for Font Lock mode are the variables
Dave Love <fx@gnu.org>
parents:
diff changeset
1162 font-lock-defaults and font-lock-maximum-decoration. Typically, you should
Dave Love <fx@gnu.org>
parents:
diff changeset
1163 only need to change the value of font-lock-maximum-decoration. However, to
Dave Love <fx@gnu.org>
parents:
diff changeset
1164 support Font Lock mode for buffers in modes that currently do not support Font
Dave Love <fx@gnu.org>
parents:
diff changeset
1165 Lock mode, you should set a buffer local value of font-lock-defaults for that
Dave Love <fx@gnu.org>
parents:
diff changeset
1166 mode, typically via its mode hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
1167
Dave Love <fx@gnu.org>
parents:
diff changeset
1168 These variables are used by Font Lock mode to set the values of the variables
Dave Love <fx@gnu.org>
parents:
diff changeset
1169 font-lock-keywords, font-lock-keywords-only, font-lock-syntax-table,
Dave Love <fx@gnu.org>
parents:
diff changeset
1170 font-lock-beginning-of-syntax-function and font-lock-keywords-case-fold-search.
Dave Love <fx@gnu.org>
parents:
diff changeset
1171
Dave Love <fx@gnu.org>
parents:
diff changeset
1172 You need not set these variables directly, and should not set them yourself
Dave Love <fx@gnu.org>
parents:
diff changeset
1173 since the underlining mechanism may change in future.
Dave Love <fx@gnu.org>
parents:
diff changeset
1174
Dave Love <fx@gnu.org>
parents:
diff changeset
1175 ** Archive mode is now the default mode for various sorts of
Dave Love <fx@gnu.org>
parents:
diff changeset
1176 archive files (files whose names end with .arc, .lzh, .zip, and .zoo).
Dave Love <fx@gnu.org>
parents:
diff changeset
1177
Dave Love <fx@gnu.org>
parents:
diff changeset
1178 ** You can automatically update the years in copyright notice by
Dave Love <fx@gnu.org>
parents:
diff changeset
1179 means of (add-hook 'write-file-hooks 'copyright-update).
Dave Love <fx@gnu.org>
parents:
diff changeset
1180 Optionally it can update the GPL version as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
1181
Dave Love <fx@gnu.org>
parents:
diff changeset
1182 ** Scripts of various languages (Shell, AWK, Perl, makefiles ...) can
Dave Love <fx@gnu.org>
parents:
diff changeset
1183 be automatically provided with a magic number and be made executable
Dave Love <fx@gnu.org>
parents:
diff changeset
1184 by their respective modes under control of various user variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
1185 The mode must call (executable-set-magic "perl") or
Dave Love <fx@gnu.org>
parents:
diff changeset
1186 (executable-set-magic "make" "-f"). The latter for example has no
Dave Love <fx@gnu.org>
parents:
diff changeset
1187 effect on [Mm]akefile.
Dave Love <fx@gnu.org>
parents:
diff changeset
1188
Dave Love <fx@gnu.org>
parents:
diff changeset
1189 ** Shell script mode now supports over 15 different shells. The new
Dave Love <fx@gnu.org>
parents:
diff changeset
1190 command C-c ! executes the region, and optionally beginning of script
Dave Love <fx@gnu.org>
parents:
diff changeset
1191 as well, by passing them to the shell.
Dave Love <fx@gnu.org>
parents:
diff changeset
1192
Dave Love <fx@gnu.org>
parents:
diff changeset
1193 Cases such as `sh' being a `bash' are now accounted for.
Dave Love <fx@gnu.org>
parents:
diff changeset
1194 Fontification now also does variables, the magic number and all
Dave Love <fx@gnu.org>
parents:
diff changeset
1195 builtin commands. Shell script mode no longer mingles `tab-width' and
Dave Love <fx@gnu.org>
parents:
diff changeset
1196 indentation style. The variable `sh-tab-width' has been renamed to
Dave Love <fx@gnu.org>
parents:
diff changeset
1197 `sh-indentation'. Empty lines are now indented like previous
Dave Love <fx@gnu.org>
parents:
diff changeset
1198 non-empty line, rather than just previous line.
Dave Love <fx@gnu.org>
parents:
diff changeset
1199
Dave Love <fx@gnu.org>
parents:
diff changeset
1200 The annoying $ variable prompting has been eliminated. Instead, shell
Dave Love <fx@gnu.org>
parents:
diff changeset
1201 script mode uses `comint-dynamic-completion' for commands, variables
Dave Love <fx@gnu.org>
parents:
diff changeset
1202 and filenames.
Dave Love <fx@gnu.org>
parents:
diff changeset
1203
Dave Love <fx@gnu.org>
parents:
diff changeset
1204 ** Two-column mode now automatically scrolls both buffers together,
Dave Love <fx@gnu.org>
parents:
diff changeset
1205 which makes it possible to eliminate the special scrolling commands
Dave Love <fx@gnu.org>
parents:
diff changeset
1206 that used to do so.
Dave Love <fx@gnu.org>
parents:
diff changeset
1207
Dave Love <fx@gnu.org>
parents:
diff changeset
1208 The commands that operate in two-column mode are no longer bound to
Dave Love <fx@gnu.org>
parents:
diff changeset
1209 keys outside that mode. f2 o will now position at the same point in
Dave Love <fx@gnu.org>
parents:
diff changeset
1210 associated buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1211
Dave Love <fx@gnu.org>
parents:
diff changeset
1212 the new command f2 RET inserts a newline in both buffers, at point and
Dave Love <fx@gnu.org>
parents:
diff changeset
1213 at the corresponding position in the associated buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1214
Dave Love <fx@gnu.org>
parents:
diff changeset
1215 ** Skeleton commands now work smoothly as abbrev definitions. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1216 element < no longer exists, ' is a new element.
Dave Love <fx@gnu.org>
parents:
diff changeset
1217
Dave Love <fx@gnu.org>
parents:
diff changeset
1218 ** The autoinsert insert facility for prefilling empty files as soon
Dave Love <fx@gnu.org>
parents:
diff changeset
1219 as they are found has been extended to accommodate skeletons or calling
Dave Love <fx@gnu.org>
parents:
diff changeset
1220 functions. See the function auto-insert.
Dave Love <fx@gnu.org>
parents:
diff changeset
1221
Dave Love <fx@gnu.org>
parents:
diff changeset
1222 ** TPU-edt Changes
Dave Love <fx@gnu.org>
parents:
diff changeset
1223
Dave Love <fx@gnu.org>
parents:
diff changeset
1224 Loading tpu-edt no longer turns on tpu-edt mode. In fact, it is no
Dave Love <fx@gnu.org>
parents:
diff changeset
1225 longer necessary to explicitly load tpu-edt. All you need to do to
Dave Love <fx@gnu.org>
parents:
diff changeset
1226 turn on tpu-edt is run the tpu-edt function. Here's how to run
Dave Love <fx@gnu.org>
parents:
diff changeset
1227 tpu-edt instead of loading the file:
Dave Love <fx@gnu.org>
parents:
diff changeset
1228
Dave Love <fx@gnu.org>
parents:
diff changeset
1229 Running Emacs: Type emacs -f tpu-edt
Dave Love <fx@gnu.org>
parents:
diff changeset
1230 not emacs -l tpu-edt
Dave Love <fx@gnu.org>
parents:
diff changeset
1231
Dave Love <fx@gnu.org>
parents:
diff changeset
1232 Within Emacs: Type M-x tpu-edt <ret>
Dave Love <fx@gnu.org>
parents:
diff changeset
1233 not M-x load-library <ret> tpu-edt <ret>
Dave Love <fx@gnu.org>
parents:
diff changeset
1234
Dave Love <fx@gnu.org>
parents:
diff changeset
1235 In .emacs: Use (tpu-edt)
Dave Love <fx@gnu.org>
parents:
diff changeset
1236 not (load "tpu-edt")
Dave Love <fx@gnu.org>
parents:
diff changeset
1237
Dave Love <fx@gnu.org>
parents:
diff changeset
1238 The default name of the tpu-edt X key definition file has changed from
Dave Love <fx@gnu.org>
parents:
diff changeset
1239 ~/.tpu-gnu-keys to ~/.tpu-keys. If you don't rename the file yourself,
Dave Love <fx@gnu.org>
parents:
diff changeset
1240 tpu-edt will offer to rename it the first time you invoke it under
Dave Love <fx@gnu.org>
parents:
diff changeset
1241 x-windows.
Dave Love <fx@gnu.org>
parents:
diff changeset
1242
Dave Love <fx@gnu.org>
parents:
diff changeset
1243 ** MS-DOS Enhancements:
Dave Love <fx@gnu.org>
parents:
diff changeset
1244
Dave Love <fx@gnu.org>
parents:
diff changeset
1245 *** Better mouse control by adding the following functions [in dosfns.c]
Dave Love <fx@gnu.org>
parents:
diff changeset
1246 msdos-mouse-enable, msdos-mouse-disable, msdos-mouse-init.
Dave Love <fx@gnu.org>
parents:
diff changeset
1247
Dave Love <fx@gnu.org>
parents:
diff changeset
1248 *** If another foreground/background color than the default is setup in
Dave Love <fx@gnu.org>
parents:
diff changeset
1249 your ~/_emacs, then the screen briefly flickers with the default
Dave Love <fx@gnu.org>
parents:
diff changeset
1250 colors before changing to the colors you have specified. To avoid
Dave Love <fx@gnu.org>
parents:
diff changeset
1251 this, the EMACSCOLORS environment variable exists. It shall be
Dave Love <fx@gnu.org>
parents:
diff changeset
1252 defined as a string with the following elements:
Dave Love <fx@gnu.org>
parents:
diff changeset
1253
Dave Love <fx@gnu.org>
parents:
diff changeset
1254 set EMACSCOLORS=fb;fb
Dave Love <fx@gnu.org>
parents:
diff changeset
1255
Dave Love <fx@gnu.org>
parents:
diff changeset
1256 The first set of "fb" defines the initial foreground and background
Dave Love <fx@gnu.org>
parents:
diff changeset
1257 colors using standard dos color numbers (0=black,.., 7=white).
Dave Love <fx@gnu.org>
parents:
diff changeset
1258 If specified, the second set of "fb" defines the colors which are
Dave Love <fx@gnu.org>
parents:
diff changeset
1259 restored when you leave emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
1260
Dave Love <fx@gnu.org>
parents:
diff changeset
1261 *** The new SUSPEND environment variable can now be set as the shell to
Dave Love <fx@gnu.org>
parents:
diff changeset
1262 use when suspending emacs. This can be used to override the stupid
Dave Love <fx@gnu.org>
parents:
diff changeset
1263 limitation on the environment of sub-shells in MS-DOS (they are just
Dave Love <fx@gnu.org>
parents:
diff changeset
1264 large enough to hold the currently defined variables, not leaving
Dave Love <fx@gnu.org>
parents:
diff changeset
1265 room for more); to overcome this limitation, add this to autoexec.bat:
Dave Love <fx@gnu.org>
parents:
diff changeset
1266
Dave Love <fx@gnu.org>
parents:
diff changeset
1267 set SUSPEND=%COMSPEC% /E:2000
Dave Love <fx@gnu.org>
parents:
diff changeset
1268
Dave Love <fx@gnu.org>
parents:
diff changeset
1269 ** The escape character can now be displayed on X frames. Try
Dave Love <fx@gnu.org>
parents:
diff changeset
1270 this:
Dave Love <fx@gnu.org>
parents:
diff changeset
1271 (aset standard-display-table 27 (vector 27))
Dave Love <fx@gnu.org>
parents:
diff changeset
1272 after first creating a display table (you can do that by loading
Dave Love <fx@gnu.org>
parents:
diff changeset
1273 the disp-table library).
Dave Love <fx@gnu.org>
parents:
diff changeset
1274
Dave Love <fx@gnu.org>
parents:
diff changeset
1275 ** The new command-line option --eval specifies an expression to evaluate
Dave Love <fx@gnu.org>
parents:
diff changeset
1276 from the command line.
Dave Love <fx@gnu.org>
parents:
diff changeset
1277
Dave Love <fx@gnu.org>
parents:
diff changeset
1278 ** etags has now the ability to tag Perl files. They are recognised
Dave Love <fx@gnu.org>
parents:
diff changeset
1279 either by the .pm and .pl suffixes or by a first line which starts
Dave Love <fx@gnu.org>
parents:
diff changeset
1280 with `#!' and specifies a Perl interpreter. The tagged lines are
Dave Love <fx@gnu.org>
parents:
diff changeset
1281 those beginning with the `sub' keyword.
Dave Love <fx@gnu.org>
parents:
diff changeset
1282
Dave Love <fx@gnu.org>
parents:
diff changeset
1283 New suffixes recognised are .hpp for C++; .f90 for Fortran; .bib,
Dave Love <fx@gnu.org>
parents:
diff changeset
1284 .ltx, .TeX for TeX (.bbl, .dtx removed); .ml for Lisp; .prolog for
Dave Love <fx@gnu.org>
parents:
diff changeset
1285 prolog (.pl is now Perl).
Dave Love <fx@gnu.org>
parents:
diff changeset
1286
Dave Love <fx@gnu.org>
parents:
diff changeset
1287 ** The files etc/termcap.dat and etc/termcap.ucb have been replaced
Dave Love <fx@gnu.org>
parents:
diff changeset
1288 with a new, merged, and much more comprehensive termcap file. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1289 new file should include all the special entries from the old one.
Dave Love <fx@gnu.org>
parents:
diff changeset
1290 This new file is under active development as part of the ncurses
Dave Love <fx@gnu.org>
parents:
diff changeset
1291 project. If you have any questions about this file, or problems with
Dave Love <fx@gnu.org>
parents:
diff changeset
1292 an entry in it, email terminfo@ccil.org.
Dave Love <fx@gnu.org>
parents:
diff changeset
1293
Dave Love <fx@gnu.org>
parents:
diff changeset
1294 * Lisp changes in Emacs 19.30.
Dave Love <fx@gnu.org>
parents:
diff changeset
1295
Dave Love <fx@gnu.org>
parents:
diff changeset
1296 ** New Data Types
Dave Love <fx@gnu.org>
parents:
diff changeset
1297
Dave Love <fx@gnu.org>
parents:
diff changeset
1298 *** There is a new data type called a char-table which is an array
Dave Love <fx@gnu.org>
parents:
diff changeset
1299 indexed by a character. Currently this is mostly equivalent to a
Dave Love <fx@gnu.org>
parents:
diff changeset
1300 vector of length 256, but in the future, when a wider character set is
Dave Love <fx@gnu.org>
parents:
diff changeset
1301 in use, it will be different. To create one, call
Dave Love <fx@gnu.org>
parents:
diff changeset
1302 (make-char-table SUBTYPE INITIAL-VALUE)
Dave Love <fx@gnu.org>
parents:
diff changeset
1303
Dave Love <fx@gnu.org>
parents:
diff changeset
1304 SUBTYPE is a symbol that identifies the specific use of this
Dave Love <fx@gnu.org>
parents:
diff changeset
1305 character table. It can be any of these values:
Dave Love <fx@gnu.org>
parents:
diff changeset
1306
Dave Love <fx@gnu.org>
parents:
diff changeset
1307 syntax-table
Dave Love <fx@gnu.org>
parents:
diff changeset
1308 display-table
Dave Love <fx@gnu.org>
parents:
diff changeset
1309 keyboard-translate-table
Dave Love <fx@gnu.org>
parents:
diff changeset
1310 case-table
Dave Love <fx@gnu.org>
parents:
diff changeset
1311
Dave Love <fx@gnu.org>
parents:
diff changeset
1312 The function `char-table-subtype' returns the subtype of a char-table.
Dave Love <fx@gnu.org>
parents:
diff changeset
1313 You cannot alter the subtype of an existing char-table.
Dave Love <fx@gnu.org>
parents:
diff changeset
1314
Dave Love <fx@gnu.org>
parents:
diff changeset
1315 A char-table has an element for each character code. It also has some
Dave Love <fx@gnu.org>
parents:
diff changeset
1316 "extra slots". The number of extra slots depends on the subtype and
Dave Love <fx@gnu.org>
parents:
diff changeset
1317 their use depends on the subtype. (Each subtype symbol has a
Dave Love <fx@gnu.org>
parents:
diff changeset
1318 `char-table-extra-slots' property that says how many extra slots to
Dave Love <fx@gnu.org>
parents:
diff changeset
1319 make.) Use (char-table-extra-slot TABLE N) to access extra slot N and
Dave Love <fx@gnu.org>
parents:
diff changeset
1320 (set-char-table-extra-slot TABLE N VALUE) to store VALUE in slot N.
Dave Love <fx@gnu.org>
parents:
diff changeset
1321
Dave Love <fx@gnu.org>
parents:
diff changeset
1322 A char-table T can have a parent, which should be another char-table
Dave Love <fx@gnu.org>
parents:
diff changeset
1323 P. If you look for the value in T for character C, and the table T
Dave Love <fx@gnu.org>
parents:
diff changeset
1324 actually holds nil, P's element for character C is used instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
1325 The functions `char-table-parent' and `set-char-table-parent'
Dave Love <fx@gnu.org>
parents:
diff changeset
1326 let you read or set the parent of a char-table.
Dave Love <fx@gnu.org>
parents:
diff changeset
1327
Dave Love <fx@gnu.org>
parents:
diff changeset
1328 To scan all the values in a char-table, do not try to loop through all
Dave Love <fx@gnu.org>
parents:
diff changeset
1329 possible character codes. That would work for now, but will not work
Dave Love <fx@gnu.org>
parents:
diff changeset
1330 in the future. Instead, call map-char-table. (map-char-table
Dave Love <fx@gnu.org>
parents:
diff changeset
1331 FUNCTION TABLE) calls FUNCTION once for each character or character
Dave Love <fx@gnu.org>
parents:
diff changeset
1332 set that has a distinct value in TABLE. FUNCTION gets two arguments,
Dave Love <fx@gnu.org>
parents:
diff changeset
1333 RANGE and VALUE. RANGE specifies a range of TABLE that has one
Dave Love <fx@gnu.org>
parents:
diff changeset
1334 uniform value, and VALUE is the value in TABLE for that range.
Dave Love <fx@gnu.org>
parents:
diff changeset
1335
Dave Love <fx@gnu.org>
parents:
diff changeset
1336 Currently, RANGE is always a vector containing a single character
Dave Love <fx@gnu.org>
parents:
diff changeset
1337 and it refers to that character alone. In the future, other kinds
Dave Love <fx@gnu.org>
parents:
diff changeset
1338 of ranges will occur. You can set the value for a given range
Dave Love <fx@gnu.org>
parents:
diff changeset
1339 with (set-char-table-range TABLE RANGE VALUE) and examine the value
Dave Love <fx@gnu.org>
parents:
diff changeset
1340 for a range with (char-table-range TABLE RANGE).
Dave Love <fx@gnu.org>
parents:
diff changeset
1341
Dave Love <fx@gnu.org>
parents:
diff changeset
1342 *** Syntax tables are now represented as char-tables.
Dave Love <fx@gnu.org>
parents:
diff changeset
1343 All syntax tables other than the standard syntax table
Dave Love <fx@gnu.org>
parents:
diff changeset
1344 normally have the standard syntax table as their parent.
Dave Love <fx@gnu.org>
parents:
diff changeset
1345 Their subtype is `syntax-table'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1346
Dave Love <fx@gnu.org>
parents:
diff changeset
1347 *** Display tables are now represented as char-tables.
Dave Love <fx@gnu.org>
parents:
diff changeset
1348 Their subtype is `display-table'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1349
Dave Love <fx@gnu.org>
parents:
diff changeset
1350 *** Case tables are now represented as char-tables.
Dave Love <fx@gnu.org>
parents:
diff changeset
1351 Their subtype is `case-table'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1352
Dave Love <fx@gnu.org>
parents:
diff changeset
1353 *** The value of keyboard-translate-table may now be a char-table
Dave Love <fx@gnu.org>
parents:
diff changeset
1354 instead of a string. Normally the char-tables used for this purpose
Dave Love <fx@gnu.org>
parents:
diff changeset
1355 have the subtype `keyboard-translate-table', but that is not required.
Dave Love <fx@gnu.org>
parents:
diff changeset
1356
Dave Love <fx@gnu.org>
parents:
diff changeset
1357 *** A new data type called a bool-vector is a vector of values
Dave Love <fx@gnu.org>
parents:
diff changeset
1358 that are either t or nil. To create one, do
Dave Love <fx@gnu.org>
parents:
diff changeset
1359 (make-bool-vector LENGTH INITIAL-VALUE)
Dave Love <fx@gnu.org>
parents:
diff changeset
1360
Dave Love <fx@gnu.org>
parents:
diff changeset
1361 ** You can now specify, for each marker, how it should relocate when
Dave Love <fx@gnu.org>
parents:
diff changeset
1362 text is inserted at the place where the marker points. This is called
Dave Love <fx@gnu.org>
parents:
diff changeset
1363 the "insertion type" of the marker.
Dave Love <fx@gnu.org>
parents:
diff changeset
1364
Dave Love <fx@gnu.org>
parents:
diff changeset
1365 To set the insertion type, do (set-marker-insertion-type MARKER TYPE).
Dave Love <fx@gnu.org>
parents:
diff changeset
1366 If TYPE is t, it means the marker advances when text is inserted. If
Dave Love <fx@gnu.org>
parents:
diff changeset
1367 TYPE is nil, it means the marker does not advance. (In Emacs 19.29,
Dave Love <fx@gnu.org>
parents:
diff changeset
1368 markers did not advance.)
Dave Love <fx@gnu.org>
parents:
diff changeset
1369
Dave Love <fx@gnu.org>
parents:
diff changeset
1370 The function marker-insertion-type reports the insertion type of a
Dave Love <fx@gnu.org>
parents:
diff changeset
1371 given marker. The function copy-marker takes a second argument TYPE
Dave Love <fx@gnu.org>
parents:
diff changeset
1372 which specifies the insertion type of the new copied marker.
Dave Love <fx@gnu.org>
parents:
diff changeset
1373
Dave Love <fx@gnu.org>
parents:
diff changeset
1374 ** When you create an overlay, you can specify the insertion type of
Dave Love <fx@gnu.org>
parents:
diff changeset
1375 the beginning and of the end. To do this, you can use two new
Dave Love <fx@gnu.org>
parents:
diff changeset
1376 arguments to make-overlay: front-advance and rear-advance.
Dave Love <fx@gnu.org>
parents:
diff changeset
1377
Dave Love <fx@gnu.org>
parents:
diff changeset
1378 ** The new function overlays-in returns a list of the overlays that
Dave Love <fx@gnu.org>
parents:
diff changeset
1379 overlap a specified range of the buffer. The returned list includes
Dave Love <fx@gnu.org>
parents:
diff changeset
1380 empty overlays at the beginning of this range, as well as within the
Dave Love <fx@gnu.org>
parents:
diff changeset
1381 range.
Dave Love <fx@gnu.org>
parents:
diff changeset
1382
Dave Love <fx@gnu.org>
parents:
diff changeset
1383 ** The new hook window-scroll-functions is run when a window has been
Dave Love <fx@gnu.org>
parents:
diff changeset
1384 scrolled. The functions in this list are called just before
Dave Love <fx@gnu.org>
parents:
diff changeset
1385 redisplay, after the new window-start has been computed. Each function
Dave Love <fx@gnu.org>
parents:
diff changeset
1386 is called with two arguments--the window that has been scrolled, and its
Dave Love <fx@gnu.org>
parents:
diff changeset
1387 new window-start position.
Dave Love <fx@gnu.org>
parents:
diff changeset
1388
Dave Love <fx@gnu.org>
parents:
diff changeset
1389 This hook is useful for on-the-fly fontification and other features
Dave Love <fx@gnu.org>
parents:
diff changeset
1390 that affect how the redisplayed text will look when it is displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1391
Dave Love <fx@gnu.org>
parents:
diff changeset
1392 The window-end value of the window is not valid when these functions
Dave Love <fx@gnu.org>
parents:
diff changeset
1393 are called. The computation of window-end is byproduct of actual
Dave Love <fx@gnu.org>
parents:
diff changeset
1394 redisplay of the window contents, which means it has not yet happened
Dave Love <fx@gnu.org>
parents:
diff changeset
1395 when the hook is run. Computing window-end specially in advance for
Dave Love <fx@gnu.org>
parents:
diff changeset
1396 the sake of these functions would cause a slowdown.
Dave Love <fx@gnu.org>
parents:
diff changeset
1397
Dave Love <fx@gnu.org>
parents:
diff changeset
1398 The hook functions can determine where the text on the window will end
Dave Love <fx@gnu.org>
parents:
diff changeset
1399 by calling vertical-motion starting with the window-start position.
Dave Love <fx@gnu.org>
parents:
diff changeset
1400
Dave Love <fx@gnu.org>
parents:
diff changeset
1401 ** The new hook redisplay-end-trigger-functions is run whenever
Dave Love <fx@gnu.org>
parents:
diff changeset
1402 redisplay in window uses text that extends past a specified end
Dave Love <fx@gnu.org>
parents:
diff changeset
1403 trigger position. You set the end trigger position with the function
Dave Love <fx@gnu.org>
parents:
diff changeset
1404 set-window-redisplay-end-trigger. The functions are called with two
Dave Love <fx@gnu.org>
parents:
diff changeset
1405 arguments: the window, and the end trigger position. Storing nil for
Dave Love <fx@gnu.org>
parents:
diff changeset
1406 the end trigger position turns off the feature, and the trigger value
Dave Love <fx@gnu.org>
parents:
diff changeset
1407 is automatically reset to nil just after the hook is run.
Dave Love <fx@gnu.org>
parents:
diff changeset
1408
Dave Love <fx@gnu.org>
parents:
diff changeset
1409 You can use the function window-redisplay-end-trigger to read a
Dave Love <fx@gnu.org>
parents:
diff changeset
1410 window's current end trigger value.
Dave Love <fx@gnu.org>
parents:
diff changeset
1411
Dave Love <fx@gnu.org>
parents:
diff changeset
1412 ** The new function insert-file-contents-literally inserts the
Dave Love <fx@gnu.org>
parents:
diff changeset
1413 contents of a file without any character set translation or decoding.
Dave Love <fx@gnu.org>
parents:
diff changeset
1414
Dave Love <fx@gnu.org>
parents:
diff changeset
1415 ** The new function safe-length computes the length of a list.
Dave Love <fx@gnu.org>
parents:
diff changeset
1416 It never gets an error--it treats any non-list like nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
1417 If given a circular list, it returns an upper bound for the number
Dave Love <fx@gnu.org>
parents:
diff changeset
1418 of elements before the circularity.
Dave Love <fx@gnu.org>
parents:
diff changeset
1419
Dave Love <fx@gnu.org>
parents:
diff changeset
1420 ** replace-match now takes a fifth argument, SUBEXP. If SUBEXP is
Dave Love <fx@gnu.org>
parents:
diff changeset
1421 non-nil, that says to replace just subexpression number SUBEXP of the
Dave Love <fx@gnu.org>
parents:
diff changeset
1422 regexp that was matched, not the entire match. For example, after
Dave Love <fx@gnu.org>
parents:
diff changeset
1423 matching `foo \(ba*r\)' calling replace-match with 1 as SUBEXP means
Dave Love <fx@gnu.org>
parents:
diff changeset
1424 to replace just the text that matched `\(ba*r\)'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1425
Dave Love <fx@gnu.org>
parents:
diff changeset
1426 ** The new keymap special-event-map defines bindings for certain
Dave Love <fx@gnu.org>
parents:
diff changeset
1427 events that should be handled at a very low level--as soon as they
Dave Love <fx@gnu.org>
parents:
diff changeset
1428 are read. The read-event function processes these events itself,
Dave Love <fx@gnu.org>
parents:
diff changeset
1429 and never returns them.
Dave Love <fx@gnu.org>
parents:
diff changeset
1430
Dave Love <fx@gnu.org>
parents:
diff changeset
1431 Events that are handled in this way do not echo, they are never
Dave Love <fx@gnu.org>
parents:
diff changeset
1432 grouped into key sequences, and they never appear in the value of
Dave Love <fx@gnu.org>
parents:
diff changeset
1433 last-command-event or (this-command-keys). They do not discard a
Dave Love <fx@gnu.org>
parents:
diff changeset
1434 numeric argument, they cannot be unread with unread-command-events,
Dave Love <fx@gnu.org>
parents:
diff changeset
1435 they may not appear in a keyboard macro, and they are not recorded
Dave Love <fx@gnu.org>
parents:
diff changeset
1436 in a keyboard macro while you are defining one.
Dave Love <fx@gnu.org>
parents:
diff changeset
1437
Dave Love <fx@gnu.org>
parents:
diff changeset
1438 These events do, however, appear in last-input-event immediately after
Dave Love <fx@gnu.org>
parents:
diff changeset
1439 they are read, and this is the way for the event's definition to find
Dave Love <fx@gnu.org>
parents:
diff changeset
1440 the actual event.
Dave Love <fx@gnu.org>
parents:
diff changeset
1441
Dave Love <fx@gnu.org>
parents:
diff changeset
1442 The events types iconify-frame, make-frame-visible and delete-frame
Dave Love <fx@gnu.org>
parents:
diff changeset
1443 are normally handled in this way.
Dave Love <fx@gnu.org>
parents:
diff changeset
1444
Dave Love <fx@gnu.org>
parents:
diff changeset
1445 ** encode-time now supports simple date arithmetic by means of
Dave Love <fx@gnu.org>
parents:
diff changeset
1446 out-of-range values for its SEC, MINUTE, HOUR, DAY, and MONTH
Dave Love <fx@gnu.org>
parents:
diff changeset
1447 arguments; for example, day 0 means the day preceding the given month.
Dave Love <fx@gnu.org>
parents:
diff changeset
1448 Also, the ZONE argument can now be a TZ-style string.
Dave Love <fx@gnu.org>
parents:
diff changeset
1449
Dave Love <fx@gnu.org>
parents:
diff changeset
1450 ** command-execute and call-interactively now accept an optional third
Dave Love <fx@gnu.org>
parents:
diff changeset
1451 argument KEYS. If specified and non-nil, this specifies the key
Dave Love <fx@gnu.org>
parents:
diff changeset
1452 sequence containing the events that were used to invoke the command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1453
Dave Love <fx@gnu.org>
parents:
diff changeset
1454 ** The environment variable NAME, if set, now specifies the value of
Dave Love <fx@gnu.org>
parents:
diff changeset
1455 (user-full-name), when Emacs starts up.
Dave Love <fx@gnu.org>
parents:
diff changeset
1456
Dave Love <fx@gnu.org>
parents:
diff changeset
1457 * User Editing Changes in Emacs 19.29
Dave Love <fx@gnu.org>
parents:
diff changeset
1458
Dave Love <fx@gnu.org>
parents:
diff changeset
1459 ** If you run out of memory.
Dave Love <fx@gnu.org>
parents:
diff changeset
1460
Dave Love <fx@gnu.org>
parents:
diff changeset
1461 If you get the error message "Virtual memory exhausted", type C-x s.
Dave Love <fx@gnu.org>
parents:
diff changeset
1462 That way of saving files has the least additional memory needs. Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
1463 19.29 keeps a reserve of memory which it makes available when this
Dave Love <fx@gnu.org>
parents:
diff changeset
1464 error happens; that is to ensure that C-x s can complete its work.
Dave Love <fx@gnu.org>
parents:
diff changeset
1465
Dave Love <fx@gnu.org>
parents:
diff changeset
1466 Once you have saved your data, you can exit and restart Emacs, or use
Dave Love <fx@gnu.org>
parents:
diff changeset
1467 M-x kill-some-buffers to free up space. If you kill buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
1468 containing a substantial amount of text, you can go on editing.
Dave Love <fx@gnu.org>
parents:
diff changeset
1469
Dave Love <fx@gnu.org>
parents:
diff changeset
1470 Do not use M-x buffer-menu to save or kill buffers when you are out of
Dave Love <fx@gnu.org>
parents:
diff changeset
1471 memory, because that needs a fair amount memory itself and you may not
Dave Love <fx@gnu.org>
parents:
diff changeset
1472 have enough to get it started.
Dave Love <fx@gnu.org>
parents:
diff changeset
1473
Dave Love <fx@gnu.org>
parents:
diff changeset
1474 ** The format of compiled files has changed incompatibly.
Dave Love <fx@gnu.org>
parents:
diff changeset
1475
Dave Love <fx@gnu.org>
parents:
diff changeset
1476 Byte-compiled files made with Emacs 19.29 normally use a new format
Dave Love <fx@gnu.org>
parents:
diff changeset
1477 that will not work in older Emacs versions. You can compile files
Dave Love <fx@gnu.org>
parents:
diff changeset
1478 in the old format if you wish; see "Changes in compilation," below.
Dave Love <fx@gnu.org>
parents:
diff changeset
1479
Dave Love <fx@gnu.org>
parents:
diff changeset
1480 ** Emacs 19.29 supports the DEC Alpha.
Dave Love <fx@gnu.org>
parents:
diff changeset
1481
Dave Love <fx@gnu.org>
parents:
diff changeset
1482 ** Emacs runs on Windows NT.
Dave Love <fx@gnu.org>
parents:
diff changeset
1483
Dave Love <fx@gnu.org>
parents:
diff changeset
1484 This port does not yet support windowing features. It works like a
Dave Love <fx@gnu.org>
parents:
diff changeset
1485 text-only terminal, but it does support a mouse.
Dave Love <fx@gnu.org>
parents:
diff changeset
1486
Dave Love <fx@gnu.org>
parents:
diff changeset
1487 In general, support for non-GNU-like operating systems is not a high
Dave Love <fx@gnu.org>
parents:
diff changeset
1488 priority for the GNU project. We merged in the support for Windows NT
Dave Love <fx@gnu.org>
parents:
diff changeset
1489 because that system is expected to be very widely used.
Dave Love <fx@gnu.org>
parents:
diff changeset
1490
Dave Love <fx@gnu.org>
parents:
diff changeset
1491 ** Emacs supports Motif widgets.
Dave Love <fx@gnu.org>
parents:
diff changeset
1492
Dave Love <fx@gnu.org>
parents:
diff changeset
1493 You can build Emacs with Motif widgets by specifying --with-x-toolkit=motif
Dave Love <fx@gnu.org>
parents:
diff changeset
1494 when you run configure.
Dave Love <fx@gnu.org>
parents:
diff changeset
1495
Dave Love <fx@gnu.org>
parents:
diff changeset
1496 Motif defines collections of windows called "tab groups", and uses the
Dave Love <fx@gnu.org>
parents:
diff changeset
1497 tab key and the cursor keys to move between windows in a tab group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1498 Emacs naturally does not support this--it has other uses for the tab
Dave Love <fx@gnu.org>
parents:
diff changeset
1499 key and cursor keys. Emacs does not support Motif accelerators either,
Dave Love <fx@gnu.org>
parents:
diff changeset
1500 because it uses its normal keymap event binding features.
Dave Love <fx@gnu.org>
parents:
diff changeset
1501
Dave Love <fx@gnu.org>
parents:
diff changeset
1502 We give higher priority to operation with a free widget set than to
Dave Love <fx@gnu.org>
parents:
diff changeset
1503 operation with a proprietary one.
Dave Love <fx@gnu.org>
parents:
diff changeset
1504
Dave Love <fx@gnu.org>
parents:
diff changeset
1505 ** If Emacs or the computer crashes, you can recover all the files you
Dave Love <fx@gnu.org>
parents:
diff changeset
1506 were editing from their auto save files by typing M-x recover-session.
Dave Love <fx@gnu.org>
parents:
diff changeset
1507 This first shows you a list of recorded interrupted sessions. Move
Dave Love <fx@gnu.org>
parents:
diff changeset
1508 point to the one you choose, and type C-c C-c.
Dave Love <fx@gnu.org>
parents:
diff changeset
1509
Dave Love <fx@gnu.org>
parents:
diff changeset
1510 Then recover-session asks about each of the files that were being
Dave Love <fx@gnu.org>
parents:
diff changeset
1511 edited during that session, asking whether to recover that file. If
Dave Love <fx@gnu.org>
parents:
diff changeset
1512 you answer y, it calls recover-file, which works in its normal
Dave Love <fx@gnu.org>
parents:
diff changeset
1513 fashion. It shows the dates of the original file and its auto-save
Dave Love <fx@gnu.org>
parents:
diff changeset
1514 file and asks once again whether to recover that file.
Dave Love <fx@gnu.org>
parents:
diff changeset
1515
Dave Love <fx@gnu.org>
parents:
diff changeset
1516 When recover-session is done, the files you've chosen to recover
Dave Love <fx@gnu.org>
parents:
diff changeset
1517 are present in Emacs buffers. You should then save them.
Dave Love <fx@gnu.org>
parents:
diff changeset
1518 Only this--saving them--updates the files themselves.
Dave Love <fx@gnu.org>
parents:
diff changeset
1519
Dave Love <fx@gnu.org>
parents:
diff changeset
1520 ** Menu bar menus now stay up if you click on the menu bar item and
Dave Love <fx@gnu.org>
parents:
diff changeset
1521 release the mouse button within a certain amount of time. This is in
Dave Love <fx@gnu.org>
parents:
diff changeset
1522 the X Toolkit version.
Dave Love <fx@gnu.org>
parents:
diff changeset
1523
Dave Love <fx@gnu.org>
parents:
diff changeset
1524 ** The menu bar menus have been rearranged and split up to make for a
Dave Love <fx@gnu.org>
parents:
diff changeset
1525 better organization. Two new menu bar menus, Tools and Search,
Dave Love <fx@gnu.org>
parents:
diff changeset
1526 contain items that were formerly in the Files and Edit menus, as well
Dave Love <fx@gnu.org>
parents:
diff changeset
1527 as some that did not exist in the menu bar menus before.
Dave Love <fx@gnu.org>
parents:
diff changeset
1528
Dave Love <fx@gnu.org>
parents:
diff changeset
1529 ** Emacs can now display on more than one X display at the same time.
Dave Love <fx@gnu.org>
parents:
diff changeset
1530 Use the command make-frame-on-display to create a frame, specifying
Dave Love <fx@gnu.org>
parents:
diff changeset
1531 which display to use.
Dave Love <fx@gnu.org>
parents:
diff changeset
1532
Dave Love <fx@gnu.org>
parents:
diff changeset
1533 ** M-x talk-connect sets up a multi-user talk connection
Dave Love <fx@gnu.org>
parents:
diff changeset
1534 via Emacs. Specify the X display of the person you want to talk to.
Dave Love <fx@gnu.org>
parents:
diff changeset
1535 You can talk to any number of people (within reason) by using
Dave Love <fx@gnu.org>
parents:
diff changeset
1536 this command repeatedly to specify different people.
Dave Love <fx@gnu.org>
parents:
diff changeset
1537
Dave Love <fx@gnu.org>
parents:
diff changeset
1538 Emacs does not make a fuss about security; the people who you talk to
Dave Love <fx@gnu.org>
parents:
diff changeset
1539 can use all Emacs features, including visiting and editing files. If
Dave Love <fx@gnu.org>
parents:
diff changeset
1540 this frightens you, don't use M-x talk-connect.
Dave Love <fx@gnu.org>
parents:
diff changeset
1541
Dave Love <fx@gnu.org>
parents:
diff changeset
1542 ** The range of integer values is now at least 2**28 on all machines.
Dave Love <fx@gnu.org>
parents:
diff changeset
1543 This means the maximum size of a buffer is at least 2**27-1,
Dave Love <fx@gnu.org>
parents:
diff changeset
1544 or 134,217,727.
Dave Love <fx@gnu.org>
parents:
diff changeset
1545
Dave Love <fx@gnu.org>
parents:
diff changeset
1546 ** When you start Emacs, you can now specify option names in
Dave Love <fx@gnu.org>
parents:
diff changeset
1547 long GNU form (starting with `--') and you can abbreviate the names.
Dave Love <fx@gnu.org>
parents:
diff changeset
1548
Dave Love <fx@gnu.org>
parents:
diff changeset
1549 You can now specify the options in any order.
Dave Love <fx@gnu.org>
parents:
diff changeset
1550 The previous requirements about the order of options
Dave Love <fx@gnu.org>
parents:
diff changeset
1551 have been eliminated.
Dave Love <fx@gnu.org>
parents:
diff changeset
1552
Dave Love <fx@gnu.org>
parents:
diff changeset
1553 The -L or --directory option lets you specify an additional
Dave Love <fx@gnu.org>
parents:
diff changeset
1554 directory to search for Lisp libraries (including libraries
Dave Love <fx@gnu.org>
parents:
diff changeset
1555 that you specify with the -l or --load options).
Dave Love <fx@gnu.org>
parents:
diff changeset
1556
Dave Love <fx@gnu.org>
parents:
diff changeset
1557 ** Incremental search in Transient Mark mode, if the mark is already
Dave Love <fx@gnu.org>
parents:
diff changeset
1558 active, now leaves the mark active and does not change its position.
Dave Love <fx@gnu.org>
parents:
diff changeset
1559 You can make incremental search deactivate the mark once again with
Dave Love <fx@gnu.org>
parents:
diff changeset
1560 this expression.
Dave Love <fx@gnu.org>
parents:
diff changeset
1561
Dave Love <fx@gnu.org>
parents:
diff changeset
1562 (add-hook 'isearch-mode-hook 'deactivate-mark)
Dave Love <fx@gnu.org>
parents:
diff changeset
1563
Dave Love <fx@gnu.org>
parents:
diff changeset
1564 ** C-delete now deletes a word backwards. This is for compatibility
Dave Love <fx@gnu.org>
parents:
diff changeset
1565 with some editors in the PC world. (This key is not available on
Dave Love <fx@gnu.org>
parents:
diff changeset
1566 ordinary ASCII terminals, because C-delete is not a distinct character
Dave Love <fx@gnu.org>
parents:
diff changeset
1567 on those terminals.)
Dave Love <fx@gnu.org>
parents:
diff changeset
1568
Dave Love <fx@gnu.org>
parents:
diff changeset
1569 ** ESC ESC ESC is now a command to escape from various temporary modes
Dave Love <fx@gnu.org>
parents:
diff changeset
1570 and states.
Dave Love <fx@gnu.org>
parents:
diff changeset
1571
Dave Love <fx@gnu.org>
parents:
diff changeset
1572 ** M-x pc-bindings-mode sets up bindings compatible with many PC editors.
Dave Love <fx@gnu.org>
parents:
diff changeset
1573 In particular, Delete and its variants delete forward instead of backward.
Dave Love <fx@gnu.org>
parents:
diff changeset
1574 Use Backspace to delete backward.
Dave Love <fx@gnu.org>
parents:
diff changeset
1575
Dave Love <fx@gnu.org>
parents:
diff changeset
1576 C-Backspace kills backward a word (as C-Delete normally would).
Dave Love <fx@gnu.org>
parents:
diff changeset
1577 M-Backspace does undo.
Dave Love <fx@gnu.org>
parents:
diff changeset
1578 Home and End move to beginning and end of line
Dave Love <fx@gnu.org>
parents:
diff changeset
1579 C-Home and C-End move to beginning and end of buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1580
Dave Love <fx@gnu.org>
parents:
diff changeset
1581 ** The key sequence for evaluating a Lisp expression using the minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1582 is now ESC :. It used to be ESC ESC, but we moved it to make way for
Dave Love <fx@gnu.org>
parents:
diff changeset
1583 the ESC ESC ESC feature, on the grounds that people who evaluate Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
1584 expressions are experienced users and can cope with a change.
Dave Love <fx@gnu.org>
parents:
diff changeset
1585 If you prefer the old ESC ESC binding, put in your `~/.emacs':
Dave Love <fx@gnu.org>
parents:
diff changeset
1586
Dave Love <fx@gnu.org>
parents:
diff changeset
1587 (global-set-key "\e\e" 'eval-expression)
Dave Love <fx@gnu.org>
parents:
diff changeset
1588
Dave Love <fx@gnu.org>
parents:
diff changeset
1589 ** The f1 function key is now equivalent to the help key. This is
Dave Love <fx@gnu.org>
parents:
diff changeset
1590 done with key-translation-map; delete the binding for f1 in that map
Dave Love <fx@gnu.org>
parents:
diff changeset
1591 if you want to use f1 for something else.
Dave Love <fx@gnu.org>
parents:
diff changeset
1592
Dave Love <fx@gnu.org>
parents:
diff changeset
1593 ** Mouse-3, in the simplest case, still sets the region. But now, it
Dave Love <fx@gnu.org>
parents:
diff changeset
1594 places the mark where point was, and sets point where you click.
Dave Love <fx@gnu.org>
parents:
diff changeset
1595 (It used to set the mark where you click and leave point alone.)
Dave Love <fx@gnu.org>
parents:
diff changeset
1596
Dave Love <fx@gnu.org>
parents:
diff changeset
1597 If you position point with Mouse-1, then scroll with the scroll bar
Dave Love <fx@gnu.org>
parents:
diff changeset
1598 and use Mouse-3, Mouse-3 uses the position you specified with Mouse-1
Dave Love <fx@gnu.org>
parents:
diff changeset
1599 even if it has scrolled off the screen (and point is no longer there).
Dave Love <fx@gnu.org>
parents:
diff changeset
1600 This makes it easier to select a region with the mouse which is bigger
Dave Love <fx@gnu.org>
parents:
diff changeset
1601 than a screenful.
Dave Love <fx@gnu.org>
parents:
diff changeset
1602
Dave Love <fx@gnu.org>
parents:
diff changeset
1603 Any editing of the buffer, and any cursor motion or scrolling for any
Dave Love <fx@gnu.org>
parents:
diff changeset
1604 reason other than the scroll bar, cancels the special state set up by
Dave Love <fx@gnu.org>
parents:
diff changeset
1605 Mouse-1--so that a subsequent Mouse-3 click will use the actual value
Dave Love <fx@gnu.org>
parents:
diff changeset
1606 of point.
Dave Love <fx@gnu.org>
parents:
diff changeset
1607
Dave Love <fx@gnu.org>
parents:
diff changeset
1608 ** C-mouse-3 now pops up a mode-specific menu of commands--normally
Dave Love <fx@gnu.org>
parents:
diff changeset
1609 the same ones available in the mode's own menu bar menus.
Dave Love <fx@gnu.org>
parents:
diff changeset
1610
Dave Love <fx@gnu.org>
parents:
diff changeset
1611 ** C-mouse-2 now pops up a menu of faces, indentation, justification,
Dave Love <fx@gnu.org>
parents:
diff changeset
1612 and certain other text properties. This menu is also available
Dave Love <fx@gnu.org>
parents:
diff changeset
1613 through the menu-bar Edit menu. It is meant for use with Enriched
Dave Love <fx@gnu.org>
parents:
diff changeset
1614 mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
1615
Dave Love <fx@gnu.org>
parents:
diff changeset
1616 *** You can use this menu to change the face of the region.
Dave Love <fx@gnu.org>
parents:
diff changeset
1617 You can also set the face of the region with the new M-g command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1618
Dave Love <fx@gnu.org>
parents:
diff changeset
1619 *** The menu also includes commands for indenting the region,
Dave Love <fx@gnu.org>
parents:
diff changeset
1620 which locally changes the values of left-margin and fill-column that
Dave Love <fx@gnu.org>
parents:
diff changeset
1621 are used.
Dave Love <fx@gnu.org>
parents:
diff changeset
1622
Dave Love <fx@gnu.org>
parents:
diff changeset
1623 *** All fill functions now indent every line to the left-margin. If
Dave Love <fx@gnu.org>
parents:
diff changeset
1624 there is also a fill-prefix, that goes after the margin indentation.
Dave Love <fx@gnu.org>
parents:
diff changeset
1625
Dave Love <fx@gnu.org>
parents:
diff changeset
1626 *** Open-line and newline also make sure that the lines they create
Dave Love <fx@gnu.org>
parents:
diff changeset
1627 are indented to the left margin.
Dave Love <fx@gnu.org>
parents:
diff changeset
1628
Dave Love <fx@gnu.org>
parents:
diff changeset
1629 *** It also allows you to set the "justification" of the region:
Dave Love <fx@gnu.org>
parents:
diff changeset
1630 whether it should be centered, flush right, and so forth. The fill
Dave Love <fx@gnu.org>
parents:
diff changeset
1631 functions (including auto-fill-mode) will maintain the justification
Dave Love <fx@gnu.org>
parents:
diff changeset
1632 and indentation that you request.
Dave Love <fx@gnu.org>
parents:
diff changeset
1633
Dave Love <fx@gnu.org>
parents:
diff changeset
1634 *** The new function `list-colors-display' shows you what colors are
Dave Love <fx@gnu.org>
parents:
diff changeset
1635 available. This is also accessible from the C-mouse-2 menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
1636
Dave Love <fx@gnu.org>
parents:
diff changeset
1637 ** You can now save and load files including their faces and other
Dave Love <fx@gnu.org>
parents:
diff changeset
1638 text-properties by using Enriched-mode. Files are saved in an
Dave Love <fx@gnu.org>
parents:
diff changeset
1639 extended version of the MIME text/enriched format. You can use the
Dave Love <fx@gnu.org>
parents:
diff changeset
1640 menus described above, or M-g and other keyboard commands, to
Dave Love <fx@gnu.org>
parents:
diff changeset
1641 alter the formatting information.
Dave Love <fx@gnu.org>
parents:
diff changeset
1642
Dave Love <fx@gnu.org>
parents:
diff changeset
1643 ** C-mouse-1 now pops up the menu for changing the frame's default font.
Dave Love <fx@gnu.org>
parents:
diff changeset
1644
Dave Love <fx@gnu.org>
parents:
diff changeset
1645 ** You can input Hyper, Super, Meta, and Alt characters, as well as
Dave Love <fx@gnu.org>
parents:
diff changeset
1646 non-ASCII control characters, on an ASCII-only terminal.
Dave Love <fx@gnu.org>
parents:
diff changeset
1647 To do this, use
Dave Love <fx@gnu.org>
parents:
diff changeset
1648
Dave Love <fx@gnu.org>
parents:
diff changeset
1649 C-x @ h -- hyper
Dave Love <fx@gnu.org>
parents:
diff changeset
1650 C-x @ s -- super
Dave Love <fx@gnu.org>
parents:
diff changeset
1651 C-x @ m -- meta
Dave Love <fx@gnu.org>
parents:
diff changeset
1652 C-x @ a -- alt
Dave Love <fx@gnu.org>
parents:
diff changeset
1653 C-x @ S -- shift
Dave Love <fx@gnu.org>
parents:
diff changeset
1654 C-x @ c -- control
Dave Love <fx@gnu.org>
parents:
diff changeset
1655
Dave Love <fx@gnu.org>
parents:
diff changeset
1656 These are not ordinary key sequences; they operate through
Dave Love <fx@gnu.org>
parents:
diff changeset
1657 function-key-map, which means they can be used even in the
Dave Love <fx@gnu.org>
parents:
diff changeset
1658 middle of an ordinary key sequence.
Dave Love <fx@gnu.org>
parents:
diff changeset
1659
Dave Love <fx@gnu.org>
parents:
diff changeset
1660 ** Outline minor mode and Hideif mode now use C-c @ as their prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
1661 character.
Dave Love <fx@gnu.org>
parents:
diff changeset
1662
Dave Love <fx@gnu.org>
parents:
diff changeset
1663 ** Echo area messages are now logged in the "*Messages*" buffer. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1664 size of this buffer is limited to message-log-max lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
1665
Dave Love <fx@gnu.org>
parents:
diff changeset
1666 ** RET in various special modes for read-only buffers that contain
Dave Love <fx@gnu.org>
parents:
diff changeset
1667 lists of items now selects the item point is on. These modes include
Dave Love <fx@gnu.org>
parents:
diff changeset
1668 Dired, Compilation buffers, Buffer-menu, Tar mode, and Occur mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
1669 (In Info, RET follows the reference near point; in completion list
Dave Love <fx@gnu.org>
parents:
diff changeset
1670 buffers, RET chooses the completion around point.)
Dave Love <fx@gnu.org>
parents:
diff changeset
1671
Dave Love <fx@gnu.org>
parents:
diff changeset
1672 ** set-background-color now updates the modeline face in a special
Dave Love <fx@gnu.org>
parents:
diff changeset
1673 way. If that face was previously set up to be reverse video, the
Dave Love <fx@gnu.org>
parents:
diff changeset
1674 reverse of the default face, then set-background-color updates it so
Dave Love <fx@gnu.org>
parents:
diff changeset
1675 that it remains the reverse of the default face.
Dave Love <fx@gnu.org>
parents:
diff changeset
1676
Dave Love <fx@gnu.org>
parents:
diff changeset
1677 ** The functions raise-frame and lower-frame are now commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
1678 When used interactively, they apply to the selected frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
1679
Dave Love <fx@gnu.org>
parents:
diff changeset
1680 ** M-x buffer-menu now displays the buffer list in the selected window.
Dave Love <fx@gnu.org>
parents:
diff changeset
1681 Use M-x buffer-menu-other-window to display it in another window.
Dave Love <fx@gnu.org>
parents:
diff changeset
1682
Dave Love <fx@gnu.org>
parents:
diff changeset
1683 ** M-w followed by a kill command now *does not* append the text in
Dave Love <fx@gnu.org>
parents:
diff changeset
1684 the kill ring. In consequence, M-w followed by C-w works as you would
Dave Love <fx@gnu.org>
parents:
diff changeset
1685 expect: it leaves the top of the kill ring matching the region that
Dave Love <fx@gnu.org>
parents:
diff changeset
1686 you killed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1687
Dave Love <fx@gnu.org>
parents:
diff changeset
1688 ** In Lisp mode, the C-M-x command now executes defvar forms in a
Dave Love <fx@gnu.org>
parents:
diff changeset
1689 special way: it unconditionally sets the variable to the specified
Dave Love <fx@gnu.org>
parents:
diff changeset
1690 default value, if there is one. Normal execution of defvar does not
Dave Love <fx@gnu.org>
parents:
diff changeset
1691 alter the variable if it already has a non-void value.
Dave Love <fx@gnu.org>
parents:
diff changeset
1692
Dave Love <fx@gnu.org>
parents:
diff changeset
1693 ** In completion list buffers, the left and right arrow keys run the
Dave Love <fx@gnu.org>
parents:
diff changeset
1694 new commands previous-completion and next-completion. They move one
Dave Love <fx@gnu.org>
parents:
diff changeset
1695 completion at a time.
Dave Love <fx@gnu.org>
parents:
diff changeset
1696
Dave Love <fx@gnu.org>
parents:
diff changeset
1697 ** While doing completion in the minibuffer, the `prior' or `pageup'
Dave Love <fx@gnu.org>
parents:
diff changeset
1698 key switches to the completion list window.
Dave Love <fx@gnu.org>
parents:
diff changeset
1699
Dave Love <fx@gnu.org>
parents:
diff changeset
1700 ** When you exit the minibuffer with empty contents, the empty string
Dave Love <fx@gnu.org>
parents:
diff changeset
1701 is not put in the minibuffer history.
Dave Love <fx@gnu.org>
parents:
diff changeset
1702
Dave Love <fx@gnu.org>
parents:
diff changeset
1703 ** The default buffer for insert-buffer is now the "first" buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1704 other than the current one. If you have more than one window, this
Dave Love <fx@gnu.org>
parents:
diff changeset
1705 is a buffer visible in another window. (Usually it is the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1706 that C-M-v would scroll.)
Dave Love <fx@gnu.org>
parents:
diff changeset
1707
Dave Love <fx@gnu.org>
parents:
diff changeset
1708 ** The etags program is now capable of recording tags based on regular
Dave Love <fx@gnu.org>
parents:
diff changeset
1709 expressions provided on the command line.
Dave Love <fx@gnu.org>
parents:
diff changeset
1710
Dave Love <fx@gnu.org>
parents:
diff changeset
1711 This new feature allows easy support for constructs not normally
Dave Love <fx@gnu.org>
parents:
diff changeset
1712 handled by etags, such as the macros frequently used in big C/C++
Dave Love <fx@gnu.org>
parents:
diff changeset
1713 projects to define project-specific structures. It also enables the
Dave Love <fx@gnu.org>
parents:
diff changeset
1714 use of etags and TAGS files for languages not supported by etags.
Dave Love <fx@gnu.org>
parents:
diff changeset
1715
Dave Love <fx@gnu.org>
parents:
diff changeset
1716 The Emacs manual section on Tags contains explanations and examples
Dave Love <fx@gnu.org>
parents:
diff changeset
1717 for Emacs's DEFVAR, VHDL, Cobol, Postscript and TCL.
Dave Love <fx@gnu.org>
parents:
diff changeset
1718
Dave Love <fx@gnu.org>
parents:
diff changeset
1719 ** Various mode-specific commands that used to be bound to C-c LETTER
Dave Love <fx@gnu.org>
parents:
diff changeset
1720 have been moved.
Dave Love <fx@gnu.org>
parents:
diff changeset
1721
Dave Love <fx@gnu.org>
parents:
diff changeset
1722 *** In gnus-uu mode, gnus-uu-interactive-scan-directory is now on C-c C-d,
Dave Love <fx@gnu.org>
parents:
diff changeset
1723 and gnus-uu-interactive-save-current-file is on C-c C-z.
Dave Love <fx@gnu.org>
parents:
diff changeset
1724
Dave Love <fx@gnu.org>
parents:
diff changeset
1725 *** In Scribe mode, scribe-insert-environment is now on C-c C-v,
Dave Love <fx@gnu.org>
parents:
diff changeset
1726 scribe-chapter is on C-c C-c, scribe-subsection is on C-c C-s,
Dave Love <fx@gnu.org>
parents:
diff changeset
1727 scribe-section is on C-c C-t, scribe-bracket-region-be is on C-c C-e,
Dave Love <fx@gnu.org>
parents:
diff changeset
1728 scribe-italicize-word is on C-c C-i, scribe-bold-word is on C-c C-b,
Dave Love <fx@gnu.org>
parents:
diff changeset
1729 and scribe-underline-word is on C-c C-u.
Dave Love <fx@gnu.org>
parents:
diff changeset
1730
Dave Love <fx@gnu.org>
parents:
diff changeset
1731 *** In Gomoku mode, gomoku-human-takes-back is now on C-c C-b,
Dave Love <fx@gnu.org>
parents:
diff changeset
1732 gomoku-human-plays is on C-c C-p, gomoku-human-resigns is on C-c C-r,
Dave Love <fx@gnu.org>
parents:
diff changeset
1733 and gomoku-emacs-plays is on C-c C-e.
Dave Love <fx@gnu.org>
parents:
diff changeset
1734
Dave Love <fx@gnu.org>
parents:
diff changeset
1735 *** In the Outline mode defined in allout.el,
Dave Love <fx@gnu.org>
parents:
diff changeset
1736 outline-rebullet-current-heading is now on C-c *.
Dave Love <fx@gnu.org>
parents:
diff changeset
1737
Dave Love <fx@gnu.org>
parents:
diff changeset
1738 ** M-s in Info now searches through the nodes of the Info file,
Dave Love <fx@gnu.org>
parents:
diff changeset
1739 just like s. The alias M-s was added so that you can use the same
Dave Love <fx@gnu.org>
parents:
diff changeset
1740 command for searches in both Info and Rmail.
Dave Love <fx@gnu.org>
parents:
diff changeset
1741
Dave Love <fx@gnu.org>
parents:
diff changeset
1742 ** iso-acc.el now lets you enter inverted-! and inverted-?
Dave Love <fx@gnu.org>
parents:
diff changeset
1743 with the sequences ~! and ~?.
Dave Love <fx@gnu.org>
parents:
diff changeset
1744
Dave Love <fx@gnu.org>
parents:
diff changeset
1745 ** M-x compare-windows now pushes mark in both windows before
Dave Love <fx@gnu.org>
parents:
diff changeset
1746 it starts moving point.
Dave Love <fx@gnu.org>
parents:
diff changeset
1747
Dave Love <fx@gnu.org>
parents:
diff changeset
1748 ** There are two new commands in Dired, A (dired-do-search)
Dave Love <fx@gnu.org>
parents:
diff changeset
1749 and Q (dired-do-query-replace). These are similar to tags-search and
Dave Love <fx@gnu.org>
parents:
diff changeset
1750 tags-query-replace, but instead of searching the list of files that
Dave Love <fx@gnu.org>
parents:
diff changeset
1751 appears in a tags table, they search all the files marked in Dired.
Dave Love <fx@gnu.org>
parents:
diff changeset
1752
Dave Love <fx@gnu.org>
parents:
diff changeset
1753 ** Changes to dabbrev.
Dave Love <fx@gnu.org>
parents:
diff changeset
1754
Dave Love <fx@gnu.org>
parents:
diff changeset
1755 A new function, `dabbrev-completion' (bound to M-C-/), expands the
Dave Love <fx@gnu.org>
parents:
diff changeset
1756 unique part of an abbreviation.
Dave Love <fx@gnu.org>
parents:
diff changeset
1757
Dave Love <fx@gnu.org>
parents:
diff changeset
1758 Dabbrev now looks for expansions in other buffers, looks for symbols
Dave Love <fx@gnu.org>
parents:
diff changeset
1759 instead of words and it works in the minibuffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1760
Dave Love <fx@gnu.org>
parents:
diff changeset
1761 Dabbrev can be customized to work for shell scripts, with variables
Dave Love <fx@gnu.org>
parents:
diff changeset
1762 that sometimes have and sometimes haven't a leading "$". See the
Dave Love <fx@gnu.org>
parents:
diff changeset
1763 variable 'dabbrev-abbrev-skip-leading-regexp'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1764
Dave Love <fx@gnu.org>
parents:
diff changeset
1765 ** In Rmail, the command rmail-input-menu has been eliminated. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1766 feature of selecting an Rmail file from a menu is now implemented in
Dave Love <fx@gnu.org>
parents:
diff changeset
1767 another way.
Dave Love <fx@gnu.org>
parents:
diff changeset
1768
Dave Love <fx@gnu.org>
parents:
diff changeset
1769 ** Bookmarks changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
1770
Dave Love <fx@gnu.org>
parents:
diff changeset
1771 *** It now works to set bookmarks in Info nodes.
Dave Love <fx@gnu.org>
parents:
diff changeset
1772
Dave Love <fx@gnu.org>
parents:
diff changeset
1773 *** Bookmarks can have annotations; type "C-h m" after doing
Dave Love <fx@gnu.org>
parents:
diff changeset
1774 "M-x list-bookmarks", for more information on annotations.
Dave Love <fx@gnu.org>
parents:
diff changeset
1775
Dave Love <fx@gnu.org>
parents:
diff changeset
1776 *** The bookmark-jump popup menu function is now `bookmark-menu-jump', for
Dave Love <fx@gnu.org>
parents:
diff changeset
1777 those who bind it to a mouse click.
Dave Love <fx@gnu.org>
parents:
diff changeset
1778
Dave Love <fx@gnu.org>
parents:
diff changeset
1779 *** The default bookmarks file name is now "~/.emacs.bmk". If you
Dave Love <fx@gnu.org>
parents:
diff changeset
1780 already have a bookmarks file, it will be renamed automagically when
Dave Love <fx@gnu.org>
parents:
diff changeset
1781 you next load it.
Dave Love <fx@gnu.org>
parents:
diff changeset
1782
Dave Love <fx@gnu.org>
parents:
diff changeset
1783 ** New package, ps-print.
Dave Love <fx@gnu.org>
parents:
diff changeset
1784
Dave Love <fx@gnu.org>
parents:
diff changeset
1785 The ps-print package generates PostScript printouts of buffers or
Dave Love <fx@gnu.org>
parents:
diff changeset
1786 regions, and includes face attributes such as color, underlining,
Dave Love <fx@gnu.org>
parents:
diff changeset
1787 boldface and italics in the printed output.
Dave Love <fx@gnu.org>
parents:
diff changeset
1788
Dave Love <fx@gnu.org>
parents:
diff changeset
1789 ** New package, msb.
Dave Love <fx@gnu.org>
parents:
diff changeset
1790
Dave Love <fx@gnu.org>
parents:
diff changeset
1791 The msb package provides a buffer-menu in the menubar with separate
Dave Love <fx@gnu.org>
parents:
diff changeset
1792 menus for different types of buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
1793
Dave Love <fx@gnu.org>
parents:
diff changeset
1794 ** `cpp.el' is a new library that can highlight or hide parts of a C
Dave Love <fx@gnu.org>
parents:
diff changeset
1795 file according to C preprocessor conditionals. To try it, run the
Dave Love <fx@gnu.org>
parents:
diff changeset
1796 command M-x cpp-highlight-buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1797
Dave Love <fx@gnu.org>
parents:
diff changeset
1798 ** Changes in CC mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
1799
Dave Love <fx@gnu.org>
parents:
diff changeset
1800 *** c-set-offset and related functions and variables can now accept
Dave Love <fx@gnu.org>
parents:
diff changeset
1801 variable symbols. Also ++ and -- which mean 2* positive and negative
Dave Love <fx@gnu.org>
parents:
diff changeset
1802 c-basic-offset respectively.
Dave Love <fx@gnu.org>
parents:
diff changeset
1803
Dave Love <fx@gnu.org>
parents:
diff changeset
1804 *** New variable, c-recognize-knr-p, which controls whether K&R C
Dave Love <fx@gnu.org>
parents:
diff changeset
1805 constructs will be recognized. Trying to recognize K&R constructs is a
Dave Love <fx@gnu.org>
parents:
diff changeset
1806 time hog so if you're programming strictly in ANSI C, set this
Dave Love <fx@gnu.org>
parents:
diff changeset
1807 variable to nil (it should already be nil in c++-mode).
Dave Love <fx@gnu.org>
parents:
diff changeset
1808
Dave Love <fx@gnu.org>
parents:
diff changeset
1809 *** New variable, c-hanging-comment-ender-p for controlling
Dave Love <fx@gnu.org>
parents:
diff changeset
1810 c-fill-paragraph's behavior.
Dave Love <fx@gnu.org>
parents:
diff changeset
1811
Dave Love <fx@gnu.org>
parents:
diff changeset
1812 *** New syntactic symbol: statement-case-open. This is assigned to lines
Dave Love <fx@gnu.org>
parents:
diff changeset
1813 containing an open brace just after a case/default label.
Dave Love <fx@gnu.org>
parents:
diff changeset
1814
Dave Love <fx@gnu.org>
parents:
diff changeset
1815 *** New variable, c-progress-interval, which controls minibuffer update
Dave Love <fx@gnu.org>
parents:
diff changeset
1816 message displays during long re-indention. This is a new feature
Dave Love <fx@gnu.org>
parents:
diff changeset
1817 which prints percentage complete messages at specified intervals.
Dave Love <fx@gnu.org>
parents:
diff changeset
1818
Dave Love <fx@gnu.org>
parents:
diff changeset
1819 ** Makefile mode changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
1820
Dave Love <fx@gnu.org>
parents:
diff changeset
1821 *** The electric keys are not enabled by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
1822
Dave Love <fx@gnu.org>
parents:
diff changeset
1823 *** There is now a mode-specific menu bar menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
1824
Dave Love <fx@gnu.org>
parents:
diff changeset
1825 *** The mode supports font-lock, add-log, and imenu.
Dave Love <fx@gnu.org>
parents:
diff changeset
1826
Dave Love <fx@gnu.org>
parents:
diff changeset
1827 *** The command M-TAB does completion of target names and variable names.
Dave Love <fx@gnu.org>
parents:
diff changeset
1828
Dave Love <fx@gnu.org>
parents:
diff changeset
1829 ** icomplete.el now works more like a minor mode. Use M-x icomplete-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
1830 to turn it on and off.
Dave Love <fx@gnu.org>
parents:
diff changeset
1831
Dave Love <fx@gnu.org>
parents:
diff changeset
1832 Icomplete now supports an `icomplete-minibuffer-setup-hook', which is
Dave Love <fx@gnu.org>
parents:
diff changeset
1833 run on minibuffer setup whenever icompletion will be occurring. This
Dave Love <fx@gnu.org>
parents:
diff changeset
1834 hook can be used to customize interoperation of icomplete with other
Dave Love <fx@gnu.org>
parents:
diff changeset
1835 minibuffer-specific packages, eg rsz-mini. See the doc string for
Dave Love <fx@gnu.org>
parents:
diff changeset
1836 more info.
Dave Love <fx@gnu.org>
parents:
diff changeset
1837
Dave Love <fx@gnu.org>
parents:
diff changeset
1838 ** Ediff change.
Dave Love <fx@gnu.org>
parents:
diff changeset
1839
Dave Love <fx@gnu.org>
parents:
diff changeset
1840 Use ediff-revision instead of vc-ediff. It also replaces rcs-ediff,
Dave Love <fx@gnu.org>
parents:
diff changeset
1841 for those who use that; if you want to use a version control package
Dave Love <fx@gnu.org>
parents:
diff changeset
1842 other than vc.el, you must set the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
1843 ediff-version-control-package to specify which package.
Dave Love <fx@gnu.org>
parents:
diff changeset
1844
Dave Love <fx@gnu.org>
parents:
diff changeset
1845 ** VC now supports branches with RCS.
Dave Love <fx@gnu.org>
parents:
diff changeset
1846
Dave Love <fx@gnu.org>
parents:
diff changeset
1847 You can use C-u C-x C-q to select any branch or version by number.
Dave Love <fx@gnu.org>
parents:
diff changeset
1848 It reads the version number or branch number with the minibuffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
1849 then checks out the file unlocked.
Dave Love <fx@gnu.org>
parents:
diff changeset
1850
Dave Love <fx@gnu.org>
parents:
diff changeset
1851 Type C-x C-q again to lock the selected branch or version.
Dave Love <fx@gnu.org>
parents:
diff changeset
1852 When you check in changes to that branch or version, there are two
Dave Love <fx@gnu.org>
parents:
diff changeset
1853 possibilities:
Dave Love <fx@gnu.org>
parents:
diff changeset
1854
Dave Love <fx@gnu.org>
parents:
diff changeset
1855 -- If you've selected a branch, or a version at the tip of a branch,
Dave Love <fx@gnu.org>
parents:
diff changeset
1856 then the new version adds to that branch. If you wish to create a
Dave Love <fx@gnu.org>
parents:
diff changeset
1857 new branch, use C-u C-x C-q to specify a version number when you check
Dave Love <fx@gnu.org>
parents:
diff changeset
1858 in the new version.
Dave Love <fx@gnu.org>
parents:
diff changeset
1859
Dave Love <fx@gnu.org>
parents:
diff changeset
1860 -- If you've selected an inner version which is not the latest in its
Dave Love <fx@gnu.org>
parents:
diff changeset
1861 branch, then the new version automatically creates a new branch.
Dave Love <fx@gnu.org>
parents:
diff changeset
1862
Dave Love <fx@gnu.org>
parents:
diff changeset
1863 ** VC now supports CVS as well as RCS and SCCS.
Dave Love <fx@gnu.org>
parents:
diff changeset
1864
Dave Love <fx@gnu.org>
parents:
diff changeset
1865 Since there are no locks in CVS, some things behave slightly
Dave Love <fx@gnu.org>
parents:
diff changeset
1866 different when the backend is CVS. When vc-next-action is invoked
Dave Love <fx@gnu.org>
parents:
diff changeset
1867 in a directory handled by CVS, it does the following:
Dave Love <fx@gnu.org>
parents:
diff changeset
1868
Dave Love <fx@gnu.org>
parents:
diff changeset
1869 If the file is not already registered, this registers it for version
Dave Love <fx@gnu.org>
parents:
diff changeset
1870 control. This does a "cvs add", but no "cvs commit".
Dave Love <fx@gnu.org>
parents:
diff changeset
1871 If the file is added but not committed, it is committed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1872 If the file has not been changed, neither in your working area or
Dave Love <fx@gnu.org>
parents:
diff changeset
1873 in the repository, a message is printed and nothing is done.
Dave Love <fx@gnu.org>
parents:
diff changeset
1874 If your working file is changed, but the repository file is
Dave Love <fx@gnu.org>
parents:
diff changeset
1875 unchanged, this pops up a buffer for entry of a log message; when you
Dave Love <fx@gnu.org>
parents:
diff changeset
1876 finish the log message with C-c C-c, that checks in the resulting
Dave Love <fx@gnu.org>
parents:
diff changeset
1877 changes along with the log message as change commentary. A writable
Dave Love <fx@gnu.org>
parents:
diff changeset
1878 file remains in existence.
Dave Love <fx@gnu.org>
parents:
diff changeset
1879
Dave Love <fx@gnu.org>
parents:
diff changeset
1880 If vc-next-action changes the repository file, it asks you
Dave Love <fx@gnu.org>
parents:
diff changeset
1881 whether to merge in the changes into your working copy.
Dave Love <fx@gnu.org>
parents:
diff changeset
1882
Dave Love <fx@gnu.org>
parents:
diff changeset
1883 vc-directory, when started in a CVS file hierarchy, reports
Dave Love <fx@gnu.org>
parents:
diff changeset
1884 all files that are modified (and thus need to be committed).
Dave Love <fx@gnu.org>
parents:
diff changeset
1885 (When the backend is RCS or SCCS vc-directory reports all
Dave Love <fx@gnu.org>
parents:
diff changeset
1886 locked files).
Dave Love <fx@gnu.org>
parents:
diff changeset
1887
Dave Love <fx@gnu.org>
parents:
diff changeset
1888 VC has no support for running the initial "cvs checkout" to get a
Dave Love <fx@gnu.org>
parents:
diff changeset
1889 working copy of a module. You can only use VC in a working copy of
Dave Love <fx@gnu.org>
parents:
diff changeset
1890 a module.
Dave Love <fx@gnu.org>
parents:
diff changeset
1891
Dave Love <fx@gnu.org>
parents:
diff changeset
1892 You can disable the CVS support as follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
1893
Dave Love <fx@gnu.org>
parents:
diff changeset
1894 (setq vc-master-templates (delq 'vc-find-cvs-master vc-master-templates))
Dave Love <fx@gnu.org>
parents:
diff changeset
1895
Dave Love <fx@gnu.org>
parents:
diff changeset
1896 or by setting vc-handle-cvs to nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
1897
Dave Love <fx@gnu.org>
parents:
diff changeset
1898 This may be desirable if you run a non-standard version of CVS, or
Dave Love <fx@gnu.org>
parents:
diff changeset
1899 if CVS was compiled with FORCE_USE_EDITOR or (possibly)
Dave Love <fx@gnu.org>
parents:
diff changeset
1900 RELATIVE_REPOS.
Dave Love <fx@gnu.org>
parents:
diff changeset
1901
Dave Love <fx@gnu.org>
parents:
diff changeset
1902 ** Comint and shell mode changes:
Dave Love <fx@gnu.org>
parents:
diff changeset
1903
Dave Love <fx@gnu.org>
parents:
diff changeset
1904 *** Completion works with file names containing quoted characters.
Dave Love <fx@gnu.org>
parents:
diff changeset
1905
Dave Love <fx@gnu.org>
parents:
diff changeset
1906 File names containing special characters (such as " ", "!", etc.) that are
Dave Love <fx@gnu.org>
parents:
diff changeset
1907 quoted with a "\" character are recognised during completion. Special
Dave Love <fx@gnu.org>
parents:
diff changeset
1908 characters are quoted when they are inserted during completion.
Dave Love <fx@gnu.org>
parents:
diff changeset
1909
Dave Love <fx@gnu.org>
parents:
diff changeset
1910 *** You can use M-x comint-truncate-buffer to truncate the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1911
Dave Love <fx@gnu.org>
parents:
diff changeset
1912 When this command is run, the buffer is truncated to a maximum number
Dave Love <fx@gnu.org>
parents:
diff changeset
1913 of lines, specified by the variable comint-buffer-maximum-size. Just
Dave Love <fx@gnu.org>
parents:
diff changeset
1914 like the command comint-strip-ctrl-m, this can be run automatically
Dave Love <fx@gnu.org>
parents:
diff changeset
1915 during process output by doing this:
Dave Love <fx@gnu.org>
parents:
diff changeset
1916
Dave Love <fx@gnu.org>
parents:
diff changeset
1917 (add-hook 'comint-output-filter-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
1918 'comint-truncate-buffer)
Dave Love <fx@gnu.org>
parents:
diff changeset
1919
Dave Love <fx@gnu.org>
parents:
diff changeset
1920 ** Telnet mode buffer name changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1921
Dave Love <fx@gnu.org>
parents:
diff changeset
1922 The buffer name for a Telnet buffer is now *telnet-HOST*, not
Dave Love <fx@gnu.org>
parents:
diff changeset
1923 *HOST-telnet*. This is for consistency with other Emacs packages.
Dave Love <fx@gnu.org>
parents:
diff changeset
1924
Dave Love <fx@gnu.org>
parents:
diff changeset
1925 ** M-x man (man) is now faster and more robust. On systems where the
Dave Love <fx@gnu.org>
parents:
diff changeset
1926 entire man page is indented, the indentation is removed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1927
Dave Love <fx@gnu.org>
parents:
diff changeset
1928 The user option names that used to end in -p now end in -flag. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1929 new names are: Man-reuse-okay-flag, Man-downcase-section-letters-flag,
Dave Love <fx@gnu.org>
parents:
diff changeset
1930 Man-circular-pages-flag. The Man-notify user option has been renamed to
Dave Love <fx@gnu.org>
parents:
diff changeset
1931 Man-notify-method and accepts one more value, `pushy', that just
Dave Love <fx@gnu.org>
parents:
diff changeset
1932 switches the current buffer to the manpage buffer, without switching
Dave Love <fx@gnu.org>
parents:
diff changeset
1933 frames nor changing your windows configuration.
Dave Love <fx@gnu.org>
parents:
diff changeset
1934
Dave Love <fx@gnu.org>
parents:
diff changeset
1935 A new user option Man-fontify-manpage-flag disables fontification
Dave Love <fx@gnu.org>
parents:
diff changeset
1936 (thus speeding up man) when set to nil. Default is to fontify if a
Dave Love <fx@gnu.org>
parents:
diff changeset
1937 window system is used. Two new user options Man-overstrike-face
Dave Love <fx@gnu.org>
parents:
diff changeset
1938 (default 'bold) and Man-underline-face (default 'underline) can be set
Dave Love <fx@gnu.org>
parents:
diff changeset
1939 to the preferred faces to be used for the words that man overstrikes
Dave Love <fx@gnu.org>
parents:
diff changeset
1940 and underlines. Useful for those who like coloured man pages.
Dave Love <fx@gnu.org>
parents:
diff changeset
1941
Dave Love <fx@gnu.org>
parents:
diff changeset
1942 Two new interactive functions are provided: Man-cleanup-manpage and
Dave Love <fx@gnu.org>
parents:
diff changeset
1943 Man-fontify-manpage. Both can be used on a buffer that contains the
Dave Love <fx@gnu.org>
parents:
diff changeset
1944 output of a `rsh host man manpage' command, or the output of an
Dave Love <fx@gnu.org>
parents:
diff changeset
1945 `nroff -man -Tman manpage' command to make them readable.
Dave Love <fx@gnu.org>
parents:
diff changeset
1946 Man-cleanup-manpage is faster, but does not fontify.
Dave Love <fx@gnu.org>
parents:
diff changeset
1947
Dave Love <fx@gnu.org>
parents:
diff changeset
1948 ** The new function modify-face makes it easy to specify
Dave Love <fx@gnu.org>
parents:
diff changeset
1949 all the attributes of a face, all at once.
Dave Love <fx@gnu.org>
parents:
diff changeset
1950
Dave Love <fx@gnu.org>
parents:
diff changeset
1951 ** Faces now support background stippling.
Dave Love <fx@gnu.org>
parents:
diff changeset
1952
Dave Love <fx@gnu.org>
parents:
diff changeset
1953 Use the command set-face-stipple to specify the stipple-pattern for a
Dave Love <fx@gnu.org>
parents:
diff changeset
1954 face. Use face-stipple to access the specified stipple pattern. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1955 existing face functions now handle the stipple pattern when
Dave Love <fx@gnu.org>
parents:
diff changeset
1956 appropriate.
Dave Love <fx@gnu.org>
parents:
diff changeset
1957
Dave Love <fx@gnu.org>
parents:
diff changeset
1958 If you specify one of the standard gray colors as a face background
Dave Love <fx@gnu.org>
parents:
diff changeset
1959 color, and your display doesn't handle gray, Emacs automatically uses
Dave Love <fx@gnu.org>
parents:
diff changeset
1960 stipple instead to get the same effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
1961
Dave Love <fx@gnu.org>
parents:
diff changeset
1962 ** Changes in Font Lock mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
1963
Dave Love <fx@gnu.org>
parents:
diff changeset
1964 *** Fontification
Dave Love <fx@gnu.org>
parents:
diff changeset
1965
Dave Love <fx@gnu.org>
parents:
diff changeset
1966 Two new default faces are provided; `font-lock-variable-name-face' and
Dave Love <fx@gnu.org>
parents:
diff changeset
1967 `font-lock-reference-face'. The face `font-lock-doc-string-face' has
Dave Love <fx@gnu.org>
parents:
diff changeset
1968 been removed since it is the same as the existing
Dave Love <fx@gnu.org>
parents:
diff changeset
1969 `font-lock-string-face'. Where appropriate, fontification
Dave Love <fx@gnu.org>
parents:
diff changeset
1970 automatically uses these new faces.
Dave Love <fx@gnu.org>
parents:
diff changeset
1971
Dave Love <fx@gnu.org>
parents:
diff changeset
1972 Fontification via commands `font-lock-mode' and
Dave Love <fx@gnu.org>
parents:
diff changeset
1973 `font-lock-fontify-buffer' is now cleanly interruptible (i.e., with
Dave Love <fx@gnu.org>
parents:
diff changeset
1974 C-g). If you interrupt during the fontification process, the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1975 remains in its previous modified state and all highlighting is removed
Dave Love <fx@gnu.org>
parents:
diff changeset
1976 from the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1977
Dave Love <fx@gnu.org>
parents:
diff changeset
1978 For C/C++ modes, Font Lock mode is much faster but highlights much
Dave Love <fx@gnu.org>
parents:
diff changeset
1979 more. Other modes are faster/more extensive/more discriminatory, or a
Dave Love <fx@gnu.org>
parents:
diff changeset
1980 combination of these.
Dave Love <fx@gnu.org>
parents:
diff changeset
1981
Dave Love <fx@gnu.org>
parents:
diff changeset
1982 To enable Font Lock mode, add the new function `turn-on-font-lock' in
Dave Love <fx@gnu.org>
parents:
diff changeset
1983 one of the following ways:
Dave Love <fx@gnu.org>
parents:
diff changeset
1984
Dave Love <fx@gnu.org>
parents:
diff changeset
1985 (add-hook 'c-mode-hook 'turn-on-font-lock)
Dave Love <fx@gnu.org>
parents:
diff changeset
1986
Dave Love <fx@gnu.org>
parents:
diff changeset
1987 Or for any visited file with:
Dave Love <fx@gnu.org>
parents:
diff changeset
1988
Dave Love <fx@gnu.org>
parents:
diff changeset
1989 (add-hook 'find-file-hooks 'turn-on-font-lock)
Dave Love <fx@gnu.org>
parents:
diff changeset
1990
Dave Love <fx@gnu.org>
parents:
diff changeset
1991 *** Supports color and grayscale displays
Dave Love <fx@gnu.org>
parents:
diff changeset
1992
Dave Love <fx@gnu.org>
parents:
diff changeset
1993 Font Lock mode supports different ways of highlighting, depending on
Dave Love <fx@gnu.org>
parents:
diff changeset
1994 the type of display and background shade. Attributes (face color,
Dave Love <fx@gnu.org>
parents:
diff changeset
1995 bold, italic and underline, and display type and background mode) can
Dave Love <fx@gnu.org>
parents:
diff changeset
1996 be controlled either from Emacs Lisp or X resources.
Dave Love <fx@gnu.org>
parents:
diff changeset
1997
Dave Love <fx@gnu.org>
parents:
diff changeset
1998 See the new variables `font-lock-display-type' and
Dave Love <fx@gnu.org>
parents:
diff changeset
1999 `font-lock-face-attributes'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2000
Dave Love <fx@gnu.org>
parents:
diff changeset
2001 *** Supports more modes
Dave Love <fx@gnu.org>
parents:
diff changeset
2002
Dave Love <fx@gnu.org>
parents:
diff changeset
2003 The following modes are directly supported:
Dave Love <fx@gnu.org>
parents:
diff changeset
2004
Dave Love <fx@gnu.org>
parents:
diff changeset
2005 ada-mode, asm-mode, bibtex-mode, c++-c-mode, c++-mode, c-mode,
Dave Love <fx@gnu.org>
parents:
diff changeset
2006 change-log-mode, compilation-mode, dired-mode, emacs-lisp-mode,
Dave Love <fx@gnu.org>
parents:
diff changeset
2007 fortran-mode, latex-mode, lisp-mode, mail-mode, makefile-mode,
Dave Love <fx@gnu.org>
parents:
diff changeset
2008 outline-mode, pascal-mode, perl-mode, plain-tex-mode, rmail-mode,
Dave Love <fx@gnu.org>
parents:
diff changeset
2009 rmail-summary-mode, scheme-mode, shell-mode, slitex-mode, tex-mode,
Dave Love <fx@gnu.org>
parents:
diff changeset
2010 texinfo-mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
2011
Dave Love <fx@gnu.org>
parents:
diff changeset
2012 See the new variables `font-lock-defaults-alist' and
Dave Love <fx@gnu.org>
parents:
diff changeset
2013 `font-lock-defaults'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2014
Dave Love <fx@gnu.org>
parents:
diff changeset
2015 Some modes support different levels of fontification. You can choose
Dave Love <fx@gnu.org>
parents:
diff changeset
2016 to use the minimum or maximum available decoration by changing the
Dave Love <fx@gnu.org>
parents:
diff changeset
2017 value of the new variable `font-lock-maximum-decoration'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2018
Dave Love <fx@gnu.org>
parents:
diff changeset
2019 Programmers are urged to make available to the community their own
Dave Love <fx@gnu.org>
parents:
diff changeset
2020 keywords for modes not yet supported. See font-lock.el for
Dave Love <fx@gnu.org>
parents:
diff changeset
2021 information about efficiency.
Dave Love <fx@gnu.org>
parents:
diff changeset
2022
Dave Love <fx@gnu.org>
parents:
diff changeset
2023 *** fast-lock
Dave Love <fx@gnu.org>
parents:
diff changeset
2024
Dave Love <fx@gnu.org>
parents:
diff changeset
2025 The fast-lock package speeds up Font Lock mode by saving font choices
Dave Love <fx@gnu.org>
parents:
diff changeset
2026 in associated cache files. When you visit a file with Font Lock mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2027 and Fast Lock mode turned on for the first time, the file's buffer is
Dave Love <fx@gnu.org>
parents:
diff changeset
2028 fontified as normal. When certain events occur (such as exiting
Dave Love <fx@gnu.org>
parents:
diff changeset
2029 Emacs), Fast Lock saves the highlighting in a cache file. When you
Dave Love <fx@gnu.org>
parents:
diff changeset
2030 subsequently visit this file, its cache is used to restore the
Dave Love <fx@gnu.org>
parents:
diff changeset
2031 highlighting.
Dave Love <fx@gnu.org>
parents:
diff changeset
2032
Dave Love <fx@gnu.org>
parents:
diff changeset
2033 To use this package, put in your `~/.emacs':
Dave Love <fx@gnu.org>
parents:
diff changeset
2034
Dave Love <fx@gnu.org>
parents:
diff changeset
2035 (add-hook 'font-lock-mode-hook 'turn-on-fast-lock)
Dave Love <fx@gnu.org>
parents:
diff changeset
2036
Dave Love <fx@gnu.org>
parents:
diff changeset
2037 To control the use of caches, see the documentation for `fast-lock-mode'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2038
Dave Love <fx@gnu.org>
parents:
diff changeset
2039 ** You can tell pop-to-buffer to display certain buffers in the selected
Dave Love <fx@gnu.org>
parents:
diff changeset
2040 window rather than finding some other window to display them in.
Dave Love <fx@gnu.org>
parents:
diff changeset
2041 There are two variables you can use to specify these buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
2042
Dave Love <fx@gnu.org>
parents:
diff changeset
2043 same-window-buffer-names holds a list of buffer names; if a buffer's
Dave Love <fx@gnu.org>
parents:
diff changeset
2044 name appears in this list, pop-to-buffer puts it in the selected window.
Dave Love <fx@gnu.org>
parents:
diff changeset
2045
Dave Love <fx@gnu.org>
parents:
diff changeset
2046 same-window-regexps holds a list of regexps--if any one of them
Dave Love <fx@gnu.org>
parents:
diff changeset
2047 matches a buffer's name, then pop-to-buffer puts that buffer in the
Dave Love <fx@gnu.org>
parents:
diff changeset
2048 selected window.
Dave Love <fx@gnu.org>
parents:
diff changeset
2049
Dave Love <fx@gnu.org>
parents:
diff changeset
2050 The default values of these variables are not nil: they list various
Dave Love <fx@gnu.org>
parents:
diff changeset
2051 buffers that normally appear, when you as for them, in the selected
Dave Love <fx@gnu.org>
parents:
diff changeset
2052 window. These include shell buffers, mail buffers, telnet buffers,
Dave Love <fx@gnu.org>
parents:
diff changeset
2053 and others. By removing elements from these variables, you can ask
Dave Love <fx@gnu.org>
parents:
diff changeset
2054 Emacs to display those buffers in separate windows.
Dave Love <fx@gnu.org>
parents:
diff changeset
2055
Dave Love <fx@gnu.org>
parents:
diff changeset
2056 ** The special-display-buffer-names and special-display-regexps lists
Dave Love <fx@gnu.org>
parents:
diff changeset
2057 have been generalized. An element may now be a list. The car of the list
Dave Love <fx@gnu.org>
parents:
diff changeset
2058 is the buffer name or regular expression for matching buffer names.
Dave Love <fx@gnu.org>
parents:
diff changeset
2059
Dave Love <fx@gnu.org>
parents:
diff changeset
2060 The cdr of the list can be an alist specifying additional frame
Dave Love <fx@gnu.org>
parents:
diff changeset
2061 parameters for use in constructing the special display frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
2062
Dave Love <fx@gnu.org>
parents:
diff changeset
2063 Alternatively, the cdr can have this form:
Dave Love <fx@gnu.org>
parents:
diff changeset
2064
Dave Love <fx@gnu.org>
parents:
diff changeset
2065 (FUNCTION ARGS...)
Dave Love <fx@gnu.org>
parents:
diff changeset
2066
Dave Love <fx@gnu.org>
parents:
diff changeset
2067 where FUNCTION is a symbol. Then the frame is constructed by calling
Dave Love <fx@gnu.org>
parents:
diff changeset
2068 FUNCTION; its first argument is the buffer, and its remaining
Dave Love <fx@gnu.org>
parents:
diff changeset
2069 arguments are ARGS.
Dave Love <fx@gnu.org>
parents:
diff changeset
2070
Dave Love <fx@gnu.org>
parents:
diff changeset
2071 ** If the environment variable REPLYTO is set, its value is the default
Dave Love <fx@gnu.org>
parents:
diff changeset
2072 for mail-default-reply-to.
Dave Love <fx@gnu.org>
parents:
diff changeset
2073
Dave Love <fx@gnu.org>
parents:
diff changeset
2074 ** When you send a message in Emacs, if you specify an Rmail file with
Dave Love <fx@gnu.org>
parents:
diff changeset
2075 the FCC: header field, Emacs converts the message to Rmail format
Dave Love <fx@gnu.org>
parents:
diff changeset
2076 before writing it. Thus, the file never contains anything but Rmail
Dave Love <fx@gnu.org>
parents:
diff changeset
2077 format messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
2078
Dave Love <fx@gnu.org>
parents:
diff changeset
2079 ** The new variable mail-from-style controls whether the From: header
Dave Love <fx@gnu.org>
parents:
diff changeset
2080 should include the sender's full name, and if so, which format to use.
Dave Love <fx@gnu.org>
parents:
diff changeset
2081
Dave Love <fx@gnu.org>
parents:
diff changeset
2082 ** The new variable mail-personal-alias-file specifies the name of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2083 user's personal aliases. This defaults to the file ~/.mailrc.
Dave Love <fx@gnu.org>
parents:
diff changeset
2084 mailabbrev.el used to have its own variable for this purpose
Dave Love <fx@gnu.org>
parents:
diff changeset
2085 (mail-abbrev-mailrc-file). That variable is no longer used.
Dave Love <fx@gnu.org>
parents:
diff changeset
2086
Dave Love <fx@gnu.org>
parents:
diff changeset
2087 ** In Buffer-Menu mode, the d and C-d commands (which mark buffers for
Dave Love <fx@gnu.org>
parents:
diff changeset
2088 deletion) now accept a prefix argument which serves as a repeat count.
Dave Love <fx@gnu.org>
parents:
diff changeset
2089
Dave Love <fx@gnu.org>
parents:
diff changeset
2090 ** Changes in BibTeX mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
2091
Dave Love <fx@gnu.org>
parents:
diff changeset
2092 *** Reference keys can now be entered with TAB completion. All
Dave Love <fx@gnu.org>
parents:
diff changeset
2093 reference keys defined in that buffer and all labels that appear in
Dave Love <fx@gnu.org>
parents:
diff changeset
2094 crossreference entries are object to completion.
Dave Love <fx@gnu.org>
parents:
diff changeset
2095
Dave Love <fx@gnu.org>
parents:
diff changeset
2096 *** Braces are supported as field delimiters in addition to quotes.
Dave Love <fx@gnu.org>
parents:
diff changeset
2097 BibTeX entries may have brace-delimited and quote-delimited fields
Dave Love <fx@gnu.org>
parents:
diff changeset
2098 intermixed. The delimiters generated for new entries are specified by
Dave Love <fx@gnu.org>
parents:
diff changeset
2099 the variables bibtex-field-left-delimiter and
Dave Love <fx@gnu.org>
parents:
diff changeset
2100 bibtex-field-right-delimiter on a buffer-local basis. Those variables
Dave Love <fx@gnu.org>
parents:
diff changeset
2101 default to braces, since it is easier to put quote accented characters
Dave Love <fx@gnu.org>
parents:
diff changeset
2102 (as the german umlauts) into a brace-delimited entry.
Dave Love <fx@gnu.org>
parents:
diff changeset
2103
Dave Love <fx@gnu.org>
parents:
diff changeset
2104 *** The function bibtex-clean-entry can now be invoked with a prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
2105 argument. In this case, a label is automatically generated from
Dave Love <fx@gnu.org>
parents:
diff changeset
2106 various fields in the record. If bibtex-clean-entry is invoked on a
Dave Love <fx@gnu.org>
parents:
diff changeset
2107 record without label, a label is also generated automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
2108 Various variables (all beginning with `bibtex-autokey-') control the
Dave Love <fx@gnu.org>
parents:
diff changeset
2109 creation of that key. The variable bibtex-autokey-edit-before-use
Dave Love <fx@gnu.org>
parents:
diff changeset
2110 determines, if the user is allowed to edit auto-generated reference
Dave Love <fx@gnu.org>
parents:
diff changeset
2111 keys before they are used.
Dave Love <fx@gnu.org>
parents:
diff changeset
2112
Dave Love <fx@gnu.org>
parents:
diff changeset
2113 *** A New function bibtex-complete-string completes strings with
Dave Love <fx@gnu.org>
parents:
diff changeset
2114 respect to the strings defined in this buffer and a set of predefined
Dave Love <fx@gnu.org>
parents:
diff changeset
2115 strings (initialized to the string macros defined in the standard
Dave Love <fx@gnu.org>
parents:
diff changeset
2116 BibTeX style files) in the same way in which ispell-complete-word
Dave Love <fx@gnu.org>
parents:
diff changeset
2117 works with respect to words in a dictionary. Candidates for
Dave Love <fx@gnu.org>
parents:
diff changeset
2118 bibtex-complete-string are initialized from variable
Dave Love <fx@gnu.org>
parents:
diff changeset
2119 bibtex-predefined-strings and by parsing the files found in
Dave Love <fx@gnu.org>
parents:
diff changeset
2120 bibtex-string-files for @String definitions.
Dave Love <fx@gnu.org>
parents:
diff changeset
2121
Dave Love <fx@gnu.org>
parents:
diff changeset
2122 *** Every reference/field pair has now attached a comment which
Dave Love <fx@gnu.org>
parents:
diff changeset
2123 appears in the echo area when this field is edited. These comments
Dave Love <fx@gnu.org>
parents:
diff changeset
2124 should provide useful hints for BibTeX usage, especially for BibTeX
Dave Love <fx@gnu.org>
parents:
diff changeset
2125 beginners. New variable bibtex-help-message determines if these help
Dave Love <fx@gnu.org>
parents:
diff changeset
2126 messages are to appear in the minibuffer when moving to a text entry.
Dave Love <fx@gnu.org>
parents:
diff changeset
2127
Dave Love <fx@gnu.org>
parents:
diff changeset
2128 *** Inscriptions of menu bar changed from "Entry Types" to
Dave Love <fx@gnu.org>
parents:
diff changeset
2129 "Entry-Types" and "Bibtex Edit" to "BibTeX-Edit".
Dave Love <fx@gnu.org>
parents:
diff changeset
2130
Dave Love <fx@gnu.org>
parents:
diff changeset
2131 *** The variable bibtex-include-OPTcrossref is now not longer a binary
Dave Love <fx@gnu.org>
parents:
diff changeset
2132 switch but a list of reference names which should contain a crossref
Dave Love <fx@gnu.org>
parents:
diff changeset
2133 field. E.g., you can tell bibtex-mode you want a crossref field for
Dave Love <fx@gnu.org>
parents:
diff changeset
2134 @InProceedings and @InBook entries but for no other.
Dave Love <fx@gnu.org>
parents:
diff changeset
2135
Dave Love <fx@gnu.org>
parents:
diff changeset
2136 *** The function validate-bibtex-buffer was completely rewritten to
Dave Love <fx@gnu.org>
parents:
diff changeset
2137 validate if a buffer is syntactically correct. find-bibtex-duplicates
Dave Love <fx@gnu.org>
parents:
diff changeset
2138 is no longer a function itself but was moved into
Dave Love <fx@gnu.org>
parents:
diff changeset
2139 validate-bibtex-buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2140
Dave Love <fx@gnu.org>
parents:
diff changeset
2141 *** Cleaning a BibTeX entry tests, if necessary fields are there.
Dave Love <fx@gnu.org>
parents:
diff changeset
2142 E.g., if you tell bibtex-mode to include a crossref entry, some fields
Dave Love <fx@gnu.org>
parents:
diff changeset
2143 are optional which would be required without the crossref entry. If
Dave Love <fx@gnu.org>
parents:
diff changeset
2144 you now leave the crossref entry empty and do a bibtex-clean-entry
Dave Love <fx@gnu.org>
parents:
diff changeset
2145 with some now required fields left empty, version 2.0 of bibtex.el
Dave Love <fx@gnu.org>
parents:
diff changeset
2146 complains about the absence of these fields, whereas version 1.3
Dave Love <fx@gnu.org>
parents:
diff changeset
2147 didn't.
Dave Love <fx@gnu.org>
parents:
diff changeset
2148
Dave Love <fx@gnu.org>
parents:
diff changeset
2149 *** Default value for variables bibtex-maintain-sorted-entries and
Dave Love <fx@gnu.org>
parents:
diff changeset
2150 bibtex-sort-ignore-string-entries is now t.
Dave Love <fx@gnu.org>
parents:
diff changeset
2151
Dave Love <fx@gnu.org>
parents:
diff changeset
2152 *** All interactive functions are renamed to begin with `bibtex-'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2153
Dave Love <fx@gnu.org>
parents:
diff changeset
2154 *** Keybindings with \C-c\C-e entry changed for unification. Often
Dave Love <fx@gnu.org>
parents:
diff changeset
2155 used reference types are now on control-modified keys, mediocre used
Dave Love <fx@gnu.org>
parents:
diff changeset
2156 types are on unmodified keys, seldom used types are on shift-modified
Dave Love <fx@gnu.org>
parents:
diff changeset
2157 keys and almost never used types on meta-modified keys.
Dave Love <fx@gnu.org>
parents:
diff changeset
2158
Dave Love <fx@gnu.org>
parents:
diff changeset
2159 * Configuration Changes in Emacs 19.29
Dave Love <fx@gnu.org>
parents:
diff changeset
2160
Dave Love <fx@gnu.org>
parents:
diff changeset
2161 ** Emacs now uses directory /usr/local/share for most of its installed
Dave Love <fx@gnu.org>
parents:
diff changeset
2162 files. This follows a GNU convention for directory usage.
Dave Love <fx@gnu.org>
parents:
diff changeset
2163
Dave Love <fx@gnu.org>
parents:
diff changeset
2164 ** The option --with-x11 is no longer supported.
Dave Love <fx@gnu.org>
parents:
diff changeset
2165 X11 is the only version of X that Emacs 19.29 supports;
Dave Love <fx@gnu.org>
parents:
diff changeset
2166 use --with-x if you need to request X support explicitly.
Dave Love <fx@gnu.org>
parents:
diff changeset
2167 (Normally this should not be necessary, since configure should
Dave Love <fx@gnu.org>
parents:
diff changeset
2168 automatically enable X support if X is installed on your machine.)
Dave Love <fx@gnu.org>
parents:
diff changeset
2169
Dave Love <fx@gnu.org>
parents:
diff changeset
2170 ** If you use the site-init.el file to set the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
2171 mail-host-address to a string in the dumped Emacs, that string becomes
Dave Love <fx@gnu.org>
parents:
diff changeset
2172 the default host address for initializing user-mail-address.
Dave Love <fx@gnu.org>
parents:
diff changeset
2173 It is used instead of the value of (system-name).
Dave Love <fx@gnu.org>
parents:
diff changeset
2174
Dave Love <fx@gnu.org>
parents:
diff changeset
2175 * Lisp-Level Changes in Emacs 19.29
Dave Love <fx@gnu.org>
parents:
diff changeset
2176
Dave Love <fx@gnu.org>
parents:
diff changeset
2177 ** Basic Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2178
Dave Love <fx@gnu.org>
parents:
diff changeset
2179 *** The range of integer values is now at least 2**28 on all machines.
Dave Love <fx@gnu.org>
parents:
diff changeset
2180 This means the maximum size of a buffer is at least 2**27-1,
Dave Love <fx@gnu.org>
parents:
diff changeset
2181 or 134,217,727.
Dave Love <fx@gnu.org>
parents:
diff changeset
2182
Dave Love <fx@gnu.org>
parents:
diff changeset
2183 *** You can now use Common Lisp syntax for the backquote and comma
Dave Love <fx@gnu.org>
parents:
diff changeset
2184 macros. Thus, you can now write `(x ,y z) instead of (` (x (, y) z)).
Dave Love <fx@gnu.org>
parents:
diff changeset
2185
Dave Love <fx@gnu.org>
parents:
diff changeset
2186 The old syntax is still accepted.
Dave Love <fx@gnu.org>
parents:
diff changeset
2187
Dave Love <fx@gnu.org>
parents:
diff changeset
2188 *** The new function rassoc is like assoc, except that it compares the
Dave Love <fx@gnu.org>
parents:
diff changeset
2189 key against the cdr of each alist element, where assoc would compare
Dave Love <fx@gnu.org>
parents:
diff changeset
2190 it against the car of each alist element.
Dave Love <fx@gnu.org>
parents:
diff changeset
2191
Dave Love <fx@gnu.org>
parents:
diff changeset
2192 *** The new function unintern deletes a symbol from an obarray. The
Dave Love <fx@gnu.org>
parents:
diff changeset
2193 first argument can be the symbol to delete, or a string giving its
Dave Love <fx@gnu.org>
parents:
diff changeset
2194 name. The second argument specifies the obarray (nil means the
Dave Love <fx@gnu.org>
parents:
diff changeset
2195 current default obarray).
Dave Love <fx@gnu.org>
parents:
diff changeset
2196
Dave Love <fx@gnu.org>
parents:
diff changeset
2197 If the specified symbol is not in the obarray, or if there's no symbol
Dave Love <fx@gnu.org>
parents:
diff changeset
2198 in the obarray matching the specified string, unintern does nothing
Dave Love <fx@gnu.org>
parents:
diff changeset
2199 and returns nil. If it does delete a symbol, it returns t.
Dave Love <fx@gnu.org>
parents:
diff changeset
2200
Dave Love <fx@gnu.org>
parents:
diff changeset
2201 *** You can specify an alternative read function for use by load and
Dave Love <fx@gnu.org>
parents:
diff changeset
2202 eval-region by binding the variable load-read-function to some other
Dave Love <fx@gnu.org>
parents:
diff changeset
2203 function. This function should accept one argument just like read.
Dave Love <fx@gnu.org>
parents:
diff changeset
2204 If load-read-function is nil, load and eval-region use ordinary read.
Dave Love <fx@gnu.org>
parents:
diff changeset
2205
Dave Love <fx@gnu.org>
parents:
diff changeset
2206 *** The new function `type-of' takes any object as argument, and
Dave Love <fx@gnu.org>
parents:
diff changeset
2207 returns a symbol identifying the type of that object--one of `symbol',
Dave Love <fx@gnu.org>
parents:
diff changeset
2208 `integer', `float', `string', `cons', `vector', `marker', `overlay',
Dave Love <fx@gnu.org>
parents:
diff changeset
2209 `window', `buffer', `subr', `compiled-function',
Dave Love <fx@gnu.org>
parents:
diff changeset
2210 `window-configuration', `process'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2211
Dave Love <fx@gnu.org>
parents:
diff changeset
2212 *** When you use eval-after-load for a file that is already loaded, it
Dave Love <fx@gnu.org>
parents:
diff changeset
2213 executes the FORM right away. As before, if the file is not yet
Dave Love <fx@gnu.org>
parents:
diff changeset
2214 loaded, it arranges to execute FORM if and when the file is loaded
Dave Love <fx@gnu.org>
parents:
diff changeset
2215 later. The result is: if you have called eval-after-load for a file,
Dave Love <fx@gnu.org>
parents:
diff changeset
2216 and if that file has been loaded, then regardless of the order of
Dave Love <fx@gnu.org>
parents:
diff changeset
2217 these two events, the specified form has been evaluated.
Dave Love <fx@gnu.org>
parents:
diff changeset
2218
Dave Love <fx@gnu.org>
parents:
diff changeset
2219 *** The Lisp construct #@NUMBER now skips the next NUMBER characters,
Dave Love <fx@gnu.org>
parents:
diff changeset
2220 treating them as a comment.
Dave Love <fx@gnu.org>
parents:
diff changeset
2221
Dave Love <fx@gnu.org>
parents:
diff changeset
2222 You would not want to use this in a file you edit by hand, but it is
Dave Love <fx@gnu.org>
parents:
diff changeset
2223 useful for commenting out parts of machine-generated files.
Dave Love <fx@gnu.org>
parents:
diff changeset
2224
Dave Love <fx@gnu.org>
parents:
diff changeset
2225 *** Two new functions, `plist-get' and `plist-put',
Dave Love <fx@gnu.org>
parents:
diff changeset
2226 allow you to modify and retrieve values from lists formatted as property-lists.
Dave Love <fx@gnu.org>
parents:
diff changeset
2227 They work like `get' and `put', but operate on any list.
Dave Love <fx@gnu.org>
parents:
diff changeset
2228 `plist-put' returns the modified property-list; you must store it
Dave Love <fx@gnu.org>
parents:
diff changeset
2229 back where you got it.
Dave Love <fx@gnu.org>
parents:
diff changeset
2230
Dave Love <fx@gnu.org>
parents:
diff changeset
2231 *** The new function add-to-list is called with two elements,
Dave Love <fx@gnu.org>
parents:
diff changeset
2232 a variable that holds a list and a new element.
Dave Love <fx@gnu.org>
parents:
diff changeset
2233 It adds the element to the list unless it is already present.
Dave Love <fx@gnu.org>
parents:
diff changeset
2234 It compares elements using `equal'. Here is an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
2235
Dave Love <fx@gnu.org>
parents:
diff changeset
2236 (setq foo '(a b)) => (a b)
Dave Love <fx@gnu.org>
parents:
diff changeset
2237
Dave Love <fx@gnu.org>
parents:
diff changeset
2238 (add-to-list 'foo 'c) => (c a b)
Dave Love <fx@gnu.org>
parents:
diff changeset
2239
Dave Love <fx@gnu.org>
parents:
diff changeset
2240 (add-to-list 'foo 'b) => (c a b)
Dave Love <fx@gnu.org>
parents:
diff changeset
2241
Dave Love <fx@gnu.org>
parents:
diff changeset
2242 foo => (c a b)
Dave Love <fx@gnu.org>
parents:
diff changeset
2243
Dave Love <fx@gnu.org>
parents:
diff changeset
2244 ** Changes in compilation.
Dave Love <fx@gnu.org>
parents:
diff changeset
2245
Dave Love <fx@gnu.org>
parents:
diff changeset
2246 Functions and variables loaded from a byte-compiled file
Dave Love <fx@gnu.org>
parents:
diff changeset
2247 now refer to the file for their doc strings.
Dave Love <fx@gnu.org>
parents:
diff changeset
2248
Dave Love <fx@gnu.org>
parents:
diff changeset
2249 This has a few consequences:
Dave Love <fx@gnu.org>
parents:
diff changeset
2250
Dave Love <fx@gnu.org>
parents:
diff changeset
2251 -- Loading the file is faster and uses less memory.
Dave Love <fx@gnu.org>
parents:
diff changeset
2252 -- Reference to doc strings is a little slower (the same speed
Dave Love <fx@gnu.org>
parents:
diff changeset
2253 as reference to the doc strings of primitive and preloaded functions).
Dave Love <fx@gnu.org>
parents:
diff changeset
2254 -- The compiled files will not work in old versions of Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
2255 -- If you move the compiled file after loading it, Emacs can no longer
Dave Love <fx@gnu.org>
parents:
diff changeset
2256 find these doc strings.
Dave Love <fx@gnu.org>
parents:
diff changeset
2257 -- If you alter the compiled file (such as by compiling a new
Dave Love <fx@gnu.org>
parents:
diff changeset
2258 version), then further access to documentation strings will get
Dave Love <fx@gnu.org>
parents:
diff changeset
2259 nonsense results.
Dave Love <fx@gnu.org>
parents:
diff changeset
2260
Dave Love <fx@gnu.org>
parents:
diff changeset
2261 The byte compiler now optionally supports lazy loading of compiled
Dave Love <fx@gnu.org>
parents:
diff changeset
2262 functions' definitions. If you enable this feature when you compile,
Dave Love <fx@gnu.org>
parents:
diff changeset
2263 loading the compiled file does not actually bring the function
Dave Love <fx@gnu.org>
parents:
diff changeset
2264 definitions into core. Instead it creates references to the compiled
Dave Love <fx@gnu.org>
parents:
diff changeset
2265 file, and brings each function's definition into core the first time
Dave Love <fx@gnu.org>
parents:
diff changeset
2266 you call that function, or when you force it with the new function
Dave Love <fx@gnu.org>
parents:
diff changeset
2267 `fetch-bytecode'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2268
Dave Love <fx@gnu.org>
parents:
diff changeset
2269 Using the lazy loading feature has a few consequences:
Dave Love <fx@gnu.org>
parents:
diff changeset
2270
Dave Love <fx@gnu.org>
parents:
diff changeset
2271 -- Loading the file is faster and uses less memory.
Dave Love <fx@gnu.org>
parents:
diff changeset
2272 -- Calling any function in the file for the first time is slower.
Dave Love <fx@gnu.org>
parents:
diff changeset
2273 -- If you move the compiled file after loading it, Emacs can no longer
Dave Love <fx@gnu.org>
parents:
diff changeset
2274 find the function definitions.
Dave Love <fx@gnu.org>
parents:
diff changeset
2275 -- If you alter the compiled file (such as by compiling a new
Dave Love <fx@gnu.org>
parents:
diff changeset
2276 version), then further access to functions not already loaded
Dave Love <fx@gnu.org>
parents:
diff changeset
2277 will get nonsense results.
Dave Love <fx@gnu.org>
parents:
diff changeset
2278
Dave Love <fx@gnu.org>
parents:
diff changeset
2279 To enable the lazy loading feature, set up a non-nil file local
Dave Love <fx@gnu.org>
parents:
diff changeset
2280 variable binding for the variable `byte-compile-dynamic' in the Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2281 source file. For example, put this on the first line:
Dave Love <fx@gnu.org>
parents:
diff changeset
2282
Dave Love <fx@gnu.org>
parents:
diff changeset
2283 -*-byte-compile-dynamic: t;-*-
Dave Love <fx@gnu.org>
parents:
diff changeset
2284
Dave Love <fx@gnu.org>
parents:
diff changeset
2285 It's a good idea to use the lazy loading feature for a file that
Dave Love <fx@gnu.org>
parents:
diff changeset
2286 contains many functions, most of which are not actually used by a
Dave Love <fx@gnu.org>
parents:
diff changeset
2287 given user in a given session.
Dave Love <fx@gnu.org>
parents:
diff changeset
2288
Dave Love <fx@gnu.org>
parents:
diff changeset
2289 To turn off the basic feature of referring to the file for doc
Dave Love <fx@gnu.org>
parents:
diff changeset
2290 strings, set byte-compile-dynamic-docstrings to nil. You can do this
Dave Love <fx@gnu.org>
parents:
diff changeset
2291 globally, or for one source file by adding this to the first line:
Dave Love <fx@gnu.org>
parents:
diff changeset
2292
Dave Love <fx@gnu.org>
parents:
diff changeset
2293 -*-byte-compile-dynamic-docstrings: nil;-*-
Dave Love <fx@gnu.org>
parents:
diff changeset
2294
Dave Love <fx@gnu.org>
parents:
diff changeset
2295 ** Strings
Dave Love <fx@gnu.org>
parents:
diff changeset
2296
Dave Love <fx@gnu.org>
parents:
diff changeset
2297 *** Do not pass integer arguments to `concat' (or `vconcat' or
Dave Love <fx@gnu.org>
parents:
diff changeset
2298 `append'). We are phasing out the old unrecommended support for
Dave Love <fx@gnu.org>
parents:
diff changeset
2299 integers as arguments to these functions, in preparation for treating
Dave Love <fx@gnu.org>
parents:
diff changeset
2300 numbers as single characters in a future release. To concatenate
Dave Love <fx@gnu.org>
parents:
diff changeset
2301 numbers in string form, use `number-to-string' first, or rewrite the
Dave Love <fx@gnu.org>
parents:
diff changeset
2302 call to use `format' instead of `concat'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2303
Dave Love <fx@gnu.org>
parents:
diff changeset
2304 *** The new function match-string returns the string of text matched at
Dave Love <fx@gnu.org>
parents:
diff changeset
2305 the given parenthesized expression by the last regexp search, or nil
Dave Love <fx@gnu.org>
parents:
diff changeset
2306 if there was no match. If the last match was by `string-match' on a
Dave Love <fx@gnu.org>
parents:
diff changeset
2307 string, the string must be given. Therefore, this function can be
Dave Love <fx@gnu.org>
parents:
diff changeset
2308 used in place of `buffer-substring' and `substring', when using
Dave Love <fx@gnu.org>
parents:
diff changeset
2309 `match-beginning' and `match-end' to find match positions.
Dave Love <fx@gnu.org>
parents:
diff changeset
2310
Dave Love <fx@gnu.org>
parents:
diff changeset
2311 (match-string N) or (match-string N STRING)
Dave Love <fx@gnu.org>
parents:
diff changeset
2312
Dave Love <fx@gnu.org>
parents:
diff changeset
2313 *** The function replace-match now accepts an optional fourth argument,
Dave Love <fx@gnu.org>
parents:
diff changeset
2314 STRING. Use this after performing string-match on STRING, to replace
Dave Love <fx@gnu.org>
parents:
diff changeset
2315 the portion of STRING that was matched. When used in this way,
Dave Love <fx@gnu.org>
parents:
diff changeset
2316 replace-match returns a newly created string which is the same as
Dave Love <fx@gnu.org>
parents:
diff changeset
2317 STRING except for the matched portion.
Dave Love <fx@gnu.org>
parents:
diff changeset
2318
Dave Love <fx@gnu.org>
parents:
diff changeset
2319 *** The new function buffer-substring-no-properties
Dave Love <fx@gnu.org>
parents:
diff changeset
2320 is like buffer-substring except that the string it returns
Dave Love <fx@gnu.org>
parents:
diff changeset
2321 has no text properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
2322
Dave Love <fx@gnu.org>
parents:
diff changeset
2323 *** The function `equal' now considers two strings to be different
Dave Love <fx@gnu.org>
parents:
diff changeset
2324 if they don't have the same text properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
2325
Dave Love <fx@gnu.org>
parents:
diff changeset
2326 ** Completion
Dave Love <fx@gnu.org>
parents:
diff changeset
2327
Dave Love <fx@gnu.org>
parents:
diff changeset
2328 *** all-completions now takes an optional fourth argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
2329 If that argument is non-nil, completions that start with a space
Dave Love <fx@gnu.org>
parents:
diff changeset
2330 are ignored unless the initial string also starts with a space.
Dave Love <fx@gnu.org>
parents:
diff changeset
2331 (This used to happen unconditionally.)
Dave Love <fx@gnu.org>
parents:
diff changeset
2332
Dave Love <fx@gnu.org>
parents:
diff changeset
2333 ** Local Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
2334
Dave Love <fx@gnu.org>
parents:
diff changeset
2335 *** Local hook variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
2336
Dave Love <fx@gnu.org>
parents:
diff changeset
2337 There is now a clean way to give a hook variable a buffer-local value.
Dave Love <fx@gnu.org>
parents:
diff changeset
2338 Call the function `make-local-hook' to do this.
Dave Love <fx@gnu.org>
parents:
diff changeset
2339
Dave Love <fx@gnu.org>
parents:
diff changeset
2340 Once a hook variable is buffer-local, you can add hooks to it either
Dave Love <fx@gnu.org>
parents:
diff changeset
2341 globally or locally. run-hooks runs the local hook functions
Dave Love <fx@gnu.org>
parents:
diff changeset
2342 of the current buffer, then all the global hook functions.
Dave Love <fx@gnu.org>
parents:
diff changeset
2343
Dave Love <fx@gnu.org>
parents:
diff changeset
2344 The functions add-hook and remove-hook take an additional optional
Dave Love <fx@gnu.org>
parents:
diff changeset
2345 argument LOCAL which says whether to add (or remove) a local hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2346 function or a global one.
Dave Love <fx@gnu.org>
parents:
diff changeset
2347
Dave Love <fx@gnu.org>
parents:
diff changeset
2348 Local hooks use t as an element of the (local) value of the hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2349 variable as a flag meaning to use the global value also.
Dave Love <fx@gnu.org>
parents:
diff changeset
2350
Dave Love <fx@gnu.org>
parents:
diff changeset
2351 *** The new function local-variable-p tells you whether a particular
Dave Love <fx@gnu.org>
parents:
diff changeset
2352 variable is buffer-local in the current buffer or a specified buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2353
Dave Love <fx@gnu.org>
parents:
diff changeset
2354 ** Editing Facilities
Dave Love <fx@gnu.org>
parents:
diff changeset
2355
Dave Love <fx@gnu.org>
parents:
diff changeset
2356 *** The function copy-region-as-kill no longer sets this-command;
Dave Love <fx@gnu.org>
parents:
diff changeset
2357 as a result, a following kill command will not normally append
Dave Love <fx@gnu.org>
parents:
diff changeset
2358 to the text saved by copy-region-as-kill.
Dave Love <fx@gnu.org>
parents:
diff changeset
2359
Dave Love <fx@gnu.org>
parents:
diff changeset
2360 *** Regular expression searching and matching no longer performs full
Dave Love <fx@gnu.org>
parents:
diff changeset
2361 Posix backtracking by default. They now stop with the first match found
Dave Love <fx@gnu.org>
parents:
diff changeset
2362 instead of looking for the longest match--just as they did in Emacs 18.
Dave Love <fx@gnu.org>
parents:
diff changeset
2363 The reason for this change is to get higher speed.
Dave Love <fx@gnu.org>
parents:
diff changeset
2364
Dave Love <fx@gnu.org>
parents:
diff changeset
2365 There are new functions you can use if you really want to search or
Dave Love <fx@gnu.org>
parents:
diff changeset
2366 match with Posix behavior: posix-search-forward,
Dave Love <fx@gnu.org>
parents:
diff changeset
2367 posix-search-backward, posix-looking-at, and posix-string-match. Call
Dave Love <fx@gnu.org>
parents:
diff changeset
2368 these just like re-search-forward, re-search-backward, looking-at, and
Dave Love <fx@gnu.org>
parents:
diff changeset
2369 string-match.
Dave Love <fx@gnu.org>
parents:
diff changeset
2370
Dave Love <fx@gnu.org>
parents:
diff changeset
2371 ** Files
Dave Love <fx@gnu.org>
parents:
diff changeset
2372
Dave Love <fx@gnu.org>
parents:
diff changeset
2373 *** The new variable `format-alist' defines file formats,
Dave Love <fx@gnu.org>
parents:
diff changeset
2374 which are ways of translating between the data in a file and things
Dave Love <fx@gnu.org>
parents:
diff changeset
2375 (text, text-properties, and possibly other information) in a buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2376
Dave Love <fx@gnu.org>
parents:
diff changeset
2377 `format-alist' has one element for each format. Each element is a
Dave Love <fx@gnu.org>
parents:
diff changeset
2378 list like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
2379 (NAME DOC-STRING REGEXP FROM-FN TO-FN MODIFY MODE-FN)
Dave Love <fx@gnu.org>
parents:
diff changeset
2380 containing the name of the format, a documentation string, a regular
Dave Love <fx@gnu.org>
parents:
diff changeset
2381 expression which is used to recognize files in that format, a decoding
Dave Love <fx@gnu.org>
parents:
diff changeset
2382 function, an encoding function, a flag that indicates whether the
Dave Love <fx@gnu.org>
parents:
diff changeset
2383 encoding function modifies the buffer, and a mode function.
Dave Love <fx@gnu.org>
parents:
diff changeset
2384
Dave Love <fx@gnu.org>
parents:
diff changeset
2385 FROM-FN is called to decode files in that format; it gets two args, BEGIN
Dave Love <fx@gnu.org>
parents:
diff changeset
2386 and END, and can make any modifications it likes, returning the new
Dave Love <fx@gnu.org>
parents:
diff changeset
2387 end position. It must make sure that the beginning of the file no
Dave Love <fx@gnu.org>
parents:
diff changeset
2388 longer matches REGEXP, or else it will get called again.
Dave Love <fx@gnu.org>
parents:
diff changeset
2389 TO-FN is called to encode a region into that format; it is also passed BEGIN
Dave Love <fx@gnu.org>
parents:
diff changeset
2390 and END, and either returns a list of annotations as in
Dave Love <fx@gnu.org>
parents:
diff changeset
2391 `write-region-annotate-functions', or modifies the region and returns
Dave Love <fx@gnu.org>
parents:
diff changeset
2392 the new end position.
Dave Love <fx@gnu.org>
parents:
diff changeset
2393 MODIFY, if non-nil, means the TO-FN modifies the region. If nil, TO-FN may
Dave Love <fx@gnu.org>
parents:
diff changeset
2394 not make any changes and should return a list of annotations.
Dave Love <fx@gnu.org>
parents:
diff changeset
2395
Dave Love <fx@gnu.org>
parents:
diff changeset
2396 `insert-file-contents' checks the beginning of the file that it is
Dave Love <fx@gnu.org>
parents:
diff changeset
2397 inserting to see if it matches one of the regexps. If so, then it
Dave Love <fx@gnu.org>
parents:
diff changeset
2398 calls the decoding function, and then looks for another match. When
Dave Love <fx@gnu.org>
parents:
diff changeset
2399 visiting a file, it also calls the mode function, and sets the
Dave Love <fx@gnu.org>
parents:
diff changeset
2400 variable `buffer-file-format' to the list of formats that the file
Dave Love <fx@gnu.org>
parents:
diff changeset
2401 used.
Dave Love <fx@gnu.org>
parents:
diff changeset
2402
Dave Love <fx@gnu.org>
parents:
diff changeset
2403 `write-region' calls the encoding functions for each format in
Dave Love <fx@gnu.org>
parents:
diff changeset
2404 `buffer-file-format' before it writes the file. To save a file in a
Dave Love <fx@gnu.org>
parents:
diff changeset
2405 different format, either set `buffer-file-format' to a different
Dave Love <fx@gnu.org>
parents:
diff changeset
2406 value, or call the new function `format-write-file'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2407
Dave Love <fx@gnu.org>
parents:
diff changeset
2408 Since some encoding functions may be slow, you can request that
Dave Love <fx@gnu.org>
parents:
diff changeset
2409 auto-save use a format different from the buffer's default by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
2410 the variable `auto-save-file-format' to the desired format. This will
Dave Love <fx@gnu.org>
parents:
diff changeset
2411 determine the format of all auto-save files.
Dave Love <fx@gnu.org>
parents:
diff changeset
2412
Dave Love <fx@gnu.org>
parents:
diff changeset
2413 *** The new function file-ownership-preserved-p tells you whether
Dave Love <fx@gnu.org>
parents:
diff changeset
2414 deleting a file and recreating it would keep the file's owner
Dave Love <fx@gnu.org>
parents:
diff changeset
2415 unchanged.
Dave Love <fx@gnu.org>
parents:
diff changeset
2416
Dave Love <fx@gnu.org>
parents:
diff changeset
2417 *** The new function file-regular-p returns t if a file
Dave Love <fx@gnu.org>
parents:
diff changeset
2418 is a "regular" file (not a directory, symlink, named pipe,
Dave Love <fx@gnu.org>
parents:
diff changeset
2419 terminal, or other I/O device).
Dave Love <fx@gnu.org>
parents:
diff changeset
2420
Dave Love <fx@gnu.org>
parents:
diff changeset
2421 *** The new function file-name-sans-extension discards the extension
Dave Love <fx@gnu.org>
parents:
diff changeset
2422 of a file name. You call it with a file name, and returns a string
Dave Love <fx@gnu.org>
parents:
diff changeset
2423 lacking the extension.
Dave Love <fx@gnu.org>
parents:
diff changeset
2424
Dave Love <fx@gnu.org>
parents:
diff changeset
2425 *** The variable path-separator is a string which says which
Dave Love <fx@gnu.org>
parents:
diff changeset
2426 character separates directories in a search path. It is ":"
Dave Love <fx@gnu.org>
parents:
diff changeset
2427 for Unix and GNU systems, ";" for MSDOG and Windows NT.
Dave Love <fx@gnu.org>
parents:
diff changeset
2428
Dave Love <fx@gnu.org>
parents:
diff changeset
2429 ** Commands and Key Sequences
Dave Love <fx@gnu.org>
parents:
diff changeset
2430
Dave Love <fx@gnu.org>
parents:
diff changeset
2431 *** Key sequences consisting of C-c followed by {, }, <, >, : or ; are
Dave Love <fx@gnu.org>
parents:
diff changeset
2432 now reserved for major modes. Sequences consisting of C-c followed by
Dave Love <fx@gnu.org>
parents:
diff changeset
2433 any other punctuation character are now meant for minor modes. We don't
Dave Love <fx@gnu.org>
parents:
diff changeset
2434 plan to convert all existing major modes to stop using those sequences,
Dave Love <fx@gnu.org>
parents:
diff changeset
2435 but we hope to keep them to a minimum.
Dave Love <fx@gnu.org>
parents:
diff changeset
2436
Dave Love <fx@gnu.org>
parents:
diff changeset
2437 *** When the post-command-hook or the pre-command-hook gets an error, the error
Dave Love <fx@gnu.org>
parents:
diff changeset
2438 is silently ignored. Emacs no longer sets the hook variable to nil when this
Dave Love <fx@gnu.org>
parents:
diff changeset
2439 happens. Meanwhile, the hook functions can now alter the hook variable in
Dave Love <fx@gnu.org>
parents:
diff changeset
2440 a normal fashion; there is no need to do anything special.
Dave Love <fx@gnu.org>
parents:
diff changeset
2441
Dave Love <fx@gnu.org>
parents:
diff changeset
2442 *** define-key, lookup-key, and various other functions for changing or
Dave Love <fx@gnu.org>
parents:
diff changeset
2443 looking up key bindings now let you write an event type with a list
Dave Love <fx@gnu.org>
parents:
diff changeset
2444 like (ctrl meta newline) or (meta ?d), as in XEmacs. (ctrl meta newline)
Dave Love <fx@gnu.org>
parents:
diff changeset
2445 is equivalent to the event type symbol C-M-newline, and (meta ?d)
Dave Love <fx@gnu.org>
parents:
diff changeset
2446 is equivalent to the character ?\M-d.
Dave Love <fx@gnu.org>
parents:
diff changeset
2447
Dave Love <fx@gnu.org>
parents:
diff changeset
2448 *** The function event-convert-list converts a list such as
Dave Love <fx@gnu.org>
parents:
diff changeset
2449 (meta ?d) into the corresponding event type (a symbol or integer).
Dave Love <fx@gnu.org>
parents:
diff changeset
2450
Dave Love <fx@gnu.org>
parents:
diff changeset
2451 *** In an interactive spec, `k' means to read a key sequence. In this
Dave Love <fx@gnu.org>
parents:
diff changeset
2452 key sequence, upper case characters and shifted function keys which
Dave Love <fx@gnu.org>
parents:
diff changeset
2453 have no bindings are converted to lower case if that makes them
Dave Love <fx@gnu.org>
parents:
diff changeset
2454 defined.
Dave Love <fx@gnu.org>
parents:
diff changeset
2455
Dave Love <fx@gnu.org>
parents:
diff changeset
2456 The new interactive code `K' reads a key sequence similarly, but does
Dave Love <fx@gnu.org>
parents:
diff changeset
2457 not convert the last event. `K' is useful for reading a key sequence
Dave Love <fx@gnu.org>
parents:
diff changeset
2458 to be given a binding.
Dave Love <fx@gnu.org>
parents:
diff changeset
2459
Dave Love <fx@gnu.org>
parents:
diff changeset
2460 *** The variable overriding-local-map now has no effect on the menu bar
Dave Love <fx@gnu.org>
parents:
diff changeset
2461 display unless overriding-local-map-menu-flag is non-nil. This is why
Dave Love <fx@gnu.org>
parents:
diff changeset
2462 incremental search no longer temporarily changes the menu bars.
Dave Love <fx@gnu.org>
parents:
diff changeset
2463
Dave Love <fx@gnu.org>
parents:
diff changeset
2464 Note that overriding-local-map does still affect the execution of key
Dave Love <fx@gnu.org>
parents:
diff changeset
2465 sequences entered using the menu bar. So if you use
Dave Love <fx@gnu.org>
parents:
diff changeset
2466 overriding-local-map, and a menu bar key sequence comes in, you should
Dave Love <fx@gnu.org>
parents:
diff changeset
2467 make sure to clear overriding-local-map before that key sequence gets
Dave Love <fx@gnu.org>
parents:
diff changeset
2468 looked up and executed. But this is what you'd normally do anyway:
Dave Love <fx@gnu.org>
parents:
diff changeset
2469 programs that use overriding-local-map normally exit and "put back"
Dave Love <fx@gnu.org>
parents:
diff changeset
2470 any event such as menu-bar that they do not handle specially.
Dave Love <fx@gnu.org>
parents:
diff changeset
2471
Dave Love <fx@gnu.org>
parents:
diff changeset
2472 *** The new variable `overriding-terminal-local-map' is like
Dave Love <fx@gnu.org>
parents:
diff changeset
2473 overriding-local-map, but is specific to a single terminal.
Dave Love <fx@gnu.org>
parents:
diff changeset
2474
Dave Love <fx@gnu.org>
parents:
diff changeset
2475 *** delete-frame events.
Dave Love <fx@gnu.org>
parents:
diff changeset
2476
Dave Love <fx@gnu.org>
parents:
diff changeset
2477 When you use the X window manager's "delete window" command, this now
Dave Love <fx@gnu.org>
parents:
diff changeset
2478 generates a delete-frame event. The standard definition of this event
Dave Love <fx@gnu.org>
parents:
diff changeset
2479 is a command that deletes the frame that received the event, and kills
Dave Love <fx@gnu.org>
parents:
diff changeset
2480 Emacs when the last visible or iconified frame is deleted. You can
Dave Love <fx@gnu.org>
parents:
diff changeset
2481 rebind the event to some other command if you wish.
Dave Love <fx@gnu.org>
parents:
diff changeset
2482
Dave Love <fx@gnu.org>
parents:
diff changeset
2483 *** Two new types of events, iconify-frame and make-frame-visible,
Dave Love <fx@gnu.org>
parents:
diff changeset
2484 indicate that the user iconified or deiconified a frame with the
Dave Love <fx@gnu.org>
parents:
diff changeset
2485 window manager. Since the window manager has already done the work,
Dave Love <fx@gnu.org>
parents:
diff changeset
2486 the default definition for both event types in Emacs is to do nothing.
Dave Love <fx@gnu.org>
parents:
diff changeset
2487
Dave Love <fx@gnu.org>
parents:
diff changeset
2488 ** Frames and X
Dave Love <fx@gnu.org>
parents:
diff changeset
2489
Dave Love <fx@gnu.org>
parents:
diff changeset
2490 *** Certain Lisp variables are now local to an X terminal (in other
Dave Love <fx@gnu.org>
parents:
diff changeset
2491 words, all the screens of a single X server). The value in effect, at
Dave Love <fx@gnu.org>
parents:
diff changeset
2492 any given time, is the one that belongs to the terminal of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2493 selected frame. The terminal-local variables are
Dave Love <fx@gnu.org>
parents:
diff changeset
2494 default-minibuffer-frame, system-key-alist, defining-kbd-macro, and
Dave Love <fx@gnu.org>
parents:
diff changeset
2495 last-kbd-macro. There is no way for Lisp programs to create others.
Dave Love <fx@gnu.org>
parents:
diff changeset
2496
Dave Love <fx@gnu.org>
parents:
diff changeset
2497 The terminal-local variables cannot be buffer-local.
Dave Love <fx@gnu.org>
parents:
diff changeset
2498
Dave Love <fx@gnu.org>
parents:
diff changeset
2499 *** When you create an X frame, for the `top' and `left' frame
Dave Love <fx@gnu.org>
parents:
diff changeset
2500 parameters, you can now use values of the form (+ N) or (- N), where N
Dave Love <fx@gnu.org>
parents:
diff changeset
2501 is an integer. (+ N) means N pixels to the right of the left edge of
Dave Love <fx@gnu.org>
parents:
diff changeset
2502 the screen and (- N) means N pixels to the left of the right edge. In
Dave Love <fx@gnu.org>
parents:
diff changeset
2503 both cases, N may be zero (exactly at the edge) or negative (putting
Dave Love <fx@gnu.org>
parents:
diff changeset
2504 the window partly off the screen).
Dave Love <fx@gnu.org>
parents:
diff changeset
2505
Dave Love <fx@gnu.org>
parents:
diff changeset
2506 The function x-parse-geometry can return values of these forms
Dave Love <fx@gnu.org>
parents:
diff changeset
2507 for certain inputs.
Dave Love <fx@gnu.org>
parents:
diff changeset
2508
Dave Love <fx@gnu.org>
parents:
diff changeset
2509 *** The variable menu-bar-file-menu has been renamed to
Dave Love <fx@gnu.org>
parents:
diff changeset
2510 menu-bar-files-menu to match the actual item that appears in the menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
2511 (All the other such variable names do match.)
Dave Love <fx@gnu.org>
parents:
diff changeset
2512
Dave Love <fx@gnu.org>
parents:
diff changeset
2513 *** The new function active-minibuffer-window returns the minibuffer window
Dave Love <fx@gnu.org>
parents:
diff changeset
2514 currently active, or nil if none is now active.
Dave Love <fx@gnu.org>
parents:
diff changeset
2515
Dave Love <fx@gnu.org>
parents:
diff changeset
2516 *** In the functions next-window, previous-window, next-frame,
Dave Love <fx@gnu.org>
parents:
diff changeset
2517 previous-frame, get-buffer-window, get-lru-window, get-largest-window
Dave Love <fx@gnu.org>
parents:
diff changeset
2518 and delete-windows-on, if you specify 0 for the last argument,
Dave Love <fx@gnu.org>
parents:
diff changeset
2519 it means to consider all visible and iconified frames.
Dave Love <fx@gnu.org>
parents:
diff changeset
2520
Dave Love <fx@gnu.org>
parents:
diff changeset
2521 *** When you set a frame's cursor type with modify-frame-parameters,
Dave Love <fx@gnu.org>
parents:
diff changeset
2522 you can now specify (bar . INTEGER) as the cursor type. This stands
Dave Love <fx@gnu.org>
parents:
diff changeset
2523 for a bar cursor of width INTEGER.
Dave Love <fx@gnu.org>
parents:
diff changeset
2524
Dave Love <fx@gnu.org>
parents:
diff changeset
2525 *** The new function facep returns t if its argument is a face name
Dave Love <fx@gnu.org>
parents:
diff changeset
2526 (or if it is a vector such as is used internally by the Lisp code
Dave Love <fx@gnu.org>
parents:
diff changeset
2527 to represent a face).
Dave Love <fx@gnu.org>
parents:
diff changeset
2528
Dave Love <fx@gnu.org>
parents:
diff changeset
2529 *** Each frame can now have a buffer-predicate function,
Dave Love <fx@gnu.org>
parents:
diff changeset
2530 which is the `buffer-predicate' frame parameter.
Dave Love <fx@gnu.org>
parents:
diff changeset
2531 When `other-buffer' looks for an alternative buffer, it considers
Dave Love <fx@gnu.org>
parents:
diff changeset
2532 only the buffers that fit the selected frame's buffer predicate (if it
Dave Love <fx@gnu.org>
parents:
diff changeset
2533 has one). This is useful for applications that make their own frames.
Dave Love <fx@gnu.org>
parents:
diff changeset
2534
Dave Love <fx@gnu.org>
parents:
diff changeset
2535 *** When you create an X frame, you can now specify the frame parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
2536 `display'. This says which display to put the frame on. The value
Dave Love <fx@gnu.org>
parents:
diff changeset
2537 should be a display name--a string of the form
Dave Love <fx@gnu.org>
parents:
diff changeset
2538 "HOST:DPYNUMBER.SCREENNUMBER".
Dave Love <fx@gnu.org>
parents:
diff changeset
2539
Dave Love <fx@gnu.org>
parents:
diff changeset
2540 The functions x-server-... and x-display-... now take an optional
Dave Love <fx@gnu.org>
parents:
diff changeset
2541 argument which specifies the display to ask about. You can use either
Dave Love <fx@gnu.org>
parents:
diff changeset
2542 a display name string or a frame. A value of nil stands for the
Dave Love <fx@gnu.org>
parents:
diff changeset
2543 selected frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
2544
Dave Love <fx@gnu.org>
parents:
diff changeset
2545 To close the connection to an X display, use the function
Dave Love <fx@gnu.org>
parents:
diff changeset
2546 x-close-connection. Specify which display with a display name. You
Dave Love <fx@gnu.org>
parents:
diff changeset
2547 cannot close the connection if Emacs still has frames open on that
Dave Love <fx@gnu.org>
parents:
diff changeset
2548 display.
Dave Love <fx@gnu.org>
parents:
diff changeset
2549
Dave Love <fx@gnu.org>
parents:
diff changeset
2550 x-display-list returns a list indicating which displays Emacs has
Dave Love <fx@gnu.org>
parents:
diff changeset
2551 connections to. Its elements are display names (strings).
Dave Love <fx@gnu.org>
parents:
diff changeset
2552
Dave Love <fx@gnu.org>
parents:
diff changeset
2553 *** The icon-type frame parameter may now be a file name.
Dave Love <fx@gnu.org>
parents:
diff changeset
2554 Then the contents of that file specify the icon bitmap to use
Dave Love <fx@gnu.org>
parents:
diff changeset
2555 for that frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
2556
Dave Love <fx@gnu.org>
parents:
diff changeset
2557 *** The title of an Emacs frame, displayed by most window managers, is
Dave Love <fx@gnu.org>
parents:
diff changeset
2558 set from frame-title-format or icon-title-format. These have the same
Dave Love <fx@gnu.org>
parents:
diff changeset
2559 structure as mode-line-format.
Dave Love <fx@gnu.org>
parents:
diff changeset
2560
Dave Love <fx@gnu.org>
parents:
diff changeset
2561 *** x-display-grayscale-p is a new function that returns non-nil if
Dave Love <fx@gnu.org>
parents:
diff changeset
2562 your X server can display shades of gray. Currently it returns
Dave Love <fx@gnu.org>
parents:
diff changeset
2563 non-nil for color displays (because they can display shades of gray);
Dave Love <fx@gnu.org>
parents:
diff changeset
2564 we may change it in the next version to return nil for color displays.
Dave Love <fx@gnu.org>
parents:
diff changeset
2565
Dave Love <fx@gnu.org>
parents:
diff changeset
2566 *** The frame parameter scroll-bar-width specifies the width of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2567 scrollbar in pixels.
Dave Love <fx@gnu.org>
parents:
diff changeset
2568
Dave Love <fx@gnu.org>
parents:
diff changeset
2569 ** Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
2570
Dave Love <fx@gnu.org>
parents:
diff changeset
2571 *** Creating a buffer with get-buffer-create does not obey
Dave Love <fx@gnu.org>
parents:
diff changeset
2572 default-major-mode. That variable is now handled in a separate
Dave Love <fx@gnu.org>
parents:
diff changeset
2573 function, set-buffer-major-mode. get-buffer-create and generate-new-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
2574 always leave the newly created buffer in Fundamental mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
2575
Dave Love <fx@gnu.org>
parents:
diff changeset
2576 Creating a new buffer by visiting a file or with switch-to-buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
2577 pop-to-buffer, and similar functions does call set-buffer-major-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2578 to select the default major mode specified with default-major-mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
2579
Dave Love <fx@gnu.org>
parents:
diff changeset
2580 *** You can now create an "indirect buffer". An indirect buffer shares
Dave Love <fx@gnu.org>
parents:
diff changeset
2581 its text, including text properties, with another buffer (the "base
Dave Love <fx@gnu.org>
parents:
diff changeset
2582 buffer"), but has its own major mode, local variables, overlays, and
Dave Love <fx@gnu.org>
parents:
diff changeset
2583 narrowing. An indirect buffer has a name of its own, distinct from
Dave Love <fx@gnu.org>
parents:
diff changeset
2584 those of the base buffer and all other buffers. An indirect buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
2585 cannot itself be visiting a file (though its base buffer can be).
Dave Love <fx@gnu.org>
parents:
diff changeset
2586 The base buffer cannot itself be indirect.
Dave Love <fx@gnu.org>
parents:
diff changeset
2587
Dave Love <fx@gnu.org>
parents:
diff changeset
2588 Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
2589 named NAME whose base is BASE-BUFFER. If BASE-BUFFER is an indirect
Dave Love <fx@gnu.org>
parents:
diff changeset
2590 buffer, its base buffer is used as the base for the new buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2591
Dave Love <fx@gnu.org>
parents:
diff changeset
2592 You can make an indirect buffer current, or switch to it in a window,
Dave Love <fx@gnu.org>
parents:
diff changeset
2593 just as you would a non-indirect buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2594
Dave Love <fx@gnu.org>
parents:
diff changeset
2595 The function buffer-base-buffer, given an indirect buffer, returns its
Dave Love <fx@gnu.org>
parents:
diff changeset
2596 base buffer. It returns nil when given an ordinary buffer (not
Dave Love <fx@gnu.org>
parents:
diff changeset
2597 indirect).
Dave Love <fx@gnu.org>
parents:
diff changeset
2598
Dave Love <fx@gnu.org>
parents:
diff changeset
2599 The library `noutline' has versions of Outline mode and Outline minor
Dave Love <fx@gnu.org>
parents:
diff changeset
2600 mode which let you display different parts of the outline in different
Dave Love <fx@gnu.org>
parents:
diff changeset
2601 indirect buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
2602
Dave Love <fx@gnu.org>
parents:
diff changeset
2603 ** Subprocesses
Dave Love <fx@gnu.org>
parents:
diff changeset
2604
Dave Love <fx@gnu.org>
parents:
diff changeset
2605 *** The functions call-process and call-process-region now allow
Dave Love <fx@gnu.org>
parents:
diff changeset
2606 you to direct error message output from the subprocess into a
Dave Love <fx@gnu.org>
parents:
diff changeset
2607 separate destination, instead of mixing it with ordinary output.
Dave Love <fx@gnu.org>
parents:
diff changeset
2608 To do this, specify for the third argument, BUFFER, a list of the form
Dave Love <fx@gnu.org>
parents:
diff changeset
2609 (BUFFER-OR-NAME ERROR-DESTINATION)
Dave Love <fx@gnu.org>
parents:
diff changeset
2610 BUFFER-OR-NAME specifies where to put ordinary output; it should
Dave Love <fx@gnu.org>
parents:
diff changeset
2611 be a buffer or buffer name, or t, nil or 0. This is what would
Dave Love <fx@gnu.org>
parents:
diff changeset
2612 have been the BUFFER argument, ordinarily.
Dave Love <fx@gnu.org>
parents:
diff changeset
2613
Dave Love <fx@gnu.org>
parents:
diff changeset
2614 ERROR-DESTINATION specifies where to put the error output.
Dave Love <fx@gnu.org>
parents:
diff changeset
2615 nil means discard it, t means mix it with the ordinary output,
Dave Love <fx@gnu.org>
parents:
diff changeset
2616 and a string specifies a file name to write this output into.
Dave Love <fx@gnu.org>
parents:
diff changeset
2617
Dave Love <fx@gnu.org>
parents:
diff changeset
2618 You can't specify a buffer to put the error output in; that is not
Dave Love <fx@gnu.org>
parents:
diff changeset
2619 easy to implement directly. You can put the error output into a
Dave Love <fx@gnu.org>
parents:
diff changeset
2620 buffer by sending it to a temporary file and then inserting the file
Dave Love <fx@gnu.org>
parents:
diff changeset
2621 into a buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2622
Dave Love <fx@gnu.org>
parents:
diff changeset
2623 *** Comint mode changes:
Dave Love <fx@gnu.org>
parents:
diff changeset
2624
Dave Love <fx@gnu.org>
parents:
diff changeset
2625 **** The variable comint-completion-addsuffix can also be a cons pair
Dave Love <fx@gnu.org>
parents:
diff changeset
2626 of the form (DIRSUFFIX . FILESUFFIX), where DIRSUFFIX and FILESUFFIX are
Dave Love <fx@gnu.org>
parents:
diff changeset
2627 strings added on unambiguous or exact completion of directories and file
Dave Love <fx@gnu.org>
parents:
diff changeset
2628 names, respectively.
Dave Love <fx@gnu.org>
parents:
diff changeset
2629
Dave Love <fx@gnu.org>
parents:
diff changeset
2630 ** Text properties
Dave Love <fx@gnu.org>
parents:
diff changeset
2631
Dave Love <fx@gnu.org>
parents:
diff changeset
2632 *** You can now specify which values of the `invisible' property
Dave Love <fx@gnu.org>
parents:
diff changeset
2633 make text invisible in a given buffer. The variable
Dave Love <fx@gnu.org>
parents:
diff changeset
2634 `buffer-invisibility-spec', which is always local in all buffers,
Dave Love <fx@gnu.org>
parents:
diff changeset
2635 controls this.
Dave Love <fx@gnu.org>
parents:
diff changeset
2636
Dave Love <fx@gnu.org>
parents:
diff changeset
2637 If its value is t, then any non-nil `invisible' property makes
Dave Love <fx@gnu.org>
parents:
diff changeset
2638 a character invisible.
Dave Love <fx@gnu.org>
parents:
diff changeset
2639
Dave Love <fx@gnu.org>
parents:
diff changeset
2640 If its value is a list, then a character is invisible if its
Dave Love <fx@gnu.org>
parents:
diff changeset
2641 `invisible' property value appears as a member of the list, or if it
Dave Love <fx@gnu.org>
parents:
diff changeset
2642 appears as the car of a member of the list.
Dave Love <fx@gnu.org>
parents:
diff changeset
2643
Dave Love <fx@gnu.org>
parents:
diff changeset
2644 When the `invisible' property value appears as the car of a member of
Dave Love <fx@gnu.org>
parents:
diff changeset
2645 the `buffer-invisibility-spec' list, then the cdr of that member has
Dave Love <fx@gnu.org>
parents:
diff changeset
2646 an effect. If it is non-nil, then an ellipsis appears in place of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2647 character. (This happens only for the *last* invisible character in a
Dave Love <fx@gnu.org>
parents:
diff changeset
2648 series of consecutive invisible characters, and only at the end of a
Dave Love <fx@gnu.org>
parents:
diff changeset
2649 line.)
Dave Love <fx@gnu.org>
parents:
diff changeset
2650
Dave Love <fx@gnu.org>
parents:
diff changeset
2651 If a character's `invisible' property is a list, then Emacs checks each
Dave Love <fx@gnu.org>
parents:
diff changeset
2652 element of the list against `buffer-invisibility-spec'. If any element
Dave Love <fx@gnu.org>
parents:
diff changeset
2653 matches, the character is invisible.
Dave Love <fx@gnu.org>
parents:
diff changeset
2654
Dave Love <fx@gnu.org>
parents:
diff changeset
2655 *** The command `list-text-properties-at' shows what text properties
Dave Love <fx@gnu.org>
parents:
diff changeset
2656 are in effect at point.
Dave Love <fx@gnu.org>
parents:
diff changeset
2657
Dave Love <fx@gnu.org>
parents:
diff changeset
2658 *** Frame objects now exist in Emacs even on systems that don't support
Dave Love <fx@gnu.org>
parents:
diff changeset
2659 X Windows. You can create multiple frames, and switch between them
Dave Love <fx@gnu.org>
parents:
diff changeset
2660 using select-frame. The selected frame is actually displayed on your
Dave Love <fx@gnu.org>
parents:
diff changeset
2661 terminal; other frames are not displayed at all. The selected frame
Dave Love <fx@gnu.org>
parents:
diff changeset
2662 number appears in the mode line after `Emacs', except for frame 1.
Dave Love <fx@gnu.org>
parents:
diff changeset
2663
Dave Love <fx@gnu.org>
parents:
diff changeset
2664 Switching frames on ASCII terminals is therefore more or less
Dave Love <fx@gnu.org>
parents:
diff changeset
2665 equivalent to switching between different window configurations.
Dave Love <fx@gnu.org>
parents:
diff changeset
2666
Dave Love <fx@gnu.org>
parents:
diff changeset
2667 *** The new variable window-size-change-functions holds a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
2668 functions to be called if window sizes change (or if windows are
Dave Love <fx@gnu.org>
parents:
diff changeset
2669 created or deleted). The functions are called once for each frame on
Dave Love <fx@gnu.org>
parents:
diff changeset
2670 which changes have occurred, with the frame as the sole argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
2671 This takes place shortly before redisplay.
Dave Love <fx@gnu.org>
parents:
diff changeset
2672
Dave Love <fx@gnu.org>
parents:
diff changeset
2673 *** The modification hook functions of overlays now work differently.
Dave Love <fx@gnu.org>
parents:
diff changeset
2674 They are called both before and after each change. This makes it
Dave Love <fx@gnu.org>
parents:
diff changeset
2675 possible for the functions to determine exactly what the change was.
Dave Love <fx@gnu.org>
parents:
diff changeset
2676
Dave Love <fx@gnu.org>
parents:
diff changeset
2677 This change affects three overlay properties: the modification-hooks
Dave Love <fx@gnu.org>
parents:
diff changeset
2678 property, a list of functions called for deletions overlapping the
Dave Love <fx@gnu.org>
parents:
diff changeset
2679 overlay's range and for insertions inside it; the
Dave Love <fx@gnu.org>
parents:
diff changeset
2680 insert-in-front-hooks, a list of functions called for insertions at
Dave Love <fx@gnu.org>
parents:
diff changeset
2681 the beginning of the overlay; and the insert-behind-hooks, a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
2682 functions called for insertions at the end of the overlay.
Dave Love <fx@gnu.org>
parents:
diff changeset
2683
Dave Love <fx@gnu.org>
parents:
diff changeset
2684 Each function is called both before and after each change that it
Dave Love <fx@gnu.org>
parents:
diff changeset
2685 applies to. Before the change, it is called with four arguments:
Dave Love <fx@gnu.org>
parents:
diff changeset
2686 (funcall FUNCTION OVERLAY nil START END)
Dave Love <fx@gnu.org>
parents:
diff changeset
2687 START and END are the same arguments that the before-change-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
2688 receive.
Dave Love <fx@gnu.org>
parents:
diff changeset
2689
Dave Love <fx@gnu.org>
parents:
diff changeset
2690 After the change, each function is called with five arguments:
Dave Love <fx@gnu.org>
parents:
diff changeset
2691 (funcall FUNCTION OVERLAY t START END OLDSIZE)
Dave Love <fx@gnu.org>
parents:
diff changeset
2692 The last arguments, START and END and OLDSIZE,
Dave Love <fx@gnu.org>
parents:
diff changeset
2693 are the same arguments that the after-change-functions receive.
Dave Love <fx@gnu.org>
parents:
diff changeset
2694
Dave Love <fx@gnu.org>
parents:
diff changeset
2695 This means the function must accept either four or five arguments.
Dave Love <fx@gnu.org>
parents:
diff changeset
2696
Dave Love <fx@gnu.org>
parents:
diff changeset
2697 *** You can set defaults for text-properties with the new variable
Dave Love <fx@gnu.org>
parents:
diff changeset
2698 `default-text-properties'. Its value is a property list; the values
Dave Love <fx@gnu.org>
parents:
diff changeset
2699 specified there are used whenever a character (or its category) does
Dave Love <fx@gnu.org>
parents:
diff changeset
2700 not specify a value.
Dave Love <fx@gnu.org>
parents:
diff changeset
2701
Dave Love <fx@gnu.org>
parents:
diff changeset
2702 *** The `face' property of a character or an overlay can now be a list
Dave Love <fx@gnu.org>
parents:
diff changeset
2703 of face names. Formerly it had to be just one face name.
Dave Love <fx@gnu.org>
parents:
diff changeset
2704
Dave Love <fx@gnu.org>
parents:
diff changeset
2705 *** Changes in handling the `intangible' text property.
Dave Love <fx@gnu.org>
parents:
diff changeset
2706
Dave Love <fx@gnu.org>
parents:
diff changeset
2707 **** If inhibit-point-motion-hooks is non-nil, then `intangible' properties
Dave Love <fx@gnu.org>
parents:
diff changeset
2708 are ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
2709
Dave Love <fx@gnu.org>
parents:
diff changeset
2710 **** Moving to just before a stretch of intangible text
Dave Love <fx@gnu.org>
parents:
diff changeset
2711 is no longer special in any way. Point stays at that place.
Dave Love <fx@gnu.org>
parents:
diff changeset
2712
Dave Love <fx@gnu.org>
parents:
diff changeset
2713 **** When you move point backwards into the midst of intangible text,
Dave Love <fx@gnu.org>
parents:
diff changeset
2714 point moves back to the beginning of that text. (It used to move
Dave Love <fx@gnu.org>
parents:
diff changeset
2715 forward to the end of that text, which was not very useful.)
Dave Love <fx@gnu.org>
parents:
diff changeset
2716
Dave Love <fx@gnu.org>
parents:
diff changeset
2717 **** When moving across intangible text, Emacs stops wherever the
Dave Love <fx@gnu.org>
parents:
diff changeset
2718 property value changes. So if you have two stretches of intangible
Dave Love <fx@gnu.org>
parents:
diff changeset
2719 text, with different non-nil intangible properties, it is possible to
Dave Love <fx@gnu.org>
parents:
diff changeset
2720 place point between them.
Dave Love <fx@gnu.org>
parents:
diff changeset
2721
Dave Love <fx@gnu.org>
parents:
diff changeset
2722 ** Overlays
Dave Love <fx@gnu.org>
parents:
diff changeset
2723
Dave Love <fx@gnu.org>
parents:
diff changeset
2724 *** Overlay changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
2725
Dave Love <fx@gnu.org>
parents:
diff changeset
2726 **** The new function previous-overlay-change returns the position of
Dave Love <fx@gnu.org>
parents:
diff changeset
2727 the previous overlay start or end, before a specified position. This
Dave Love <fx@gnu.org>
parents:
diff changeset
2728 is the backwards-moving counterpart of next-overlay-change.
Dave Love <fx@gnu.org>
parents:
diff changeset
2729
Dave Love <fx@gnu.org>
parents:
diff changeset
2730 **** overlay-get now supports category properties on an overlay
Dave Love <fx@gnu.org>
parents:
diff changeset
2731 the same way get-text-property supports them as text properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
2732
Dave Love <fx@gnu.org>
parents:
diff changeset
2733 Specifically, if an overlay does not have the property PROP that you
Dave Love <fx@gnu.org>
parents:
diff changeset
2734 ask for, but it does have a `category' property which is a symbol,
Dave Love <fx@gnu.org>
parents:
diff changeset
2735 then that symbol's PROP property is used.
Dave Love <fx@gnu.org>
parents:
diff changeset
2736
Dave Love <fx@gnu.org>
parents:
diff changeset
2737 **** If an overlay has a non-nil `evaporate' property, it will be
Dave Love <fx@gnu.org>
parents:
diff changeset
2738 deleted if it ever becomes empty (i.e., when it spans no characters).
Dave Love <fx@gnu.org>
parents:
diff changeset
2739
Dave Love <fx@gnu.org>
parents:
diff changeset
2740 **** If an overlay has a `before-string' and/or `after-string' property,
Dave Love <fx@gnu.org>
parents:
diff changeset
2741 these strings are displayed at the overlay's endpoints.
Dave Love <fx@gnu.org>
parents:
diff changeset
2742
Dave Love <fx@gnu.org>
parents:
diff changeset
2743 ** Filling
Dave Love <fx@gnu.org>
parents:
diff changeset
2744
Dave Love <fx@gnu.org>
parents:
diff changeset
2745 *** The new variable fill-paragraph-function provides a way for major
Dave Love <fx@gnu.org>
parents:
diff changeset
2746 modes to override the filling of paragraphs. If this is non-nil,
Dave Love <fx@gnu.org>
parents:
diff changeset
2747 fill-paragraph calls it as a function, passing along its sole
Dave Love <fx@gnu.org>
parents:
diff changeset
2748 argument. If the function returns non-nil, fill-paragraph assumes it
Dave Love <fx@gnu.org>
parents:
diff changeset
2749 has done the job and simply passes on whatever value it returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
2750
Dave Love <fx@gnu.org>
parents:
diff changeset
2751 The usual use of this feature is to fill comments in programming
Dave Love <fx@gnu.org>
parents:
diff changeset
2752 language modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
2753
Dave Love <fx@gnu.org>
parents:
diff changeset
2754 *** Text filling and justification changes:
Dave Love <fx@gnu.org>
parents:
diff changeset
2755
Dave Love <fx@gnu.org>
parents:
diff changeset
2756 **** The new variable use-hard-newlines can be used to make a
Dave Love <fx@gnu.org>
parents:
diff changeset
2757 distinction between "hard" and "soft" newlines; the fill functions
Dave Love <fx@gnu.org>
parents:
diff changeset
2758 will then never remove a newline that was manually inserted. Hard
Dave Love <fx@gnu.org>
parents:
diff changeset
2759 newlines are marked with a non-nil `hard' text-property.
Dave Love <fx@gnu.org>
parents:
diff changeset
2760
Dave Love <fx@gnu.org>
parents:
diff changeset
2761 **** The fill-column and left-margin can now be modified by text-properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
2762 Most lisp programs should use the new functions (current-fill-column) and
Dave Love <fx@gnu.org>
parents:
diff changeset
2763 (current-left-margin), which return the proper values to use for the
Dave Love <fx@gnu.org>
parents:
diff changeset
2764 current line.
Dave Love <fx@gnu.org>
parents:
diff changeset
2765
Dave Love <fx@gnu.org>
parents:
diff changeset
2766 **** There are new functions for dealing with margins:
Dave Love <fx@gnu.org>
parents:
diff changeset
2767
Dave Love <fx@gnu.org>
parents:
diff changeset
2768 ***** Set-left-margin and set-right-margin (set the value for a region
Dave Love <fx@gnu.org>
parents:
diff changeset
2769 and re-fill). These functions take three arguments: two to specify
Dave Love <fx@gnu.org>
parents:
diff changeset
2770 a region, and the desired margin value.
Dave Love <fx@gnu.org>
parents:
diff changeset
2771
Dave Love <fx@gnu.org>
parents:
diff changeset
2772 ***** Increase-left-margin, decrease-left-margin, increase-right-margin, and
Dave Love <fx@gnu.org>
parents:
diff changeset
2773 decrease-right-margin (change settings relative to current values, and
Dave Love <fx@gnu.org>
parents:
diff changeset
2774 re-fill).
Dave Love <fx@gnu.org>
parents:
diff changeset
2775
Dave Love <fx@gnu.org>
parents:
diff changeset
2776 ***** move-to-left-margin moves point there, optionally adding
Dave Love <fx@gnu.org>
parents:
diff changeset
2777 indentation or changing tabs to spaces in order to make that possible.
Dave Love <fx@gnu.org>
parents:
diff changeset
2778 beginning-of-line-text also moves past the fill-prefix and any
Dave Love <fx@gnu.org>
parents:
diff changeset
2779 indentation added to center or right-justify a line, to the beginning
Dave Love <fx@gnu.org>
parents:
diff changeset
2780 of the text that the user actually typed.
Dave Love <fx@gnu.org>
parents:
diff changeset
2781
Dave Love <fx@gnu.org>
parents:
diff changeset
2782 ***** delete-to-left-margin removes any left-margin indentation, but
Dave Love <fx@gnu.org>
parents:
diff changeset
2783 does not change the property.
Dave Love <fx@gnu.org>
parents:
diff changeset
2784
Dave Love <fx@gnu.org>
parents:
diff changeset
2785 **** The paragraph-movement functions look for the paragraph-start and
Dave Love <fx@gnu.org>
parents:
diff changeset
2786 paragraph-separate regexps at the current left margin, not at the
Dave Love <fx@gnu.org>
parents:
diff changeset
2787 beginning of the line. This means that those regexps should NOT use ^
Dave Love <fx@gnu.org>
parents:
diff changeset
2788 to anchor the search. However, for backwards compatibility, a ^ at
Dave Love <fx@gnu.org>
parents:
diff changeset
2789 the beginning of the regexp will be ignored, so most packages won't break.
Dave Love <fx@gnu.org>
parents:
diff changeset
2790
Dave Love <fx@gnu.org>
parents:
diff changeset
2791 **** justify-current-line is now capable of doing left, center, or
Dave Love <fx@gnu.org>
parents:
diff changeset
2792 right justification as well as full justification.
Dave Love <fx@gnu.org>
parents:
diff changeset
2793
Dave Love <fx@gnu.org>
parents:
diff changeset
2794 **** The fill functions can do any kind of justification based on the new
Dave Love <fx@gnu.org>
parents:
diff changeset
2795 `justification' text-property and `default-justification' variable,
Dave Love <fx@gnu.org>
parents:
diff changeset
2796 or arguments to the functions. They also have a new option which
Dave Love <fx@gnu.org>
parents:
diff changeset
2797 defeats the normal removal of extra whitespace.
Dave Love <fx@gnu.org>
parents:
diff changeset
2798
Dave Love <fx@gnu.org>
parents:
diff changeset
2799 **** The new function `current-justification' returns the kind of
Dave Love <fx@gnu.org>
parents:
diff changeset
2800 justification used for the current line. The new function
Dave Love <fx@gnu.org>
parents:
diff changeset
2801 `set-justification' can be used to change it, including re-justifying
Dave Love <fx@gnu.org>
parents:
diff changeset
2802 the text of the region according to the new value.
Dave Love <fx@gnu.org>
parents:
diff changeset
2803
Dave Love <fx@gnu.org>
parents:
diff changeset
2804 **** Filling and auto-fill are disabled if justification is `none'.
Dave Love <fx@gnu.org>
parents:
diff changeset
2805
Dave Love <fx@gnu.org>
parents:
diff changeset
2806 **** The auto-fill-function is now called regardless of whether
Dave Love <fx@gnu.org>
parents:
diff changeset
2807 the fill-column has been exceeded; the function can determine on its
Dave Love <fx@gnu.org>
parents:
diff changeset
2808 own whether filling (or justification) is necessary.
Dave Love <fx@gnu.org>
parents:
diff changeset
2809
Dave Love <fx@gnu.org>
parents:
diff changeset
2810 ** Processes
Dave Love <fx@gnu.org>
parents:
diff changeset
2811
Dave Love <fx@gnu.org>
parents:
diff changeset
2812 *** process-tty-name is a new function that returns the name of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2813 terminal that the process itself reads and writes on (not the name of
Dave Love <fx@gnu.org>
parents:
diff changeset
2814 the pty that Emacs uses to talk with that terminal).
Dave Love <fx@gnu.org>
parents:
diff changeset
2815
Dave Love <fx@gnu.org>
parents:
diff changeset
2816 *** Errors in process filters and sentinels are now normally caught
Dave Love <fx@gnu.org>
parents:
diff changeset
2817 automatically, so that they don't abort other Lisp programs.
Dave Love <fx@gnu.org>
parents:
diff changeset
2818
Dave Love <fx@gnu.org>
parents:
diff changeset
2819 Setting debug-on-error non-nil turns off this feature; then errors in
Dave Love <fx@gnu.org>
parents:
diff changeset
2820 filters and sentinels are not caught. As a result, they can invoke
Dave Love <fx@gnu.org>
parents:
diff changeset
2821 the debugger, under the control of debug-on-error.
Dave Love <fx@gnu.org>
parents:
diff changeset
2822
Dave Love <fx@gnu.org>
parents:
diff changeset
2823 *** Emacs now preserves the match data around the execution of process
Dave Love <fx@gnu.org>
parents:
diff changeset
2824 filters and sentinels. You can use search and match functions freely
Dave Love <fx@gnu.org>
parents:
diff changeset
2825 in filters and sentinels without explicitly bothering to save the
Dave Love <fx@gnu.org>
parents:
diff changeset
2826 match data.
Dave Love <fx@gnu.org>
parents:
diff changeset
2827
Dave Love <fx@gnu.org>
parents:
diff changeset
2828 ** Display
Dave Love <fx@gnu.org>
parents:
diff changeset
2829
Dave Love <fx@gnu.org>
parents:
diff changeset
2830 *** The variable message-log-max controls how messages are logged in the
Dave Love <fx@gnu.org>
parents:
diff changeset
2831 "*Messages*" buffer. An integer value means to keep that many lines;
Dave Love <fx@gnu.org>
parents:
diff changeset
2832 t means to log with no limit; nil means disable message logging. Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2833 code that calls `message' excessively (e.g. isearch.el) should probably
Dave Love <fx@gnu.org>
parents:
diff changeset
2834 bind this variable to nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
2835
Dave Love <fx@gnu.org>
parents:
diff changeset
2836 *** Display tables now have a new element, at index 261, specifying the
Dave Love <fx@gnu.org>
parents:
diff changeset
2837 glyph to use for the separator between two side-by-side windows. By
Dave Love <fx@gnu.org>
parents:
diff changeset
2838 default, this is the vertical bar character `|'. Probably the only
Dave Love <fx@gnu.org>
parents:
diff changeset
2839 other useful character to store for this element is a space, to make
Dave Love <fx@gnu.org>
parents:
diff changeset
2840 less visual separation between two side-by-side windows displaying
Dave Love <fx@gnu.org>
parents:
diff changeset
2841 related information.
Dave Love <fx@gnu.org>
parents:
diff changeset
2842
Dave Love <fx@gnu.org>
parents:
diff changeset
2843 *** The new mode-line-format spec %c displays the current column number.
Dave Love <fx@gnu.org>
parents:
diff changeset
2844
Dave Love <fx@gnu.org>
parents:
diff changeset
2845 *** The new variable blink-matching-delay specifies how long to keep
Dave Love <fx@gnu.org>
parents:
diff changeset
2846 the cursor at the matching open-paren, after you insert a close-paren.
Dave Love <fx@gnu.org>
parents:
diff changeset
2847 This is useful mainly on systems which can wait for a fraction of a
Dave Love <fx@gnu.org>
parents:
diff changeset
2848 second--you can then specify fractional values such as 0.5.
Dave Love <fx@gnu.org>
parents:
diff changeset
2849
Dave Love <fx@gnu.org>
parents:
diff changeset
2850 *** Faster processing of buffers with long lines
Dave Love <fx@gnu.org>
parents:
diff changeset
2851
Dave Love <fx@gnu.org>
parents:
diff changeset
2852 The new variable cache-long-line-scans determines whether Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2853 should use caches to handle long lines more quickly. This variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
2854 buffer-local, in all buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
2855
Dave Love <fx@gnu.org>
parents:
diff changeset
2856 Normally, the line-motion functions work by scanning the buffer for
Dave Love <fx@gnu.org>
parents:
diff changeset
2857 newlines. Columnar operations (like `move-to-column' and
Dave Love <fx@gnu.org>
parents:
diff changeset
2858 `compute-motion') also work by scanning the buffer, summing character
Dave Love <fx@gnu.org>
parents:
diff changeset
2859 widths as they go. This works well for ordinary text, but if the
Dave Love <fx@gnu.org>
parents:
diff changeset
2860 buffer's lines are very long (say, more than 500 characters), these
Dave Love <fx@gnu.org>
parents:
diff changeset
2861 motion functions will take longer to execute. Emacs may also take
Dave Love <fx@gnu.org>
parents:
diff changeset
2862 longer to update the display.
Dave Love <fx@gnu.org>
parents:
diff changeset
2863
Dave Love <fx@gnu.org>
parents:
diff changeset
2864 If cache-long-line-scans is non-nil, these motion functions cache
Dave Love <fx@gnu.org>
parents:
diff changeset
2865 the results of their scans, and consult the cache to avoid rescanning
Dave Love <fx@gnu.org>
parents:
diff changeset
2866 regions of the buffer until the text is modified. The caches are most
Dave Love <fx@gnu.org>
parents:
diff changeset
2867 beneficial when they prevent the most searching---that is, when the
Dave Love <fx@gnu.org>
parents:
diff changeset
2868 buffer contains long lines and large regions of characters with the
Dave Love <fx@gnu.org>
parents:
diff changeset
2869 same, fixed screen width.
Dave Love <fx@gnu.org>
parents:
diff changeset
2870
Dave Love <fx@gnu.org>
parents:
diff changeset
2871 When cache-long-line-scans is non-nil, processing short lines will
Dave Love <fx@gnu.org>
parents:
diff changeset
2872 become slightly slower (because of the overhead of consulting the
Dave Love <fx@gnu.org>
parents:
diff changeset
2873 cache), and the caches will use memory roughly proportional to the
Dave Love <fx@gnu.org>
parents:
diff changeset
2874 number of newlines and characters whose screen width varies.
Dave Love <fx@gnu.org>
parents:
diff changeset
2875
Dave Love <fx@gnu.org>
parents:
diff changeset
2876 The caches require no explicit maintenance; their accuracy is
Dave Love <fx@gnu.org>
parents:
diff changeset
2877 maintained internally by the Emacs primitives. Enabling or disabling
Dave Love <fx@gnu.org>
parents:
diff changeset
2878 the cache should not affect the behavior of any of the motion functions;
Dave Love <fx@gnu.org>
parents:
diff changeset
2879 it should only affect their performance.
Dave Love <fx@gnu.org>
parents:
diff changeset
2880
Dave Love <fx@gnu.org>
parents:
diff changeset
2881 ** System Interface
Dave Love <fx@gnu.org>
parents:
diff changeset
2882
Dave Love <fx@gnu.org>
parents:
diff changeset
2883 *** The function user-login-name now accepts an optional
Dave Love <fx@gnu.org>
parents:
diff changeset
2884 argument uid. If the argument is non-nil, user-login-name
Dave Love <fx@gnu.org>
parents:
diff changeset
2885 returns the login name for that user id.
Dave Love <fx@gnu.org>
parents:
diff changeset
2886
Dave Love <fx@gnu.org>
parents:
diff changeset
2887 *** system-name, user-name, user-full-name and user-real-name are now
Dave Love <fx@gnu.org>
parents:
diff changeset
2888 variables as well as functions. The variables hold the same values
Dave Love <fx@gnu.org>
parents:
diff changeset
2889 that the functions would return. The new variable multiple-frames
Dave Love <fx@gnu.org>
parents:
diff changeset
2890 is non-nil if at least two non-minibuffer frames are visible. These
Dave Love <fx@gnu.org>
parents:
diff changeset
2891 variables may be useful in constructing the value of frame-title-format
Dave Love <fx@gnu.org>
parents:
diff changeset
2892 or icon-title-format.
Dave Love <fx@gnu.org>
parents:
diff changeset
2893
Dave Love <fx@gnu.org>
parents:
diff changeset
2894 *** Changes in time-conversion functions.
Dave Love <fx@gnu.org>
parents:
diff changeset
2895
Dave Love <fx@gnu.org>
parents:
diff changeset
2896 **** The new function format-time-string takes a format string and a
Dave Love <fx@gnu.org>
parents:
diff changeset
2897 time value. It converts the time to a string, according to the format
Dave Love <fx@gnu.org>
parents:
diff changeset
2898 specified. You can specify what kind of conversion to use with
Dave Love <fx@gnu.org>
parents:
diff changeset
2899 %-specifications.
Dave Love <fx@gnu.org>
parents:
diff changeset
2900
Dave Love <fx@gnu.org>
parents:
diff changeset
2901 **** The new function decode-time converts a time value into a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
2902 specific items of information: the year, month, day of week, day of
Dave Love <fx@gnu.org>
parents:
diff changeset
2903 month, hour, minute and second. (A time value is a list of two or
Dave Love <fx@gnu.org>
parents:
diff changeset
2904 three integers.)
Dave Love <fx@gnu.org>
parents:
diff changeset
2905
Dave Love <fx@gnu.org>
parents:
diff changeset
2906 **** The new function encode-time converts specific items of time
Dave Love <fx@gnu.org>
parents:
diff changeset
2907 information--the second, minute, hour, day, month, year, and time
Dave Love <fx@gnu.org>
parents:
diff changeset
2908 zone--into a time value.
Dave Love <fx@gnu.org>
parents:
diff changeset
2909
Dave Love <fx@gnu.org>
parents:
diff changeset
2910 * Changes in Emacs 19.27
Dave Love <fx@gnu.org>
parents:
diff changeset
2911
Dave Love <fx@gnu.org>
parents:
diff changeset
2912 There are no changes; however, here is one bug fix made in 19.26 that users
Dave Love <fx@gnu.org>
parents:
diff changeset
2913 think should be documented here.
Dave Love <fx@gnu.org>
parents:
diff changeset
2914
Dave Love <fx@gnu.org>
parents:
diff changeset
2915 ** SPC and DEL in Info now handle menus consistently.
Dave Love <fx@gnu.org>
parents:
diff changeset
2916
Dave Love <fx@gnu.org>
parents:
diff changeset
2917 SPC and DEL scroll through an entire subtree an Info manual. Once you
Dave Love <fx@gnu.org>
parents:
diff changeset
2918 scroll through a node far enough to reach a menu, SPC begins moving
Dave Love <fx@gnu.org>
parents:
diff changeset
2919 into the subnodes of the menu, starting with the first one. When you
Dave Love <fx@gnu.org>
parents:
diff changeset
2920 reach the end of a subnode, SPC moves into the next subnode, and so
Dave Love <fx@gnu.org>
parents:
diff changeset
2921 on.
Dave Love <fx@gnu.org>
parents:
diff changeset
2922
Dave Love <fx@gnu.org>
parents:
diff changeset
2923 DEL more or less scrolls through the same text in reverse order.
Dave Love <fx@gnu.org>
parents:
diff changeset
2924
Dave Love <fx@gnu.org>
parents:
diff changeset
2925 * User Editing Changes in Emacs 19.26
Dave Love <fx@gnu.org>
parents:
diff changeset
2926
Dave Love <fx@gnu.org>
parents:
diff changeset
2927 ** In the X toolkit version, if you click on a menu bar item and
Dave Love <fx@gnu.org>
parents:
diff changeset
2928 release the button quickly outside the menu, the menu remains visible
Dave Love <fx@gnu.org>
parents:
diff changeset
2929 until you click or type something else. If you click on the menu, you
Dave Love <fx@gnu.org>
parents:
diff changeset
2930 select from the menu. Any other mouse click makes the menu disappear.
Dave Love <fx@gnu.org>
parents:
diff changeset
2931 Keyboard input gets rid of the menu and then is processed normally.
Dave Love <fx@gnu.org>
parents:
diff changeset
2932
Dave Love <fx@gnu.org>
parents:
diff changeset
2933 "Quickly" means within double-click-time milliseconds.
Dave Love <fx@gnu.org>
parents:
diff changeset
2934
Dave Love <fx@gnu.org>
parents:
diff changeset
2935 ** The C-x 5 commands to select a buffer in "another frame" now use an
Dave Love <fx@gnu.org>
parents:
diff changeset
2936 existing iconified frame, if any, deiconifying it. They also raise
Dave Love <fx@gnu.org>
parents:
diff changeset
2937 the frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
2938
Dave Love <fx@gnu.org>
parents:
diff changeset
2939 ** Region highlighting on a black-and-white-only display now uses
Dave Love <fx@gnu.org>
parents:
diff changeset
2940 underlining. Inverse-video had the problem that you couldn't see
Dave Love <fx@gnu.org>
parents:
diff changeset
2941 the cursor.
Dave Love <fx@gnu.org>
parents:
diff changeset
2942
Dave Love <fx@gnu.org>
parents:
diff changeset
2943 ** You can now change the height of a window by pressing mouse-1 on
Dave Love <fx@gnu.org>
parents:
diff changeset
2944 the mode line and dragging it up and down.
Dave Love <fx@gnu.org>
parents:
diff changeset
2945
Dave Love <fx@gnu.org>
parents:
diff changeset
2946 ** If you set the environment variable LC_CTYPE to iso_8859_1 or
Dave Love <fx@gnu.org>
parents:
diff changeset
2947 iso-8859-1, Emacs automatically sets up for display and syntactic
Dave Love <fx@gnu.org>
parents:
diff changeset
2948 handling of the ISO Latin-1 character set.
Dave Love <fx@gnu.org>
parents:
diff changeset
2949
Dave Love <fx@gnu.org>
parents:
diff changeset
2950 This does not automatically load any of the packages for input of
Dave Love <fx@gnu.org>
parents:
diff changeset
2951 these characters, because it's not yet clear what is right to do.
Dave Love <fx@gnu.org>
parents:
diff changeset
2952 You must still explicitly load either iso-transl or iso-acc.
Dave Love <fx@gnu.org>
parents:
diff changeset
2953
Dave Love <fx@gnu.org>
parents:
diff changeset
2954 ** For a read-only buffer that is also modified, the mode line now displays
Dave Love <fx@gnu.org>
parents:
diff changeset
2955 %* instead of %%.
Dave Love <fx@gnu.org>
parents:
diff changeset
2956
Dave Love <fx@gnu.org>
parents:
diff changeset
2957 ** M-prior (scroll-other-window-down) is a new command that works like
Dave Love <fx@gnu.org>
parents:
diff changeset
2958 M-next (and C-M-v) but scrolls in the opposite direction.
Dave Love <fx@gnu.org>
parents:
diff changeset
2959
Dave Love <fx@gnu.org>
parents:
diff changeset
2960 M-home moves to the beginning of the buffer, in the other window.
Dave Love <fx@gnu.org>
parents:
diff changeset
2961 M-end moves to the end of the buffer, in the other window. These two
Dave Love <fx@gnu.org>
parents:
diff changeset
2962 commands, along with M-next and M-prior, form a series of commands for
Dave Love <fx@gnu.org>
parents:
diff changeset
2963 moving around in the other window.
Dave Love <fx@gnu.org>
parents:
diff changeset
2964
Dave Love <fx@gnu.org>
parents:
diff changeset
2965 ** In change logs, the mail address is now delimited with <...> instead
Dave Love <fx@gnu.org>
parents:
diff changeset
2966 of (...).
Dave Love <fx@gnu.org>
parents:
diff changeset
2967
Dave Love <fx@gnu.org>
parents:
diff changeset
2968 This makes it a little more convenient to extract the mail address for
Dave Love <fx@gnu.org>
parents:
diff changeset
2969 use in mailing a message.
Dave Love <fx@gnu.org>
parents:
diff changeset
2970
Dave Love <fx@gnu.org>
parents:
diff changeset
2971 ** In Shell mode and other comint modes, C-a has now returned to
Dave Love <fx@gnu.org>
parents:
diff changeset
2972 its ordinary meaning: move to the beginning of the line.
Dave Love <fx@gnu.org>
parents:
diff changeset
2973 Use C-c C-a to move to the end of the prompt.
Dave Love <fx@gnu.org>
parents:
diff changeset
2974
Dave Love <fx@gnu.org>
parents:
diff changeset
2975 ** If you set mail-signature to t to cause automatic insertion of
Dave Love <fx@gnu.org>
parents:
diff changeset
2976 your .signature file, you now get a -- before the signature.
Dave Love <fx@gnu.org>
parents:
diff changeset
2977
Dave Love <fx@gnu.org>
parents:
diff changeset
2978 ** Setting rmail-highlighted-headers to nil entirely turns off
Dave Love <fx@gnu.org>
parents:
diff changeset
2979 highlighting in Rmail. However, if your motivation for doing this is
Dave Love <fx@gnu.org>
parents:
diff changeset
2980 that the highlighted text doesn't look good on your display, it might
Dave Love <fx@gnu.org>
parents:
diff changeset
2981 be better to change the appearance of the `highlight' face. Once
Dave Love <fx@gnu.org>
parents:
diff changeset
2982 you've done that, you may find Rmail highlighting is useful.
Dave Love <fx@gnu.org>
parents:
diff changeset
2983
Dave Love <fx@gnu.org>
parents:
diff changeset
2984 ** In the calendar, mouse-2 is now used only for commands that apply to a date.
Dave Love <fx@gnu.org>
parents:
diff changeset
2985 If you click it when not on a date, it gives an immediate error.
Dave Love <fx@gnu.org>
parents:
diff changeset
2986
Dave Love <fx@gnu.org>
parents:
diff changeset
2987 Mouse-3 in the calendar now gives a menu of commands that do not apply
Dave Love <fx@gnu.org>
parents:
diff changeset
2988 to a particular date.
Dave Love <fx@gnu.org>
parents:
diff changeset
2989
Dave Love <fx@gnu.org>
parents:
diff changeset
2990 The D command displays diary entries from a specified diary file (not
Dave Love <fx@gnu.org>
parents:
diff changeset
2991 your standard diary file).
Dave Love <fx@gnu.org>
parents:
diff changeset
2992
Dave Love <fx@gnu.org>
parents:
diff changeset
2993 ** In the gnus-uu package, the binding for gnus-uu-threaded-decode-and-view
Dave Love <fx@gnu.org>
parents:
diff changeset
2994 is now C-c C-v C-d, not C-c C-v C-h. Thus, C-c C-v C-h is now available
Dave Love <fx@gnu.org>
parents:
diff changeset
2995 for asking for a list of the subcommands of C-c C-v.
Dave Love <fx@gnu.org>
parents:
diff changeset
2996
Dave Love <fx@gnu.org>
parents:
diff changeset
2997 ** You can now specify "who you are" for various Emacs packages by
Dave Love <fx@gnu.org>
parents:
diff changeset
2998 setting just one variable, user-mail-address. This currently applies
Dave Love <fx@gnu.org>
parents:
diff changeset
2999 to posting news with GNUS and to making change log entries. It may
Dave Love <fx@gnu.org>
parents:
diff changeset
3000 apply to additional Emacs features in the future.
Dave Love <fx@gnu.org>
parents:
diff changeset
3001
Dave Love <fx@gnu.org>
parents:
diff changeset
3002 * Lisp-Level Changes in Emacs 19.26:
Dave Love <fx@gnu.org>
parents:
diff changeset
3003
Dave Love <fx@gnu.org>
parents:
diff changeset
3004 ** The function insert-char now takes an optional third argument
Dave Love <fx@gnu.org>
parents:
diff changeset
3005 which, if non-nil, says the inserted characters should inherit sticky
Dave Love <fx@gnu.org>
parents:
diff changeset
3006 text properties from the surrounding text.
Dave Love <fx@gnu.org>
parents:
diff changeset
3007
Dave Love <fx@gnu.org>
parents:
diff changeset
3008 ** The `diary' library has been renamed to `diary-lib'. If you refer
Dave Love <fx@gnu.org>
parents:
diff changeset
3009 to this library in your Lisp code, you must update the references.
Dave Love <fx@gnu.org>
parents:
diff changeset
3010
Dave Love <fx@gnu.org>
parents:
diff changeset
3011 ** Sending text to a subprocess can read input from subprocesses if it
Dave Love <fx@gnu.org>
parents:
diff changeset
3012 has to wait because the destination subprocess's terminal input buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
3013 is full.
Dave Love <fx@gnu.org>
parents:
diff changeset
3014
Dave Love <fx@gnu.org>
parents:
diff changeset
3015 It was already possible in unusual occasions for this operation to
Dave Love <fx@gnu.org>
parents:
diff changeset
3016 read subprocess input, but it did not happen very often. It is now
Dave Love <fx@gnu.org>
parents:
diff changeset
3017 more likely to happen.
Dave Love <fx@gnu.org>
parents:
diff changeset
3018
Dave Love <fx@gnu.org>
parents:
diff changeset
3019 ** last-nonmenu-event is now bound to t around filter functions and sentinels.
Dave Love <fx@gnu.org>
parents:
diff changeset
3020 This is to ensure that y-or-n-p and yes-or-no-p use the keyboard by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
3021
Dave Love <fx@gnu.org>
parents:
diff changeset
3022 ** In mode lines, %+ now displays as % for unmodified read-only
Dave Love <fx@gnu.org>
parents:
diff changeset
3023 buffers. It is now the same as %* except in the case of a modified
Dave Love <fx@gnu.org>
parents:
diff changeset
3024 read-only buffer; in that case, %+ displays as *.
Dave Love <fx@gnu.org>
parents:
diff changeset
3025
Dave Love <fx@gnu.org>
parents:
diff changeset
3026 The old meaning of %+ is now available on %&.
Dave Love <fx@gnu.org>
parents:
diff changeset
3027 It displays * for a modified buffer and - for an unmodified buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
3028 regardless of read-only status.
Dave Love <fx@gnu.org>
parents:
diff changeset
3029
Dave Love <fx@gnu.org>
parents:
diff changeset
3030 ** You can now use `underline' in the color list of a face.
Dave Love <fx@gnu.org>
parents:
diff changeset
3031 It serves as a last resort, and says to underline the face
Dave Love <fx@gnu.org>
parents:
diff changeset
3032 (if previous color list elements can't be used).
Dave Love <fx@gnu.org>
parents:
diff changeset
3033
Dave Love <fx@gnu.org>
parents:
diff changeset
3034 ** The new function x-color-values returns the list of color values
Dave Love <fx@gnu.org>
parents:
diff changeset
3035 for a given color name (a string). The list contains three integers
Dave Love <fx@gnu.org>
parents:
diff changeset
3036 which give the amounts of red, green and blue in the color: (R G B).
Dave Love <fx@gnu.org>
parents:
diff changeset
3037
Dave Love <fx@gnu.org>
parents:
diff changeset
3038 ** In run-at-time, 0 as the repeat interval means "don't repeat".
Dave Love <fx@gnu.org>
parents:
diff changeset
3039
Dave Love <fx@gnu.org>
parents:
diff changeset
3040 ** The variable trim-versions-without-asking has been renamed to
Dave Love <fx@gnu.org>
parents:
diff changeset
3041 delete-old-versions.
Dave Love <fx@gnu.org>
parents:
diff changeset
3042
Dave Love <fx@gnu.org>
parents:
diff changeset
3043 ** The new function other-window-for-scrolling returns the choice of
Dave Love <fx@gnu.org>
parents:
diff changeset
3044 other window for C-M-v to scroll.
Dave Love <fx@gnu.org>
parents:
diff changeset
3045
Dave Love <fx@gnu.org>
parents:
diff changeset
3046 ** Note that the function fceiling was mistakenly documented as fceil before.
Dave Love <fx@gnu.org>
parents:
diff changeset
3047
Dave Love <fx@gnu.org>
parents:
diff changeset
3048 * Changes in cc-mode.el in Emacs 19.26:
Dave Love <fx@gnu.org>
parents:
diff changeset
3049
Dave Love <fx@gnu.org>
parents:
diff changeset
3050 ** A new syntactic symbol has been added: substatement-open. It
Dave Love <fx@gnu.org>
parents:
diff changeset
3051 defines the open brace of a substatement block. These used to get:
Dave Love <fx@gnu.org>
parents:
diff changeset
3052 ((block-open ...) (substatement . ...)).
Dave Love <fx@gnu.org>
parents:
diff changeset
3053
Dave Love <fx@gnu.org>
parents:
diff changeset
3054 Non-block substatement lines still get just ((substatement . ...))
Dave Love <fx@gnu.org>
parents:
diff changeset
3055
Dave Love <fx@gnu.org>
parents:
diff changeset
3056 Note that the custom indent function c-adaptive-block-open has been
Dave Love <fx@gnu.org>
parents:
diff changeset
3057 removed as obsolete.
Dave Love <fx@gnu.org>
parents:
diff changeset
3058
Dave Love <fx@gnu.org>
parents:
diff changeset
3059 ** You can now specify the `hanginess' of closing braces. See
Dave Love <fx@gnu.org>
parents:
diff changeset
3060 c-hanging-braces-alist.
Dave Love <fx@gnu.org>
parents:
diff changeset
3061
Dave Love <fx@gnu.org>
parents:
diff changeset
3062 ** Recognizes try and catch blocks in C++. They are given the
Dave Love <fx@gnu.org>
parents:
diff changeset
3063 substatement syntactic symbol.
Dave Love <fx@gnu.org>
parents:
diff changeset
3064
Dave Love <fx@gnu.org>
parents:
diff changeset
3065 ** should be generally more forgiving about non-GNU standard top-level
Dave Love <fx@gnu.org>
parents:
diff changeset
3066 construct definition styles (i.e. where the function/class/struct
Dave Love <fx@gnu.org>
parents:
diff changeset
3067 opening brace does not start in column zero).
Dave Love <fx@gnu.org>
parents:
diff changeset
3068
Dave Love <fx@gnu.org>
parents:
diff changeset
3069 If you hang the braces that open a top-level construct on the right
Dave Love <fx@gnu.org>
parents:
diff changeset
3070 edge, and you find you still need to define defun-open-prompt (Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
3071 19) please let me know. Note that there may still be performance
Dave Love <fx@gnu.org>
parents:
diff changeset
3072 issues related to non-column zero opening braces.
Dave Love <fx@gnu.org>
parents:
diff changeset
3073
Dave Love <fx@gnu.org>
parents:
diff changeset
3074 ** c-macro-expand is put on C-c C-e
Dave Love <fx@gnu.org>
parents:
diff changeset
3075
Dave Love <fx@gnu.org>
parents:
diff changeset
3076 ** New style: "Default". Resets indentation to those shipped with
Dave Love <fx@gnu.org>
parents:
diff changeset
3077 cc-mode.el.
Dave Love <fx@gnu.org>
parents:
diff changeset
3078
Dave Love <fx@gnu.org>
parents:
diff changeset
3079 ** internal defun c-indent-via-language-element has been renamed
Dave Love <fx@gnu.org>
parents:
diff changeset
3080 c-indent-line for compatibility with c-mode.el and awk-mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
3081
Dave Love <fx@gnu.org>
parents:
diff changeset
3082 ** new buffer-local variable c-comment-start-regexp for (potential)
Dave Love <fx@gnu.org>
parents:
diff changeset
3083 flexibility in adding new modes based on cc-mode.el
Dave Love <fx@gnu.org>
parents:
diff changeset
3084
Dave Love <fx@gnu.org>
parents:
diff changeset
3085 * Changes in Emacs 19.25
Dave Love <fx@gnu.org>
parents:
diff changeset
3086
Dave Love <fx@gnu.org>
parents:
diff changeset
3087 The variable x-cross-pointer-shape (which didn't really exist) has
Dave Love <fx@gnu.org>
parents:
diff changeset
3088 been renamed to x-sensitive-text-pointer-shape, and now does exist.
Dave Love <fx@gnu.org>
parents:
diff changeset
3089
Dave Love <fx@gnu.org>
parents:
diff changeset
3090 * Changes in Emacs 19.24
Dave Love <fx@gnu.org>
parents:
diff changeset
3091
Dave Love <fx@gnu.org>
parents:
diff changeset
3092 Here is a list of new Lisp packages introduced since 19.22.
Dave Love <fx@gnu.org>
parents:
diff changeset
3093
Dave Love <fx@gnu.org>
parents:
diff changeset
3094 derived.el Define new major modes based on old ones.
Dave Love <fx@gnu.org>
parents:
diff changeset
3095 dired-x.el Extra Dired features.
Dave Love <fx@gnu.org>
parents:
diff changeset
3096 double.el New mode for conveniently inputting non-beyond chars.
Dave Love <fx@gnu.org>
parents:
diff changeset
3097 easymenu.el Create menus easily.
Dave Love <fx@gnu.org>
parents:
diff changeset
3098 ediff.el Snazzy diff interface.
Dave Love <fx@gnu.org>
parents:
diff changeset
3099 foldout.el A kind of outline mode designed for editing programs.
Dave Love <fx@gnu.org>
parents:
diff changeset
3100 gnus-uu.el UUdecode in GNUS buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
3101 ielm.el Interactively evaluate Lisp.
Dave Love <fx@gnu.org>
parents:
diff changeset
3102 This is a replacement for Lisp Interaction Mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
3103 iso-cvt.el Conversion of beyond-ASCII characters between
Dave Love <fx@gnu.org>
parents:
diff changeset
3104 various different representations.
Dave Love <fx@gnu.org>
parents:
diff changeset
3105 jka-compr.el Automatic compression/decompression.
Dave Love <fx@gnu.org>
parents:
diff changeset
3106 mldrag.el Drag modeline to change heights of windows.
Dave Love <fx@gnu.org>
parents:
diff changeset
3107 mail-hist.el Provides history for headers of outgoing mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
3108 rsz-mini.el Automatically resizing minibuffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
3109 s-region.el Set region by holding shift.
Dave Love <fx@gnu.org>
parents:
diff changeset
3110 skeleton.el Templates for statement insertion.
Dave Love <fx@gnu.org>
parents:
diff changeset
3111 soundex.el Classifying words by how they sound.
Dave Love <fx@gnu.org>
parents:
diff changeset
3112 tempo.el Template insertion with hotspots.
Dave Love <fx@gnu.org>
parents:
diff changeset
3113
Dave Love <fx@gnu.org>
parents:
diff changeset
3114 * User Editing Changes in 19.23.
Dave Love <fx@gnu.org>
parents:
diff changeset
3115
Dave Love <fx@gnu.org>
parents:
diff changeset
3116 ** Emacs 19.23 uses Ispell version 3.
Dave Love <fx@gnu.org>
parents:
diff changeset
3117
Dave Love <fx@gnu.org>
parents:
diff changeset
3118 Previous Emacs 19 versions used Ispell version 4. That version had
Dave Love <fx@gnu.org>
parents:
diff changeset
3119 improvements in storing the dictionary compactly, but these are not
Dave Love <fx@gnu.org>
parents:
diff changeset
3120 very important nowadays. Meanwhile, in parallel to the work on Ispell
Dave Love <fx@gnu.org>
parents:
diff changeset
3121 4, many useful features were added to Ispell 3. Until a few months
Dave Love <fx@gnu.org>
parents:
diff changeset
3122 ago, the terms on Ispell 3 did not let us use it; but they have now
Dave Love <fx@gnu.org>
parents:
diff changeset
3123 been changed, so now we are using it. We are dropping Ispell 4.
Dave Love <fx@gnu.org>
parents:
diff changeset
3124
Dave Love <fx@gnu.org>
parents:
diff changeset
3125 ** Emacs 19.23 can run on MS-DOG. See the file MSDOS in the same
Dave Love <fx@gnu.org>
parents:
diff changeset
3126 directory as this file.
Dave Love <fx@gnu.org>
parents:
diff changeset
3127
Dave Love <fx@gnu.org>
parents:
diff changeset
3128 ** Emacs 19.23 can work with an X toolkit. You must specify toolkit
Dave Love <fx@gnu.org>
parents:
diff changeset
3129 operation when you configure Emacs: use the option
Dave Love <fx@gnu.org>
parents:
diff changeset
3130 --with-x-toolkit=yes. (This option uses code developed by Lucid;
Dave Love <fx@gnu.org>
parents:
diff changeset
3131 thanks to Frederic Pierresteguy for helping to adapt it.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3132
Dave Love <fx@gnu.org>
parents:
diff changeset
3133 ** Emacs now has dialog boxes; yes/no and y/n questions automatically
Dave Love <fx@gnu.org>
parents:
diff changeset
3134 use them in commands invoked with the mouse. For more information,
Dave Love <fx@gnu.org>
parents:
diff changeset
3135 see below under "Lisp programming changes".
Dave Love <fx@gnu.org>
parents:
diff changeset
3136
Dave Love <fx@gnu.org>
parents:
diff changeset
3137 ** Menus now display the keyboard equivalents (if any) of the menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3138 commands in parentheses after the menu item.
Dave Love <fx@gnu.org>
parents:
diff changeset
3139
Dave Love <fx@gnu.org>
parents:
diff changeset
3140 ** Kill commands, used in a read-only buffer, now move point across
Dave Love <fx@gnu.org>
parents:
diff changeset
3141 the text they would otherwise have killed. This way, you can use
Dave Love <fx@gnu.org>
parents:
diff changeset
3142 repeated kill commands to transfer text into the kill ring.
Dave Love <fx@gnu.org>
parents:
diff changeset
3143
Dave Love <fx@gnu.org>
parents:
diff changeset
3144 ** There is now a global mark ring in addition to the mark ring that is local
Dave Love <fx@gnu.org>
parents:
diff changeset
3145 to each buffer. The global mark ring stores positions in any buffer. Any
Dave Love <fx@gnu.org>
parents:
diff changeset
3146 time the mark is set and the current buffer is different from the last time
Dave Love <fx@gnu.org>
parents:
diff changeset
3147 the mark was set, the new mark is pushed on the global mark ring as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
3148 The new command C-x C-SPC (pop-global-mark) pops the global mark ring and
Dave Love <fx@gnu.org>
parents:
diff changeset
3149 jumps to the last mark pushed, first switching to that buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3150
Dave Love <fx@gnu.org>
parents:
diff changeset
3151 ** Query Replace is now available in the Edit menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
3152
Dave Love <fx@gnu.org>
parents:
diff changeset
3153 ** ESC no longer simply exits a Query Replace. It now exits the Query
Dave Love <fx@gnu.org>
parents:
diff changeset
3154 Replace and remains pending. Thus, ESC A and M-A are now equivalent
Dave Love <fx@gnu.org>
parents:
diff changeset
3155 in Query Replace.
Dave Love <fx@gnu.org>
parents:
diff changeset
3156
Dave Love <fx@gnu.org>
parents:
diff changeset
3157 To simply exit a Query Replace, type RET or Period.
Dave Love <fx@gnu.org>
parents:
diff changeset
3158
Dave Love <fx@gnu.org>
parents:
diff changeset
3159 ** M-mouse-2 now puts point at the end of the yanked secondary selection.
Dave Love <fx@gnu.org>
parents:
diff changeset
3160
Dave Love <fx@gnu.org>
parents:
diff changeset
3161 ** Mouse-1 in the mode line now simply selects the window above that
Dave Love <fx@gnu.org>
parents:
diff changeset
3162 mode line. Mouse-2 in the mode line selects that window and expands
Dave Love <fx@gnu.org>
parents:
diff changeset
3163 it to fill the frame it is in.
Dave Love <fx@gnu.org>
parents:
diff changeset
3164
Dave Love <fx@gnu.org>
parents:
diff changeset
3165 ** You can now use mouse-2 in a Dired buffer or Tar mode buffer to find
Dave Love <fx@gnu.org>
parents:
diff changeset
3166 a file you click on, in a compilation buffer to go to a particular
Dave Love <fx@gnu.org>
parents:
diff changeset
3167 error message, and in a *Occur* buffer to go to a particular
Dave Love <fx@gnu.org>
parents:
diff changeset
3168 occurrence.
Dave Love <fx@gnu.org>
parents:
diff changeset
3169
Dave Love <fx@gnu.org>
parents:
diff changeset
3170 (It was already possible to do likewise in Info and in completion list
Dave Love <fx@gnu.org>
parents:
diff changeset
3171 buffers.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3172
Dave Love <fx@gnu.org>
parents:
diff changeset
3173 What's more, the sensitive areas of the buffer now highlight when you
Dave Love <fx@gnu.org>
parents:
diff changeset
3174 move the mouse over them.
Dave Love <fx@gnu.org>
parents:
diff changeset
3175
Dave Love <fx@gnu.org>
parents:
diff changeset
3176 ** In a completion list buffer, the command RET now chooses the completion
Dave Love <fx@gnu.org>
parents:
diff changeset
3177 that is around or next to point.
Dave Love <fx@gnu.org>
parents:
diff changeset
3178
Dave Love <fx@gnu.org>
parents:
diff changeset
3179 ** If you specify the foreground color for the `mode-line' face, and
Dave Love <fx@gnu.org>
parents:
diff changeset
3180 mode-line-inverse-video is non-nil, then the default background color
Dave Love <fx@gnu.org>
parents:
diff changeset
3181 is the usual foreground color.
Dave Love <fx@gnu.org>
parents:
diff changeset
3182
Dave Love <fx@gnu.org>
parents:
diff changeset
3183 ** revert-buffer now preserves markers pointing within the unchanged
Dave Love <fx@gnu.org>
parents:
diff changeset
3184 text (if any) at the beginning and end of the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
3185
Dave Love <fx@gnu.org>
parents:
diff changeset
3186 ** Version control checkin and checkout preserve all markers if the
Dave Love <fx@gnu.org>
parents:
diff changeset
3187 file does not contain any of the magic version header sequences that
Dave Love <fx@gnu.org>
parents:
diff changeset
3188 are updated automatically by RCS and SCCS. If such version headers
Dave Love <fx@gnu.org>
parents:
diff changeset
3189 are present, checkin and checkout preserve a marker unless it comes
Dave Love <fx@gnu.org>
parents:
diff changeset
3190 between two such sequences. (So it's a good idea to put all the
Dave Love <fx@gnu.org>
parents:
diff changeset
3191 header sequences close together.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3192
Dave Love <fx@gnu.org>
parents:
diff changeset
3193 ** When a large deletion shuts off auto save temporarily in a buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
3194 you can now turn it on again by saving the buffer with C-x C-s (as was
Dave Love <fx@gnu.org>
parents:
diff changeset
3195 possible in Emacs 18). You can also turn it on again with M-1 M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
3196 auto-save (as has been possible in Emacs 19).
Dave Love <fx@gnu.org>
parents:
diff changeset
3197
Dave Love <fx@gnu.org>
parents:
diff changeset
3198 ** C-x r d now runs the command delete-rectangle.
Dave Love <fx@gnu.org>
parents:
diff changeset
3199
Dave Love <fx@gnu.org>
parents:
diff changeset
3200 ** The new command imenu shows you a menu of interesting places in the
Dave Love <fx@gnu.org>
parents:
diff changeset
3201 current buffer and lets you select one; then it moves point there.
Dave Love <fx@gnu.org>
parents:
diff changeset
3202 The definition of interesting places depends on the major mode, but
Dave Love <fx@gnu.org>
parents:
diff changeset
3203 typically this includes function definitions and such. Normally,
Dave Love <fx@gnu.org>
parents:
diff changeset
3204 imenu displays the menu in a buffer; but if you bind it to a mouse
Dave Love <fx@gnu.org>
parents:
diff changeset
3205 event, it shows a mouse popup menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
3206
Dave Love <fx@gnu.org>
parents:
diff changeset
3207 ** You can make certain chosen buffers, that normally appear in a
Dave Love <fx@gnu.org>
parents:
diff changeset
3208 separate window, appear in special frames of their own. To do this,
Dave Love <fx@gnu.org>
parents:
diff changeset
3209 set special-display-buffer-names to a list of buffer names; any buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
3210 whose name is in that list automatically gets a special frame when it
Dave Love <fx@gnu.org>
parents:
diff changeset
3211 is to be displayed in another window.
Dave Love <fx@gnu.org>
parents:
diff changeset
3212
Dave Love <fx@gnu.org>
parents:
diff changeset
3213 A good value to try is ("*compilation*" "*grep*" "*TeX Shell*").
Dave Love <fx@gnu.org>
parents:
diff changeset
3214
Dave Love <fx@gnu.org>
parents:
diff changeset
3215 More generally, you can set special-display-regexps to a list of regular
Dave Love <fx@gnu.org>
parents:
diff changeset
3216 expressions; then each buffer whose name matches any of those regular
Dave Love <fx@gnu.org>
parents:
diff changeset
3217 expressions gets its own frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
3218
Dave Love <fx@gnu.org>
parents:
diff changeset
3219 The variable special-display-frame-alist specifies the frame
Dave Love <fx@gnu.org>
parents:
diff changeset
3220 parameters for these frames. It has a default value, so you don't
Dave Love <fx@gnu.org>
parents:
diff changeset
3221 need to set it.
Dave Love <fx@gnu.org>
parents:
diff changeset
3222
Dave Love <fx@gnu.org>
parents:
diff changeset
3223 ** If you set sentence-end-double-space to nil, the fill commands
Dave Love <fx@gnu.org>
parents:
diff changeset
3224 expect just one space at the end of a sentence. (If you want the
Dave Love <fx@gnu.org>
parents:
diff changeset
3225 sentence commands to accept single spaces, you must modify the regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
3226 sentence-end also.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3227
Dave Love <fx@gnu.org>
parents:
diff changeset
3228 ** You can suppress the startup echo area message by adding text like
Dave Love <fx@gnu.org>
parents:
diff changeset
3229 this to your .emacs file:
Dave Love <fx@gnu.org>
parents:
diff changeset
3230
Dave Love <fx@gnu.org>
parents:
diff changeset
3231 (setq inhibit-startup-echo-area-message "YOUR-LOGIN-NAME")
Dave Love <fx@gnu.org>
parents:
diff changeset
3232
Dave Love <fx@gnu.org>
parents:
diff changeset
3233 Simply setting inhibit-startup-echo-area-message to your login name is
Dave Love <fx@gnu.org>
parents:
diff changeset
3234 not sufficient to inhibit the message; Emacs explicitly checks whether
Dave Love <fx@gnu.org>
parents:
diff changeset
3235 .emacs contains an expression as shown above. Your login name must
Dave Love <fx@gnu.org>
parents:
diff changeset
3236 appear in the expression as a Lisp string constant.
Dave Love <fx@gnu.org>
parents:
diff changeset
3237
Dave Love <fx@gnu.org>
parents:
diff changeset
3238 This way, you can easily inhibit the message for yourself if you wish,
Dave Love <fx@gnu.org>
parents:
diff changeset
3239 but thoughtless copying of your .emacs file will not inhibit the
Dave Love <fx@gnu.org>
parents:
diff changeset
3240 message for someone else.
Dave Love <fx@gnu.org>
parents:
diff changeset
3241
Dave Love <fx@gnu.org>
parents:
diff changeset
3242 ** Outline minor mode now uses C-c C-o as a prefix instead of just C-c.
Dave Love <fx@gnu.org>
parents:
diff changeset
3243
Dave Love <fx@gnu.org>
parents:
diff changeset
3244 ** In Outline mode, hide-subtree is now C-c C-d. (It was C-c C-h; but
Dave Love <fx@gnu.org>
parents:
diff changeset
3245 that is now a conventional way to ask for help about C-c commands.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3246
Dave Love <fx@gnu.org>
parents:
diff changeset
3247 ** There are two additional commands in Outline mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
3248 M-x hide-sublevels
Dave Love <fx@gnu.org>
parents:
diff changeset
3249 hides all headers except the topmost N levels.
Dave Love <fx@gnu.org>
parents:
diff changeset
3250 M-x hide-other
Dave Love <fx@gnu.org>
parents:
diff changeset
3251 hides everything about the body that point is in
Dave Love <fx@gnu.org>
parents:
diff changeset
3252 plus the headers leading up from there to the top of the tree.
Dave Love <fx@gnu.org>
parents:
diff changeset
3253
Dave Love <fx@gnu.org>
parents:
diff changeset
3254 ** In iso-transl and iso-insert, the sequences for entering A-ring and
Dave Love <fx@gnu.org>
parents:
diff changeset
3255 the AE ligature are now just A and E (plus the initial C-x 8 or Alt).
Dave Love <fx@gnu.org>
parents:
diff changeset
3256 You used to have to enter AA or AE, after the C-x 8 prefix of course.
Dave Love <fx@gnu.org>
parents:
diff changeset
3257 Likewise for lower case a-ring and ae.
Dave Love <fx@gnu.org>
parents:
diff changeset
3258
Dave Love <fx@gnu.org>
parents:
diff changeset
3259 ** iso-transl now defines convenient Alt keys as well as the C-x 8 prefix.
Dave Love <fx@gnu.org>
parents:
diff changeset
3260 Instead of prefixing a sequence with C-x 8, you can add Alt to the
Dave Love <fx@gnu.org>
parents:
diff changeset
3261 first character of the sequence. For example, Alt-" a is now a way
Dave Love <fx@gnu.org>
parents:
diff changeset
3262 to enter an a-umlaut.
Dave Love <fx@gnu.org>
parents:
diff changeset
3263
Dave Love <fx@gnu.org>
parents:
diff changeset
3264 ** CC mode is a greatly improved mode for C and C++.
Dave Love <fx@gnu.org>
parents:
diff changeset
3265 See the following page.
Dave Love <fx@gnu.org>
parents:
diff changeset
3266
Dave Love <fx@gnu.org>
parents:
diff changeset
3267 ** tcl mode is a new major mode. It provides features for
Dave Love <fx@gnu.org>
parents:
diff changeset
3268 editing, indenting and running tcl programs.
Dave Love <fx@gnu.org>
parents:
diff changeset
3269
Dave Love <fx@gnu.org>
parents:
diff changeset
3270 ** Compilation minor mode lets you parse error messages in any buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
3271 not just a normal compilation output buffer. Type M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
3272 compilation-minor-mode to enable the minor mode; then C-c C-c jumps to
Dave Love <fx@gnu.org>
parents:
diff changeset
3273 the source location for the error at point, as in the `*compilation*'
Dave Love <fx@gnu.org>
parents:
diff changeset
3274 buffer. If you use compilation-minor-mode in an Rlogin buffer, it
Dave Love <fx@gnu.org>
parents:
diff changeset
3275 automatically accesses remote source files by ftp.
Dave Love <fx@gnu.org>
parents:
diff changeset
3276
Dave Love <fx@gnu.org>
parents:
diff changeset
3277 ** Comint and shell mode changes:
Dave Love <fx@gnu.org>
parents:
diff changeset
3278
Dave Love <fx@gnu.org>
parents:
diff changeset
3279 *** Comint modes (including Shell mode, GUD modes, etc.) now bind
Dave Love <fx@gnu.org>
parents:
diff changeset
3280 C-M-l to the command comint-show-output. This command scrolls the
Dave Love <fx@gnu.org>
parents:
diff changeset
3281 buffer to show the last batch of output from the subprogram.
Dave Love <fx@gnu.org>
parents:
diff changeset
3282
Dave Love <fx@gnu.org>
parents:
diff changeset
3283 *** Completion in Comint modes now truly operates on the string before
Dave Love <fx@gnu.org>
parents:
diff changeset
3284 point, rather than the word that point is within.
Dave Love <fx@gnu.org>
parents:
diff changeset
3285
Dave Love <fx@gnu.org>
parents:
diff changeset
3286 *** Comint mode file name completion ignores those files that end with a
Dave Love <fx@gnu.org>
parents:
diff changeset
3287 string in the new variable comint-completion-fignore. This variable's
Dave Love <fx@gnu.org>
parents:
diff changeset
3288 default value is nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
3289
Dave Love <fx@gnu.org>
parents:
diff changeset
3290 *** Shell mode uses the variable shell-completion-fignore to set
Dave Love <fx@gnu.org>
parents:
diff changeset
3291 comint-completion-fignore. The default value is nil, but some
Dave Love <fx@gnu.org>
parents:
diff changeset
3292 people prefer ("~" "#" "%").
Dave Love <fx@gnu.org>
parents:
diff changeset
3293
Dave Love <fx@gnu.org>
parents:
diff changeset
3294 *** The function `comint-watch-for-password-prompt' can be used to
Dave Love <fx@gnu.org>
parents:
diff changeset
3295 suppress echoing when a subprocess asks for a password. To use it,
Dave Love <fx@gnu.org>
parents:
diff changeset
3296 do this:
Dave Love <fx@gnu.org>
parents:
diff changeset
3297
Dave Love <fx@gnu.org>
parents:
diff changeset
3298 (add-hook 'comint-output-filter-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
3299 'comint-watch-for-password-prompt)
Dave Love <fx@gnu.org>
parents:
diff changeset
3300
Dave Love <fx@gnu.org>
parents:
diff changeset
3301 *** You can use M-x shell-strip-ctrl-m to strip ^M characters from
Dave Love <fx@gnu.org>
parents:
diff changeset
3302 process output.
Dave Love <fx@gnu.org>
parents:
diff changeset
3303
Dave Love <fx@gnu.org>
parents:
diff changeset
3304 *** In Shell mode, TAB now completes environment variables, if possible,
Dave Love <fx@gnu.org>
parents:
diff changeset
3305 and expands directory references.
Dave Love <fx@gnu.org>
parents:
diff changeset
3306
Dave Love <fx@gnu.org>
parents:
diff changeset
3307 *** You can use M-x comint-run to execute any program of your choice in
Dave Love <fx@gnu.org>
parents:
diff changeset
3308 a comint mode. Some programs such as shells, rlogin, and debuggers
Dave Love <fx@gnu.org>
parents:
diff changeset
3309 have their own specialized modes; this command is one way to use
Dave Love <fx@gnu.org>
parents:
diff changeset
3310 comint to run programs for which no such specialized mode exits. (You
Dave Love <fx@gnu.org>
parents:
diff changeset
3311 can also run a shell with M-x shell and run the program of your choice
Dave Love <fx@gnu.org>
parents:
diff changeset
3312 under the shell--but that gives you the specializations of Shell
Dave Love <fx@gnu.org>
parents:
diff changeset
3313 mode.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3314
Dave Love <fx@gnu.org>
parents:
diff changeset
3315 ** When you run GUD (M-x gdb, M-x dbx, and so on), you can use TAB
Dave Love <fx@gnu.org>
parents:
diff changeset
3316 to do file name completion in the minibuffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3317
Dave Love <fx@gnu.org>
parents:
diff changeset
3318 The "Complete" menu includes an item for directory expansion.
Dave Love <fx@gnu.org>
parents:
diff changeset
3319
Dave Love <fx@gnu.org>
parents:
diff changeset
3320 ** GUD working with future versions of GDB will permit TAB for
Dave Love <fx@gnu.org>
parents:
diff changeset
3321 GDB-style symbol completion. This will work with GDB 4.13.
Dave Love <fx@gnu.org>
parents:
diff changeset
3322
Dave Love <fx@gnu.org>
parents:
diff changeset
3323 ** Rmail no longer gets new mail automatically when you visit an Rmail
Dave Love <fx@gnu.org>
parents:
diff changeset
3324 file specified by name--not even if it is your primary Rmail file. To
Dave Love <fx@gnu.org>
parents:
diff changeset
3325 get new mail, type `g'. This feature is an advantage because you now
Dave Love <fx@gnu.org>
parents:
diff changeset
3326 have a choice of whether to get new mail. (This change actually
Dave Love <fx@gnu.org>
parents:
diff changeset
3327 occurred in an earlier version, but wasn't listed here then, since it
Dave Love <fx@gnu.org>
parents:
diff changeset
3328 made the code do what the documentation already said.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3329
Dave Love <fx@gnu.org>
parents:
diff changeset
3330 ** Rmail now highlights certain fields automatically, when you use X
Dave Love <fx@gnu.org>
parents:
diff changeset
3331 windows. The variable rmail-highlighted-headers controls which
Dave Love <fx@gnu.org>
parents:
diff changeset
3332 fields.
Dave Love <fx@gnu.org>
parents:
diff changeset
3333
Dave Love <fx@gnu.org>
parents:
diff changeset
3334 ** If you set rmail-summary-window-size to an integer, Rmail uses
Dave Love <fx@gnu.org>
parents:
diff changeset
3335 a window that many lines high for the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3336
Dave Love <fx@gnu.org>
parents:
diff changeset
3337 ** rmail-input-menu is a new command that visits an Rmail file letting
Dave Love <fx@gnu.org>
parents:
diff changeset
3338 you choose which file with a mouse menu. rmail-output-menu is
Dave Love <fx@gnu.org>
parents:
diff changeset
3339 similar; it outputs the current message, using a mouse menu to choose
Dave Love <fx@gnu.org>
parents:
diff changeset
3340 which Rmail file. These commands use the variables
Dave Love <fx@gnu.org>
parents:
diff changeset
3341 rmail-secondary-file-directory and rmail-secondary-file-regexp.
Dave Love <fx@gnu.org>
parents:
diff changeset
3342
Dave Love <fx@gnu.org>
parents:
diff changeset
3343 ** The mh-e package has been changed substantially.
Dave Love <fx@gnu.org>
parents:
diff changeset
3344 See the file ./MH-E-NEWS for details.
Dave Love <fx@gnu.org>
parents:
diff changeset
3345
Dave Love <fx@gnu.org>
parents:
diff changeset
3346 ** The calendar and diary have new features.
Dave Love <fx@gnu.org>
parents:
diff changeset
3347
Dave Love <fx@gnu.org>
parents:
diff changeset
3348 The menu bar for the calendar contains most of the calendar commands,
Dave Love <fx@gnu.org>
parents:
diff changeset
3349 arranged into logical categories.
Dave Love <fx@gnu.org>
parents:
diff changeset
3350
Dave Love <fx@gnu.org>
parents:
diff changeset
3351 Mouse-2 now performs specific-date-related commands when clicked on a
Dave Love <fx@gnu.org>
parents:
diff changeset
3352 date in the calendar window and common three-month-related commands
Dave Love <fx@gnu.org>
parents:
diff changeset
3353 when clicked elsewhere in the calendar window.
Dave Love <fx@gnu.org>
parents:
diff changeset
3354
Dave Love <fx@gnu.org>
parents:
diff changeset
3355 You can set up colored/shaded highlighting of holidays, diary entry
Dave Love <fx@gnu.org>
parents:
diff changeset
3356 dates, and today's date, by setting calendar-holiday-marker,
Dave Love <fx@gnu.org>
parents:
diff changeset
3357 diary-entry-marker, and calendar-today-marker to a face instead of a
Dave Love <fx@gnu.org>
parents:
diff changeset
3358 character. Using a special face is now the default if you are using a
Dave Love <fx@gnu.org>
parents:
diff changeset
3359 window system.
Dave Love <fx@gnu.org>
parents:
diff changeset
3360
Dave Love <fx@gnu.org>
parents:
diff changeset
3361 ** The appt package for displaying appointment reminders has new
Dave Love <fx@gnu.org>
parents:
diff changeset
3362 features.
Dave Love <fx@gnu.org>
parents:
diff changeset
3363
Dave Love <fx@gnu.org>
parents:
diff changeset
3364 *** The appt alarm window stays for the full duration of
Dave Love <fx@gnu.org>
parents:
diff changeset
3365 appt-display-duration. It no longer disappears when you start typing
Dave Love <fx@gnu.org>
parents:
diff changeset
3366 text.
Dave Love <fx@gnu.org>
parents:
diff changeset
3367
Dave Love <fx@gnu.org>
parents:
diff changeset
3368 *** You can change the way the appointment window is created/deleted by
Dave Love <fx@gnu.org>
parents:
diff changeset
3369 setting the variables appt-disp-window-function and
Dave Love <fx@gnu.org>
parents:
diff changeset
3370 appt-delete-window-function.
Dave Love <fx@gnu.org>
parents:
diff changeset
3371
Dave Love <fx@gnu.org>
parents:
diff changeset
3372 For instance, these variables can be set to functions that display
Dave Love <fx@gnu.org>
parents:
diff changeset
3373 appointments in pop-up frames, which are lowered or iconified after
Dave Love <fx@gnu.org>
parents:
diff changeset
3374 appt-display-duration seconds.
Dave Love <fx@gnu.org>
parents:
diff changeset
3375
Dave Love <fx@gnu.org>
parents:
diff changeset
3376 ** desktop.el can now save a list of buffer-local variables,
Dave Love <fx@gnu.org>
parents:
diff changeset
3377 and saves more global ones.
Dave Love <fx@gnu.org>
parents:
diff changeset
3378
Dave Love <fx@gnu.org>
parents:
diff changeset
3379 ** Pascal mode has been completely rewritten. It now features
Dave Love <fx@gnu.org>
parents:
diff changeset
3380 completing of function names, variables and type definitions around
Dave Love <fx@gnu.org>
parents:
diff changeset
3381 current point (like M-TAB does with lisp-symbols). There's also an
Dave Love <fx@gnu.org>
parents:
diff changeset
3382 outline mode (M-x pascal-outline) that hides the bodies of all
Dave Love <fx@gnu.org>
parents:
diff changeset
3383 functions you're not working with.
Dave Love <fx@gnu.org>
parents:
diff changeset
3384
Dave Love <fx@gnu.org>
parents:
diff changeset
3385 ** Edebug has a number of changes:
Dave Love <fx@gnu.org>
parents:
diff changeset
3386
Dave Love <fx@gnu.org>
parents:
diff changeset
3387 *** Edebug syntax error reporting is improved.
Dave Love <fx@gnu.org>
parents:
diff changeset
3388
Dave Love <fx@gnu.org>
parents:
diff changeset
3389 *** Top-level forms and defining forms other than defun and defmacro may
Dave Love <fx@gnu.org>
parents:
diff changeset
3390 now be debugged with Edebug.
Dave Love <fx@gnu.org>
parents:
diff changeset
3391
Dave Love <fx@gnu.org>
parents:
diff changeset
3392 *** Edebug specifications may now contain body, &define, name, arg or
Dave Love <fx@gnu.org>
parents:
diff changeset
3393 arglist, def-body, and def-form, to support definitions.
Dave Love <fx@gnu.org>
parents:
diff changeset
3394
Dave Love <fx@gnu.org>
parents:
diff changeset
3395 *** edebug-all-defuns is renamed to edebug-all-defs.
Dave Love <fx@gnu.org>
parents:
diff changeset
3396 def-edebug-form-spec is replaced by def-edebug-form whose arguments
Dave Love <fx@gnu.org>
parents:
diff changeset
3397 are unevaluated. The old names are still available for now.
Dave Love <fx@gnu.org>
parents:
diff changeset
3398
Dave Love <fx@gnu.org>
parents:
diff changeset
3399 *** Frequency counts and coverage data may be displayed for functions being
Dave Love <fx@gnu.org>
parents:
diff changeset
3400 debugged.
Dave Love <fx@gnu.org>
parents:
diff changeset
3401
Dave Love <fx@gnu.org>
parents:
diff changeset
3402 *** A global break condition is now checked at every stop point.
Dave Love <fx@gnu.org>
parents:
diff changeset
3403
Dave Love <fx@gnu.org>
parents:
diff changeset
3404 *** The previous condition at a breakpoint may now be edited.
Dave Love <fx@gnu.org>
parents:
diff changeset
3405
Dave Love <fx@gnu.org>
parents:
diff changeset
3406 *** A new "next" mode stops only after expression evaluation.
Dave Love <fx@gnu.org>
parents:
diff changeset
3407
Dave Love <fx@gnu.org>
parents:
diff changeset
3408 *** A new command, top-level-nonstop, does not even stop for unwind-protect,
Dave Love <fx@gnu.org>
parents:
diff changeset
3409 as top-level would.
Dave Love <fx@gnu.org>
parents:
diff changeset
3410
Dave Love <fx@gnu.org>
parents:
diff changeset
3411 * Changes in CC mode in Emacs 19.23.
Dave Love <fx@gnu.org>
parents:
diff changeset
3412
Dave Love <fx@gnu.org>
parents:
diff changeset
3413 `cc-mode' provides ANSI C, K&R C, and ARM C++ language editing. It
Dave Love <fx@gnu.org>
parents:
diff changeset
3414 represents the merge of c++-mode.el and c-mode.el. cc-mode provides a
Dave Love <fx@gnu.org>
parents:
diff changeset
3415 new, more flexible indentation engine so that indentation
Dave Love <fx@gnu.org>
parents:
diff changeset
3416 customization is more intuitive. There are two steps to calculating
Dave Love <fx@gnu.org>
parents:
diff changeset
3417 indentation: first, CC mode analyzes the line for syntactic content,
Dave Love <fx@gnu.org>
parents:
diff changeset
3418 then based on this content it applies user defined offsets and adds
Dave Love <fx@gnu.org>
parents:
diff changeset
3419 this offset to the indentation of some previous line.
Dave Love <fx@gnu.org>
parents:
diff changeset
3420
Dave Love <fx@gnu.org>
parents:
diff changeset
3421 The syntactic analysis determines if the line describes a `statement',
Dave Love <fx@gnu.org>
parents:
diff changeset
3422 `substatement', `class-open', `member-init-intro', etc. These are
Dave Love <fx@gnu.org>
parents:
diff changeset
3423 described in detail with C-h v c-offsets-alist. You can change the
Dave Love <fx@gnu.org>
parents:
diff changeset
3424 offsets interactively with C-c C-o (c-set-offsets), or
Dave Love <fx@gnu.org>
parents:
diff changeset
3425 programmatically in your c-mode-common-hook, which is run both by
Dave Love <fx@gnu.org>
parents:
diff changeset
3426 c-mode and c++-mode. You can also set up "styles" in the same way
Dave Love <fx@gnu.org>
parents:
diff changeset
3427 that you could with c-mode.el. The variable c-basic-offset controls
Dave Love <fx@gnu.org>
parents:
diff changeset
3428 the basic offset given to a level of indentation.
Dave Love <fx@gnu.org>
parents:
diff changeset
3429
Dave Love <fx@gnu.org>
parents:
diff changeset
3430 If, for example, you wanted to change this style:
Dave Love <fx@gnu.org>
parents:
diff changeset
3431
Dave Love <fx@gnu.org>
parents:
diff changeset
3432 int foo (int i)
Dave Love <fx@gnu.org>
parents:
diff changeset
3433 {
Dave Love <fx@gnu.org>
parents:
diff changeset
3434 switch (i) {
Dave Love <fx@gnu.org>
parents:
diff changeset
3435 case 1:
Dave Love <fx@gnu.org>
parents:
diff changeset
3436 printf ("its a foo\n");
Dave Love <fx@gnu.org>
parents:
diff changeset
3437 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
3438 default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3439 printf ("don't know what it is\n");
Dave Love <fx@gnu.org>
parents:
diff changeset
3440 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
3441 }
Dave Love <fx@gnu.org>
parents:
diff changeset
3442 }
Dave Love <fx@gnu.org>
parents:
diff changeset
3443
Dave Love <fx@gnu.org>
parents:
diff changeset
3444 into this:
Dave Love <fx@gnu.org>
parents:
diff changeset
3445
Dave Love <fx@gnu.org>
parents:
diff changeset
3446 int foo (int i)
Dave Love <fx@gnu.org>
parents:
diff changeset
3447 {
Dave Love <fx@gnu.org>
parents:
diff changeset
3448 switch (i) {
Dave Love <fx@gnu.org>
parents:
diff changeset
3449 case 1:
Dave Love <fx@gnu.org>
parents:
diff changeset
3450 printf ("its a foo\n");
Dave Love <fx@gnu.org>
parents:
diff changeset
3451 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
3452 default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3453 printf ("don't know what it is\n");
Dave Love <fx@gnu.org>
parents:
diff changeset
3454 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
3455 }
Dave Love <fx@gnu.org>
parents:
diff changeset
3456 }
Dave Love <fx@gnu.org>
parents:
diff changeset
3457
Dave Love <fx@gnu.org>
parents:
diff changeset
3458 you could add the following to your .emacs file:
Dave Love <fx@gnu.org>
parents:
diff changeset
3459
Dave Love <fx@gnu.org>
parents:
diff changeset
3460 (defun my-c-mode-common-hook ()
Dave Love <fx@gnu.org>
parents:
diff changeset
3461 (c-set-offset 'case-label 2)
Dave Love <fx@gnu.org>
parents:
diff changeset
3462 (c-set-offset 'statement-case-intro 2))
Dave Love <fx@gnu.org>
parents:
diff changeset
3463 (add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
Dave Love <fx@gnu.org>
parents:
diff changeset
3464
Dave Love <fx@gnu.org>
parents:
diff changeset
3465 ** New variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
3466
Dave Love <fx@gnu.org>
parents:
diff changeset
3467 c-offsets-alist contains an association list of syntactic symbols and
Dave Love <fx@gnu.org>
parents:
diff changeset
3468 their relative offsets. Do a "C-h v c-offsets-alist" to get a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
3469 all syntactic symbols currently defined, and their meanings. You
Dave Love <fx@gnu.org>
parents:
diff changeset
3470 should not change this variable directly; use the supplied interface
Dave Love <fx@gnu.org>
parents:
diff changeset
3471 commands c-set-offset and c-set-style.
Dave Love <fx@gnu.org>
parents:
diff changeset
3472
Dave Love <fx@gnu.org>
parents:
diff changeset
3473 c-mode-common-hook is run by both c-mode and c++-mode during their
Dave Love <fx@gnu.org>
parents:
diff changeset
3474 common initializations. You should put any customizations that are
Dave Love <fx@gnu.org>
parents:
diff changeset
3475 the same for both C and C++ into this hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
3476
Dave Love <fx@gnu.org>
parents:
diff changeset
3477 The variable c-strict-semantics-p is used mainly for debugging. When
Dave Love <fx@gnu.org>
parents:
diff changeset
3478 non-nil, CC mode signals an error if it returns a syntactic symbol
Dave Love <fx@gnu.org>
parents:
diff changeset
3479 that can't be found in c-offsets-alist.
Dave Love <fx@gnu.org>
parents:
diff changeset
3480
Dave Love <fx@gnu.org>
parents:
diff changeset
3481 If you want CC mode to echo the syntactic analysis for a particular
Dave Love <fx@gnu.org>
parents:
diff changeset
3482 line when you hit the TAB key, set c-echo-semantic-information-p to
Dave Love <fx@gnu.org>
parents:
diff changeset
3483 non-nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
3484
Dave Love <fx@gnu.org>
parents:
diff changeset
3485 c-basic-offset controls the standard amount of offset for a level of
Dave Love <fx@gnu.org>
parents:
diff changeset
3486 indentation. You can set a syntactic symbol's offset to + or - as a
Dave Love <fx@gnu.org>
parents:
diff changeset
3487 short-hand for positive or negative c-basic-offset.
Dave Love <fx@gnu.org>
parents:
diff changeset
3488
Dave Love <fx@gnu.org>
parents:
diff changeset
3489 c-comment-only-line-offset lets you control indentation given to lines
Dave Love <fx@gnu.org>
parents:
diff changeset
3490 which contain only a comment, in the case of C++ line style comments,
Dave Love <fx@gnu.org>
parents:
diff changeset
3491 or the introduction to a C block comment. Comment-only lines at
Dave Love <fx@gnu.org>
parents:
diff changeset
3492 column zero can be anchored there independent of the indentation given
Dave Love <fx@gnu.org>
parents:
diff changeset
3493 to other comment-only lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
3494
Dave Love <fx@gnu.org>
parents:
diff changeset
3495 c-block-comments-indent-p controls the style of C block comment
Dave Love <fx@gnu.org>
parents:
diff changeset
3496 re-indentation. If you put leading stars in front of comment
Dave Love <fx@gnu.org>
parents:
diff changeset
3497 continuation lines, you should set this variable to nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
3498
Dave Love <fx@gnu.org>
parents:
diff changeset
3499 c-cleanup-list is a list describing certain C and C++ constructs to be
Dave Love <fx@gnu.org>
parents:
diff changeset
3500 "cleaned up" as they are typed, but only when the auto-newline feature
Dave Love <fx@gnu.org>
parents:
diff changeset
3501 is turned on. In C++, make sure this variable contains at least
Dave Love <fx@gnu.org>
parents:
diff changeset
3502 'scope-operator so that double colons will not be separated by a
Dave Love <fx@gnu.org>
parents:
diff changeset
3503 newline.
Dave Love <fx@gnu.org>
parents:
diff changeset
3504
Dave Love <fx@gnu.org>
parents:
diff changeset
3505 Colons (`:') and braces (`{` and `}') are special in C and C++. For
Dave Love <fx@gnu.org>
parents:
diff changeset
3506 certain constructs, you may like them to hang on the right edge of the
Dave Love <fx@gnu.org>
parents:
diff changeset
3507 code, or you may like them to start a new line of code. You can use
Dave Love <fx@gnu.org>
parents:
diff changeset
3508 the two variables c-hanging-braces-alist and c-hanging-colons-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
3509 to control whether newlines are placed before and/or after colons and
Dave Love <fx@gnu.org>
parents:
diff changeset
3510 braces when certain C and C++ constructs are entered. For example,
Dave Love <fx@gnu.org>
parents:
diff changeset
3511 you can control whether the colon that introduces a C++ member
Dave Love <fx@gnu.org>
parents:
diff changeset
3512 initialization list hangs on the right edge, starts a new line, or has
Dave Love <fx@gnu.org>
parents:
diff changeset
3513 no newlines either before or after it.
Dave Love <fx@gnu.org>
parents:
diff changeset
3514
Dave Love <fx@gnu.org>
parents:
diff changeset
3515 c-special-indent-hook is run after a line is indented by CC mode. You
Dave Love <fx@gnu.org>
parents:
diff changeset
3516 can perform any custom indentations here.
Dave Love <fx@gnu.org>
parents:
diff changeset
3517
Dave Love <fx@gnu.org>
parents:
diff changeset
3518 c-delete-function is the function that is called when a single
Dave Love <fx@gnu.org>
parents:
diff changeset
3519 character is deleted with the c-electric-delete command (DEL).
Dave Love <fx@gnu.org>
parents:
diff changeset
3520
Dave Love <fx@gnu.org>
parents:
diff changeset
3521 c-electric-pound-behavior describes what happens when you enter the
Dave Love <fx@gnu.org>
parents:
diff changeset
3522 `#' that introduces a cpp macro.
Dave Love <fx@gnu.org>
parents:
diff changeset
3523
Dave Love <fx@gnu.org>
parents:
diff changeset
3524 If c-tab-always-indent is neither t nor nil, then TAB inserts a tab
Dave Love <fx@gnu.org>
parents:
diff changeset
3525 when within strings, comments, and cpp directives, but it reindents
Dave Love <fx@gnu.org>
parents:
diff changeset
3526 the line unconditionally.
Dave Love <fx@gnu.org>
parents:
diff changeset
3527
Dave Love <fx@gnu.org>
parents:
diff changeset
3528 c-inhibit-startup-warnings-p inhibits warnings about any old
Dave Love <fx@gnu.org>
parents:
diff changeset
3529 version of Emacs you might be running, which could be incompatible
Dave Love <fx@gnu.org>
parents:
diff changeset
3530 with cc-mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
3531
Dave Love <fx@gnu.org>
parents:
diff changeset
3532 ** There are two new minor-mode features in CC mode: auto-newline and
Dave Love <fx@gnu.org>
parents:
diff changeset
3533 hungry-delete. Auto-newline inserts newlines automatically as you
Dave Love <fx@gnu.org>
parents:
diff changeset
3534 type certain constructs. Hungry-delete consumes all preceding
Dave Love <fx@gnu.org>
parents:
diff changeset
3535 whitespace (spaces, tabs, and newlines) when the delete key is hit.
Dave Love <fx@gnu.org>
parents:
diff changeset
3536 You can toggle auto-newline on and off on a per-buffer basis by
Dave Love <fx@gnu.org>
parents:
diff changeset
3537 hitting C-c C-a. You can toggle hungry-delete on and off by hitting
Dave Love <fx@gnu.org>
parents:
diff changeset
3538 C-c C-d. You can toggle them both on and off together with C-c C-t.
Dave Love <fx@gnu.org>
parents:
diff changeset
3539
Dave Love <fx@gnu.org>
parents:
diff changeset
3540 ** Slash (`/') and star (`*') are now both electric characters.
Dave Love <fx@gnu.org>
parents:
diff changeset
3541
Dave Love <fx@gnu.org>
parents:
diff changeset
3542 ** New commands:
Dave Love <fx@gnu.org>
parents:
diff changeset
3543
Dave Love <fx@gnu.org>
parents:
diff changeset
3544 The new C-c C-o (c-set-offset) command can be used to interactively change
Dave Love <fx@gnu.org>
parents:
diff changeset
3545 the offset for a particular syntactic symbol.
Dave Love <fx@gnu.org>
parents:
diff changeset
3546
Dave Love <fx@gnu.org>
parents:
diff changeset
3547 The new command C-c : (c-scope-operator) inserts the C++ scope operator in
Dave Love <fx@gnu.org>
parents:
diff changeset
3548 c++-mode only.
Dave Love <fx@gnu.org>
parents:
diff changeset
3549
Dave Love <fx@gnu.org>
parents:
diff changeset
3550 The new command C-c C-q (c-indent-defun) indents the entire enclosing
Dave Love <fx@gnu.org>
parents:
diff changeset
3551 top-level function or class.
Dave Love <fx@gnu.org>
parents:
diff changeset
3552
Dave Love <fx@gnu.org>
parents:
diff changeset
3553 The new command C-c C-s (c-show-semantic-information) echos the current
Dave Love <fx@gnu.org>
parents:
diff changeset
3554 syntactic analysis without re-indenting the current line.
Dave Love <fx@gnu.org>
parents:
diff changeset
3555
Dave Love <fx@gnu.org>
parents:
diff changeset
3556 The new commands M-x c-forward-into-nomenclature and M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
3557 c-backward-into-nomenclature (currently otherwise unbound to a key
Dave Love <fx@gnu.org>
parents:
diff changeset
3558 sequence), make movement easier when using the C++ variable naming
Dave Love <fx@gnu.org>
parents:
diff changeset
3559 convention of VariableNamesWithoutUnderscoresButEachWordCapitalized.
Dave Love <fx@gnu.org>
parents:
diff changeset
3560
Dave Love <fx@gnu.org>
parents:
diff changeset
3561 ** Command from c-mode.el that have been renamed in cc-mode.el:
Dave Love <fx@gnu.org>
parents:
diff changeset
3562
Dave Love <fx@gnu.org>
parents:
diff changeset
3563 electric-c-brace => c-electric-brace
Dave Love <fx@gnu.org>
parents:
diff changeset
3564 electric-c-semi => c-electric-semi&comma
Dave Love <fx@gnu.org>
parents:
diff changeset
3565 electric-c-sharp-sign => c-electric-pound
Dave Love <fx@gnu.org>
parents:
diff changeset
3566 mark-c-function => c-mark-function
Dave Love <fx@gnu.org>
parents:
diff changeset
3567 electric-c-terminator => c-electric-colon
Dave Love <fx@gnu.org>
parents:
diff changeset
3568 indent-c-exp => c-indent-exp
Dave Love <fx@gnu.org>
parents:
diff changeset
3569 set-c-style => c-set-style
Dave Love <fx@gnu.org>
parents:
diff changeset
3570
Dave Love <fx@gnu.org>
parents:
diff changeset
3571 ** Variables from c-mode.el that are obsolete with cc-mode.el:
Dave Love <fx@gnu.org>
parents:
diff changeset
3572
Dave Love <fx@gnu.org>
parents:
diff changeset
3573 c-indent-level
Dave Love <fx@gnu.org>
parents:
diff changeset
3574 c-brace-imaginary-offset
Dave Love <fx@gnu.org>
parents:
diff changeset
3575 c-brace-offset
Dave Love <fx@gnu.org>
parents:
diff changeset
3576 c-argdecl-indent
Dave Love <fx@gnu.org>
parents:
diff changeset
3577 c-label-offset
Dave Love <fx@gnu.org>
parents:
diff changeset
3578 c-continued-statement-offset
Dave Love <fx@gnu.org>
parents:
diff changeset
3579 c-continued-brace-offset
Dave Love <fx@gnu.org>
parents:
diff changeset
3580
Dave Love <fx@gnu.org>
parents:
diff changeset
3581 * Lisp programming changes in Emacs 19.23.
Dave Love <fx@gnu.org>
parents:
diff changeset
3582
Dave Love <fx@gnu.org>
parents:
diff changeset
3583 ** To pop up a dialog box, call x-popup-dialog.
Dave Love <fx@gnu.org>
parents:
diff changeset
3584 It takes two arguments, POSITION and CONTENTS.
Dave Love <fx@gnu.org>
parents:
diff changeset
3585
Dave Love <fx@gnu.org>
parents:
diff changeset
3586 POSITION specifies which frame to place the dialog box over;
Dave Love <fx@gnu.org>
parents:
diff changeset
3587 the dialog box always goes on the center of the frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
3588 POSITION may be a mouse event, a window, a frame,
Dave Love <fx@gnu.org>
parents:
diff changeset
3589 or t meaning use the frame that the mouse is in.
Dave Love <fx@gnu.org>
parents:
diff changeset
3590
Dave Love <fx@gnu.org>
parents:
diff changeset
3591 CONTENTS specifies the contents of the dialog box.
Dave Love <fx@gnu.org>
parents:
diff changeset
3592 It looks like a single pane of a popup menu:
Dave Love <fx@gnu.org>
parents:
diff changeset
3593 (TITLE ITEM1 ITEM2 ...), where each ITEM has the form (STRING . VALUE).
Dave Love <fx@gnu.org>
parents:
diff changeset
3594 The return value is VALUE from the chosen item.
Dave Love <fx@gnu.org>
parents:
diff changeset
3595
Dave Love <fx@gnu.org>
parents:
diff changeset
3596 An ITEM may also be just a string--that makes a nonselectable item.
Dave Love <fx@gnu.org>
parents:
diff changeset
3597 An ITEM may also be nil--that means to put all preceding items
Dave Love <fx@gnu.org>
parents:
diff changeset
3598 on the left of the dialog box and all following items on the right.
Dave Love <fx@gnu.org>
parents:
diff changeset
3599 (By default, approximately half appear on each side.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3600
Dave Love <fx@gnu.org>
parents:
diff changeset
3601 If your Emacs is not using an X toolkit, then it cannot display a
Dave Love <fx@gnu.org>
parents:
diff changeset
3602 real dialog box; so instead it displays a pop-up menu in the center
Dave Love <fx@gnu.org>
parents:
diff changeset
3603 of the frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
3604
Dave Love <fx@gnu.org>
parents:
diff changeset
3605 ** y-or-n-p, yes-or-no-p and map-y-or-n-p now use menus or dialog boxes
Dave Love <fx@gnu.org>
parents:
diff changeset
3606 to ask their question(s) if the command that is running was reached by
Dave Love <fx@gnu.org>
parents:
diff changeset
3607 a mouse event.
Dave Love <fx@gnu.org>
parents:
diff changeset
3608
Dave Love <fx@gnu.org>
parents:
diff changeset
3609 If you want to control which way these functions work, bind the
Dave Love <fx@gnu.org>
parents:
diff changeset
3610 variable last-nonmenu-event around the call. These functions use the
Dave Love <fx@gnu.org>
parents:
diff changeset
3611 keyboard if that variable holds a keyboard event (actually, any
Dave Love <fx@gnu.org>
parents:
diff changeset
3612 non-list); they use the mouse if that variable holds a mouse event
Dave Love <fx@gnu.org>
parents:
diff changeset
3613 (actually, any list).
Dave Love <fx@gnu.org>
parents:
diff changeset
3614
Dave Love <fx@gnu.org>
parents:
diff changeset
3615 ** The mouse-face property is now implemented, both in overlays and as
Dave Love <fx@gnu.org>
parents:
diff changeset
3616 a text property. It specifies a face to use when the mouse is in the
Dave Love <fx@gnu.org>
parents:
diff changeset
3617 range of text for which the property is specified.
Dave Love <fx@gnu.org>
parents:
diff changeset
3618
Dave Love <fx@gnu.org>
parents:
diff changeset
3619 ** When text has a non-nil `intangible' property, you cannot move point
Dave Love <fx@gnu.org>
parents:
diff changeset
3620 within it or right before it. If you try, point actually moves to the
Dave Love <fx@gnu.org>
parents:
diff changeset
3621 end of the intangible text. Note that this means that backward-char
Dave Love <fx@gnu.org>
parents:
diff changeset
3622 is a no-op when there is an intangible character to the left of point.
Dave Love <fx@gnu.org>
parents:
diff changeset
3623
Dave Love <fx@gnu.org>
parents:
diff changeset
3624 ** minibuffer-exit-hook is a new normal hook that is run when you
Dave Love <fx@gnu.org>
parents:
diff changeset
3625 exit the minibuffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3626
Dave Love <fx@gnu.org>
parents:
diff changeset
3627 ** The variable x-cross-pointer-shape specifies the cursor shape to use
Dave Love <fx@gnu.org>
parents:
diff changeset
3628 when the mouse is over text that has a mouse-face property.
Dave Love <fx@gnu.org>
parents:
diff changeset
3629
Dave Love <fx@gnu.org>
parents:
diff changeset
3630 ** The new variable interpreter-mode-alist specifies major modes to use
Dave Love <fx@gnu.org>
parents:
diff changeset
3631 for shell scripts that specify a command interpreter. Its elements
Dave Love <fx@gnu.org>
parents:
diff changeset
3632 look like (INTERPRETER . MODE); for example, ("perl" . perl-mode) is
Dave Love <fx@gnu.org>
parents:
diff changeset
3633 one element present by default. This feature applies only when the
Dave Love <fx@gnu.org>
parents:
diff changeset
3634 file name doesn't indicate which mode to use.
Dave Love <fx@gnu.org>
parents:
diff changeset
3635
Dave Love <fx@gnu.org>
parents:
diff changeset
3636 ** If you use a minibuffer-only frame, set the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
3637 minibuffer-auto-raise to t, and entering the minibuffer will then
Dave Love <fx@gnu.org>
parents:
diff changeset
3638 raise the minibuffer frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
3639
Dave Love <fx@gnu.org>
parents:
diff changeset
3640 ** If pop-up-frames is t, display-buffer now looks for an existing
Dave Love <fx@gnu.org>
parents:
diff changeset
3641 window in any visible frame, showing the specified buffer, and uses
Dave Love <fx@gnu.org>
parents:
diff changeset
3642 such a window in preference to making a new frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
3643
Dave Love <fx@gnu.org>
parents:
diff changeset
3644 ** In the functions next-window, previous-window, next-frame,
Dave Love <fx@gnu.org>
parents:
diff changeset
3645 previous-frame, get-buffer-window, get-lru-window, get-largest-window
Dave Love <fx@gnu.org>
parents:
diff changeset
3646 and delete-windows-on, if you specify `visible' for the last argument,
Dave Love <fx@gnu.org>
parents:
diff changeset
3647 it means to consider all visible frames.
Dave Love <fx@gnu.org>
parents:
diff changeset
3648
Dave Love <fx@gnu.org>
parents:
diff changeset
3649 ** Mouse events now give the X and Y coordinates in pixels, rather than
Dave Love <fx@gnu.org>
parents:
diff changeset
3650 in characters. You can convert these values to characters by dividing by
Dave Love <fx@gnu.org>
parents:
diff changeset
3651 the values of (frame-char-width) and (frame-char-height).
Dave Love <fx@gnu.org>
parents:
diff changeset
3652
Dave Love <fx@gnu.org>
parents:
diff changeset
3653 ** The new functions mouse-pixel-position and set-mouse-pixel-position
Dave Love <fx@gnu.org>
parents:
diff changeset
3654 read and set the mouse position in units of pixels. The existing
Dave Love <fx@gnu.org>
parents:
diff changeset
3655 functions mouse-position and set-mouse-position continue to work with
Dave Love <fx@gnu.org>
parents:
diff changeset
3656 units of characters.
Dave Love <fx@gnu.org>
parents:
diff changeset
3657
Dave Love <fx@gnu.org>
parents:
diff changeset
3658 ** The new function compute-motion is useful for computing the width
Dave Love <fx@gnu.org>
parents:
diff changeset
3659 of certain text when it is displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
3660
Dave Love <fx@gnu.org>
parents:
diff changeset
3661 ** The function vertical-motion now takes an option second argument WINDOW
Dave Love <fx@gnu.org>
parents:
diff changeset
3662 which says which window to use for the display calculations.
Dave Love <fx@gnu.org>
parents:
diff changeset
3663
Dave Love <fx@gnu.org>
parents:
diff changeset
3664 vertical-motion always operates on the current buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3665 It is ok to specify a window displaying some other buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3666 Then vertical-motion uses the width, hscroll and display-table of
Dave Love <fx@gnu.org>
parents:
diff changeset
3667 the specified window, but still scans the current buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3668
Dave Love <fx@gnu.org>
parents:
diff changeset
3669 ** An error no longer sets last-command to t; the value of last-command
Dave Love <fx@gnu.org>
parents:
diff changeset
3670 does reflect the previous command (the one that got an error).
Dave Love <fx@gnu.org>
parents:
diff changeset
3671
Dave Love <fx@gnu.org>
parents:
diff changeset
3672 If you do not want a particular command to be recognized as the
Dave Love <fx@gnu.org>
parents:
diff changeset
3673 previous command in the case where it got an error, you must code that
Dave Love <fx@gnu.org>
parents:
diff changeset
3674 command to prevent this. Set this-command to t at the beginning of
Dave Love <fx@gnu.org>
parents:
diff changeset
3675 the command, and set this-command back to its proper value at the end,
Dave Love <fx@gnu.org>
parents:
diff changeset
3676 like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
3677
Dave Love <fx@gnu.org>
parents:
diff changeset
3678 (defun foo (args...)
Dave Love <fx@gnu.org>
parents:
diff changeset
3679 (interactive ...)
Dave Love <fx@gnu.org>
parents:
diff changeset
3680 (setq this-command t)
Dave Love <fx@gnu.org>
parents:
diff changeset
3681 ...do the work...
Dave Love <fx@gnu.org>
parents:
diff changeset
3682 (setq this-command 'foo))
Dave Love <fx@gnu.org>
parents:
diff changeset
3683
Dave Love <fx@gnu.org>
parents:
diff changeset
3684 or like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
3685
Dave Love <fx@gnu.org>
parents:
diff changeset
3686 (defun foo (args...)
Dave Love <fx@gnu.org>
parents:
diff changeset
3687 (interactive ...)
Dave Love <fx@gnu.org>
parents:
diff changeset
3688 (let ((old-this-command this-command))
Dave Love <fx@gnu.org>
parents:
diff changeset
3689 (setq this-command t)
Dave Love <fx@gnu.org>
parents:
diff changeset
3690 ...do the work...
Dave Love <fx@gnu.org>
parents:
diff changeset
3691 (setq this-command old-this-command)))
Dave Love <fx@gnu.org>
parents:
diff changeset
3692
Dave Love <fx@gnu.org>
parents:
diff changeset
3693 The undo and yank commands do this.
Dave Love <fx@gnu.org>
parents:
diff changeset
3694
Dave Love <fx@gnu.org>
parents:
diff changeset
3695 ** If you specify an explicit title for a new frame when you create it,
Dave Love <fx@gnu.org>
parents:
diff changeset
3696 the title is used as the resource name when looking up X resources to
Dave Love <fx@gnu.org>
parents:
diff changeset
3697 control the shape of that frame. If you don't specify the frame title,
Dave Love <fx@gnu.org>
parents:
diff changeset
3698 the value of x-resource-name is used, as before.
Dave Love <fx@gnu.org>
parents:
diff changeset
3699
Dave Love <fx@gnu.org>
parents:
diff changeset
3700 ** The frame parameter user-position, if non-nil, says that the user
Dave Love <fx@gnu.org>
parents:
diff changeset
3701 has specified the frame position. Emacs reports this to the window
Dave Love <fx@gnu.org>
parents:
diff changeset
3702 manager, to tell it not to override the position that the user
Dave Love <fx@gnu.org>
parents:
diff changeset
3703 specified.
Dave Love <fx@gnu.org>
parents:
diff changeset
3704
Dave Love <fx@gnu.org>
parents:
diff changeset
3705 ** Major modes can now set change-major-mode-hook to arrange for state
Dave Love <fx@gnu.org>
parents:
diff changeset
3706 to be cleaned up when the user switches to a new major mode. The function
Dave Love <fx@gnu.org>
parents:
diff changeset
3707 kill-all-local-variables runs this hook. For best results, make the hook a
Dave Love <fx@gnu.org>
parents:
diff changeset
3708 buffer-local variable so that it will disappear after doing its job and will
Dave Love <fx@gnu.org>
parents:
diff changeset
3709 not interfere with the subsequent major mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
3710
Dave Love <fx@gnu.org>
parents:
diff changeset
3711 ** The new variable overriding-local-map, if non-nil, specifies a keymap
Dave Love <fx@gnu.org>
parents:
diff changeset
3712 that overrides the current local map, all minor mode keymaps, and all
Dave Love <fx@gnu.org>
parents:
diff changeset
3713 text property keymaps. Incremental search uses this feature to override
Dave Love <fx@gnu.org>
parents:
diff changeset
3714 all other keymaps temporarily.
Dave Love <fx@gnu.org>
parents:
diff changeset
3715
Dave Love <fx@gnu.org>
parents:
diff changeset
3716 ** A key definition in a menu keymap can now have additional structure:
Dave Love <fx@gnu.org>
parents:
diff changeset
3717 in addition to (ITEMNAME [HELPSTRING] . COMMAND) which was allowed
Dave Love <fx@gnu.org>
parents:
diff changeset
3718 before, the form (ITEMNAME [HELPSTRING] (...) . COMMAND) is
Dave Love <fx@gnu.org>
parents:
diff changeset
3719 allowed. (HELPSTRING is optional, and is not currently used.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3720
Dave Love <fx@gnu.org>
parents:
diff changeset
3721 Here (...) represents a sublist containing information about keyboard
Dave Love <fx@gnu.org>
parents:
diff changeset
3722 key sequences that run the same command COMMAND. Displaying the menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3723 automatically creates and updates the sublist when appropriate; you
Dave Love <fx@gnu.org>
parents:
diff changeset
3724 need never set these up yourself.
Dave Love <fx@gnu.org>
parents:
diff changeset
3725
Dave Love <fx@gnu.org>
parents:
diff changeset
3726 lookup-key, key-binding, and similar functions return just COMMAND,
Dave Love <fx@gnu.org>
parents:
diff changeset
3727 not the whole binding.
Dave Love <fx@gnu.org>
parents:
diff changeset
3728
Dave Love <fx@gnu.org>
parents:
diff changeset
3729 To precompute this information for a given keymap, you can do
Dave Love <fx@gnu.org>
parents:
diff changeset
3730 (x-popup-menu nil KEYMAP).
Dave Love <fx@gnu.org>
parents:
diff changeset
3731
Dave Love <fx@gnu.org>
parents:
diff changeset
3732 ** When you specify coordinates for x-popup-menu as a list ((XOFFSET
Dave Love <fx@gnu.org>
parents:
diff changeset
3733 YOFFSET) WINDOW), the coordinates are now measured in pixels.
Dave Love <fx@gnu.org>
parents:
diff changeset
3734
Dave Love <fx@gnu.org>
parents:
diff changeset
3735 ** where-is-internal now takes just four arguments:
Dave Love <fx@gnu.org>
parents:
diff changeset
3736 DEFINITION KEYMAP FIRSTONLY NOINDIRECT.
Dave Love <fx@gnu.org>
parents:
diff changeset
3737 The single argument KEYMAP replaces two arguments KEYMAP and KEYMAP1.
Dave Love <fx@gnu.org>
parents:
diff changeset
3738
Dave Love <fx@gnu.org>
parents:
diff changeset
3739 If KEYMAP is non-nil, where-is-internal searches only KEYMAP and the
Dave Love <fx@gnu.org>
parents:
diff changeset
3740 global keymap.
Dave Love <fx@gnu.org>
parents:
diff changeset
3741
Dave Love <fx@gnu.org>
parents:
diff changeset
3742 If KEYMAP is nil, where-is-internal searches all the currently active
Dave Love <fx@gnu.org>
parents:
diff changeset
3743 keymaps, but finds the active keymaps as if overriding-local-map were
Dave Love <fx@gnu.org>
parents:
diff changeset
3744 nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
3745
Dave Love <fx@gnu.org>
parents:
diff changeset
3746 If you pass a list of the form (keymap) as KEYMAP, where-is-internal
Dave Love <fx@gnu.org>
parents:
diff changeset
3747 searches only the global map. (This is not a special case--it follows
Dave Love <fx@gnu.org>
parents:
diff changeset
3748 from the specifications above.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3749
Dave Love <fx@gnu.org>
parents:
diff changeset
3750 If you pass the value of overriding-local-map as KEYMAP, where-is-internal
Dave Love <fx@gnu.org>
parents:
diff changeset
3751 searches in exactly the same was as command execution does.
Dave Love <fx@gnu.org>
parents:
diff changeset
3752
Dave Love <fx@gnu.org>
parents:
diff changeset
3753 ** Use the macro define-derived-mode to define a new major mode that
Dave Love <fx@gnu.org>
parents:
diff changeset
3754 inherits the definition of another major mode. Here's how to define a
Dave Love <fx@gnu.org>
parents:
diff changeset
3755 command named hypertext-mode that inherits from the command text-mode:
Dave Love <fx@gnu.org>
parents:
diff changeset
3756
Dave Love <fx@gnu.org>
parents:
diff changeset
3757 (define-derived-mode hypertext-mode text-mode "Hypertext"
Dave Love <fx@gnu.org>
parents:
diff changeset
3758 "Major mode for hypertext.\n\n\\{hypertext-mode-map}"
Dave Love <fx@gnu.org>
parents:
diff changeset
3759 (setq case-fold-search nil))
Dave Love <fx@gnu.org>
parents:
diff changeset
3760
Dave Love <fx@gnu.org>
parents:
diff changeset
3761 (define-key hypertext-mode-map [down-mouse-3] 'do-hyper-link)
Dave Love <fx@gnu.org>
parents:
diff changeset
3762
Dave Love <fx@gnu.org>
parents:
diff changeset
3763 The new mode has its own keymap, which inherits from that of the
Dave Love <fx@gnu.org>
parents:
diff changeset
3764 original mode. It also has its own syntax and abbrev tables, which
Dave Love <fx@gnu.org>
parents:
diff changeset
3765 are initialized by copying those of the original mode. It also has
Dave Love <fx@gnu.org>
parents:
diff changeset
3766 its own mode hook. All are given names made by appending a suffix
Dave Love <fx@gnu.org>
parents:
diff changeset
3767 to the name of the new mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
3768
Dave Love <fx@gnu.org>
parents:
diff changeset
3769 ** A syntax table can now inherit the data for some characters from
Dave Love <fx@gnu.org>
parents:
diff changeset
3770 standard-syntax-table, while specifying other characters itself.
Dave Love <fx@gnu.org>
parents:
diff changeset
3771 Syntax code 13 means "inherit this character from the standard syntax
Dave Love <fx@gnu.org>
parents:
diff changeset
3772 table." In modify-syntax-entry, the character `@' represents this code.
Dave Love <fx@gnu.org>
parents:
diff changeset
3773
Dave Love <fx@gnu.org>
parents:
diff changeset
3774 The function `make-syntax-table' now creates a syntax table which
Dave Love <fx@gnu.org>
parents:
diff changeset
3775 inherits all letters and control characters (0 to 31 and 128 to 255)
Dave Love <fx@gnu.org>
parents:
diff changeset
3776 from the standard syntax table, while copying the other characters
Dave Love <fx@gnu.org>
parents:
diff changeset
3777 from the standard syntax table. Most syntax tables in Emacs are set
Dave Love <fx@gnu.org>
parents:
diff changeset
3778 up this way.
Dave Love <fx@gnu.org>
parents:
diff changeset
3779
Dave Love <fx@gnu.org>
parents:
diff changeset
3780 This sort of inheritance is useful for people who set up character
Dave Love <fx@gnu.org>
parents:
diff changeset
3781 sets with additional alphabetic characters in the range 128 to 255.
Dave Love <fx@gnu.org>
parents:
diff changeset
3782 Just changing the standard syntax for these characters affects all
Dave Love <fx@gnu.org>
parents:
diff changeset
3783 major modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
3784
Dave Love <fx@gnu.org>
parents:
diff changeset
3785 ** The new function transpose-regions swaps two regions of the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3786 It preserves the markers in those two regions, so that they stay with
Dave Love <fx@gnu.org>
parents:
diff changeset
3787 the surrounding text as it is swapped.
Dave Love <fx@gnu.org>
parents:
diff changeset
3788
Dave Love <fx@gnu.org>
parents:
diff changeset
3789 ** revert-buffer now runs before-revert-hook at the beginning and
Dave Love <fx@gnu.org>
parents:
diff changeset
3790 after-revert-hook at the end. These can be used by minor modes
Dave Love <fx@gnu.org>
parents:
diff changeset
3791 that need to clean up state variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
3792
Dave Love <fx@gnu.org>
parents:
diff changeset
3793 ** The new function get-char-property is like get-text-property, but
Dave Love <fx@gnu.org>
parents:
diff changeset
3794 checks for overlays with properties as well as for text properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
3795 It checks for overlays first, in order of descending priority, and
Dave Love <fx@gnu.org>
parents:
diff changeset
3796 text properties last.
Dave Love <fx@gnu.org>
parents:
diff changeset
3797
Dave Love <fx@gnu.org>
parents:
diff changeset
3798 get-char-property allows windows as the OBJECT argument, as well
Dave Love <fx@gnu.org>
parents:
diff changeset
3799 as buffers and strings. If you specify a window, then only overlays
Dave Love <fx@gnu.org>
parents:
diff changeset
3800 active on that window are considered.
Dave Love <fx@gnu.org>
parents:
diff changeset
3801
Dave Love <fx@gnu.org>
parents:
diff changeset
3802 ** Overlays can have the `invisible' property.
Dave Love <fx@gnu.org>
parents:
diff changeset
3803
Dave Love <fx@gnu.org>
parents:
diff changeset
3804 ** The function insert-file-contents now takes an optional fifth
Dave Love <fx@gnu.org>
parents:
diff changeset
3805 argument called REPLACE. If this is t, it means to replace the
Dave Love <fx@gnu.org>
parents:
diff changeset
3806 contents of the buffer (actually, just the accessible portion)
Dave Love <fx@gnu.org>
parents:
diff changeset
3807 with the contents of the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
3808
Dave Love <fx@gnu.org>
parents:
diff changeset
3809 This is better than simply deleting and inserting the whole thing
Dave Love <fx@gnu.org>
parents:
diff changeset
3810 because (1) it preserves some marker positions and (2) it puts less
Dave Love <fx@gnu.org>
parents:
diff changeset
3811 data in the undo list.
Dave Love <fx@gnu.org>
parents:
diff changeset
3812
Dave Love <fx@gnu.org>
parents:
diff changeset
3813 ** The variable inhibit-first-line-modes-regexps specifies classes of
Dave Love <fx@gnu.org>
parents:
diff changeset
3814 file names for which -*- on the first line should not be looked for.
Dave Love <fx@gnu.org>
parents:
diff changeset
3815
Dave Love <fx@gnu.org>
parents:
diff changeset
3816 ** The variables before-change-functions and after-change-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
3817 hold lists of functions to call before and after a change in the
Dave Love <fx@gnu.org>
parents:
diff changeset
3818 buffer's text. They work much like before-change-function and
Dave Love <fx@gnu.org>
parents:
diff changeset
3819 after-change-function, except that they hold a list of functions
Dave Love <fx@gnu.org>
parents:
diff changeset
3820 instead of just one.
Dave Love <fx@gnu.org>
parents:
diff changeset
3821
Dave Love <fx@gnu.org>
parents:
diff changeset
3822 These variables will eventually make before-change-function and
Dave Love <fx@gnu.org>
parents:
diff changeset
3823 after-change-function obsolete.
Dave Love <fx@gnu.org>
parents:
diff changeset
3824
Dave Love <fx@gnu.org>
parents:
diff changeset
3825 ** The variable kill-buffer-query-functions holds a list of functions
Dave Love <fx@gnu.org>
parents:
diff changeset
3826 to be called with no arguments when a buffer is about to be killed.
Dave Love <fx@gnu.org>
parents:
diff changeset
3827 (That buffer is the current buffer when the function is called.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3828 If any of the functions returns nil, the buffer is not killed
Dave Love <fx@gnu.org>
parents:
diff changeset
3829 (and the remaining functions in the list are not called).
Dave Love <fx@gnu.org>
parents:
diff changeset
3830
Dave Love <fx@gnu.org>
parents:
diff changeset
3831 ** The variable kill-emacs-query-functions holds a list of functions
Dave Love <fx@gnu.org>
parents:
diff changeset
3832 to be called with no arguments when you ask to exit Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
3833 If any of the functions returns nil, the exit is canceled
Dave Love <fx@gnu.org>
parents:
diff changeset
3834 (and the remaining functions in the list are not called).
Dave Love <fx@gnu.org>
parents:
diff changeset
3835
Dave Love <fx@gnu.org>
parents:
diff changeset
3836 ** The argument for buffer-disable-undo is now optional,
Dave Love <fx@gnu.org>
parents:
diff changeset
3837 like the argument for buffer-enable-undo.
Dave Love <fx@gnu.org>
parents:
diff changeset
3838
Dave Love <fx@gnu.org>
parents:
diff changeset
3839 ** The new variable system-configuration holds the canonical three-part
Dave Love <fx@gnu.org>
parents:
diff changeset
3840 GNU configuration name for which Emacs was built.
Dave Love <fx@gnu.org>
parents:
diff changeset
3841
Dave Love <fx@gnu.org>
parents:
diff changeset
3842 ** The function system-name now tries harder to return a fully qualified
Dave Love <fx@gnu.org>
parents:
diff changeset
3843 domain name.
Dave Love <fx@gnu.org>
parents:
diff changeset
3844
Dave Love <fx@gnu.org>
parents:
diff changeset
3845 ** The variable emacs-major-version holds the major version number
Dave Love <fx@gnu.org>
parents:
diff changeset
3846 of Emacs. (Currently 19.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3847
Dave Love <fx@gnu.org>
parents:
diff changeset
3848 ** The variable emacs-minor-version holds the minor version number
Dave Love <fx@gnu.org>
parents:
diff changeset
3849 of Emacs. (Currently 23.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3850
Dave Love <fx@gnu.org>
parents:
diff changeset
3851 ** The default value of comint-input-autoexpand is now nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
3852 However, Shell mode sets it from the value of shell-input-autoexpand,
Dave Love <fx@gnu.org>
parents:
diff changeset
3853 whose default value is `history'.
Dave Love <fx@gnu.org>
parents:
diff changeset
3854
Dave Love <fx@gnu.org>
parents:
diff changeset
3855 ** The new function set-process-window-size specifies the terminal window
Dave Love <fx@gnu.org>
parents:
diff changeset
3856 size for a subprocess. On some systems it sends the subprocess a signal
Dave Love <fx@gnu.org>
parents:
diff changeset
3857 to let it know that the size has changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
3858
Dave Love <fx@gnu.org>
parents:
diff changeset
3859 ** %P is a new way to display a percentage in the mode line. It
Dave Love <fx@gnu.org>
parents:
diff changeset
3860 displays the percentage of the buffer text that is above the *bottom*
Dave Love <fx@gnu.org>
parents:
diff changeset
3861 of the window (which includes the text visible, in the window as well
Dave Love <fx@gnu.org>
parents:
diff changeset
3862 as the text above the top). It displays `Top' as well as the
Dave Love <fx@gnu.org>
parents:
diff changeset
3863 percentage if the top of the buffer is visible on screen.
Dave Love <fx@gnu.org>
parents:
diff changeset
3864
Dave Love <fx@gnu.org>
parents:
diff changeset
3865 ** %+ in the mode line specs displays `*' if the buffer is modified,
Dave Love <fx@gnu.org>
parents:
diff changeset
3866 and otherwise `-'. It never displays `%', as `%*' would do; whether the
Dave Love <fx@gnu.org>
parents:
diff changeset
3867 buffer is read-only has no effect on %+.
Dave Love <fx@gnu.org>
parents:
diff changeset
3868
Dave Love <fx@gnu.org>
parents:
diff changeset
3869 ** The new functions ffloor, fceiling, fround and ftruncate take a
Dave Love <fx@gnu.org>
parents:
diff changeset
3870 floating point argument and return a floating point result whose value
Dave Love <fx@gnu.org>
parents:
diff changeset
3871 is a nearby integer. ffloor returns the nearest integer below; fceiling,
Dave Love <fx@gnu.org>
parents:
diff changeset
3872 the nearest integer above; ftruncate, the nearest integer in the
Dave Love <fx@gnu.org>
parents:
diff changeset
3873 direction towards zero; fround, the nearest integer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3874
Dave Love <fx@gnu.org>
parents:
diff changeset
3875 ** Setting `print-escape-newlines' to a non-nil value now also makes
Dave Love <fx@gnu.org>
parents:
diff changeset
3876 formfeeds print as ``\f''.
Dave Love <fx@gnu.org>
parents:
diff changeset
3877
Dave Love <fx@gnu.org>
parents:
diff changeset
3878 ** auto-mode-alist now has a new feature. If an element has the form
Dave Love <fx@gnu.org>
parents:
diff changeset
3879 (REGEXP FUNCTION t), and REGEXP matches the file name, then after calling
Dave Love <fx@gnu.org>
parents:
diff changeset
3880 FUNCTION, Emacs deletes the part of the file name that matched REGEXP
Dave Love <fx@gnu.org>
parents:
diff changeset
3881 and then searches auto-mode-alist again for a new match.
Dave Love <fx@gnu.org>
parents:
diff changeset
3882
Dave Love <fx@gnu.org>
parents:
diff changeset
3883 This is useful for uncompression packages. An entry of this sort for
Dave Love <fx@gnu.org>
parents:
diff changeset
3884 .gz can uncompress the file and then put the uncompressed file in the
Dave Love <fx@gnu.org>
parents:
diff changeset
3885 proper mode according to the name sans .gz.
Dave Love <fx@gnu.org>
parents:
diff changeset
3886
Dave Love <fx@gnu.org>
parents:
diff changeset
3887 ** The new function emacs-pid returns the process ID number of Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
3888
Dave Love <fx@gnu.org>
parents:
diff changeset
3889 ** user-login-name now consistently checks the LOGNAME environment
Dave Love <fx@gnu.org>
parents:
diff changeset
3890 variable before USER. user-original-login-name is obsolete, since it
Dave Love <fx@gnu.org>
parents:
diff changeset
3891 provides the same functionality. To ignore the environment variables,
Dave Love <fx@gnu.org>
parents:
diff changeset
3892 use user-real-login-name.
Dave Love <fx@gnu.org>
parents:
diff changeset
3893
Dave Love <fx@gnu.org>
parents:
diff changeset
3894 ** There is a more general way of handling the system-specific X
Dave Love <fx@gnu.org>
parents:
diff changeset
3895 keysyms. Set the variable system-key-alist to an alist containing
Dave Love <fx@gnu.org>
parents:
diff changeset
3896 elements of the form (CODE . SYMBOL), where CODE is the numeric keysym
Dave Love <fx@gnu.org>
parents:
diff changeset
3897 code minus the "vendor specific" bit, and symbol is the name for the
Dave Love <fx@gnu.org>
parents:
diff changeset
3898 function key.
Dave Love <fx@gnu.org>
parents:
diff changeset
3899
Dave Love <fx@gnu.org>
parents:
diff changeset
3900 ** You can use the variable command-line-functions to set up functions
Dave Love <fx@gnu.org>
parents:
diff changeset
3901 to process unrecognized command line arguments. The variable's value
Dave Love <fx@gnu.org>
parents:
diff changeset
3902 should be a list of functions of no arguments. The functions are
Dave Love <fx@gnu.org>
parents:
diff changeset
3903 called successively until one of them returns non-nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
3904
Dave Love <fx@gnu.org>
parents:
diff changeset
3905 Each function should access the free variables argi (the current
Dave Love <fx@gnu.org>
parents:
diff changeset
3906 argument) and command-line-args-left (the remaining arguments). The
Dave Love <fx@gnu.org>
parents:
diff changeset
3907 function should return non-nil only if it recognizes and processes the
Dave Love <fx@gnu.org>
parents:
diff changeset
3908 argument in argi. If it does so, it may consume following arguments
Dave Love <fx@gnu.org>
parents:
diff changeset
3909 as well by removing them from command-line-args-left.
Dave Love <fx@gnu.org>
parents:
diff changeset
3910
Dave Love <fx@gnu.org>
parents:
diff changeset
3911 ** There's a new way for a magic file name handler to run a primitive
Dave Love <fx@gnu.org>
parents:
diff changeset
3912 and inhibit handling of the file name. Here is how to do it:
Dave Love <fx@gnu.org>
parents:
diff changeset
3913
Dave Love <fx@gnu.org>
parents:
diff changeset
3914 (let ((inhibit-file-name-handlers
Dave Love <fx@gnu.org>
parents:
diff changeset
3915 (cons 'ange-ftp-file-handler
Dave Love <fx@gnu.org>
parents:
diff changeset
3916 (and (eq inhibit-file-name-operation operation)
Dave Love <fx@gnu.org>
parents:
diff changeset
3917 inhibit-file-name-handlers)))
Dave Love <fx@gnu.org>
parents:
diff changeset
3918 (inhibit-file-name-operation operation))
Dave Love <fx@gnu.org>
parents:
diff changeset
3919 (apply this-operation args))
Dave Love <fx@gnu.org>
parents:
diff changeset
3920
Dave Love <fx@gnu.org>
parents:
diff changeset
3921 The function find-file-name-handler now takes two arguments. The
Dave Love <fx@gnu.org>
parents:
diff changeset
3922 second argument is OPERATION, the operation for which the handler is
Dave Love <fx@gnu.org>
parents:
diff changeset
3923 being sought.
Dave Love <fx@gnu.org>
parents:
diff changeset
3924
Dave Love <fx@gnu.org>
parents:
diff changeset
3925 People have suggested that the second argument should be optional, for
Dave Love <fx@gnu.org>
parents:
diff changeset
3926 backward compatibility. It would be nice if that were possible, but
Dave Love <fx@gnu.org>
parents:
diff changeset
3927 it is not. There is simply no way for find-file-name-handler to do
Dave Love <fx@gnu.org>
parents:
diff changeset
3928 the right thing without receiving the proper value for its second
Dave Love <fx@gnu.org>
parents:
diff changeset
3929 argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
3930
Dave Love <fx@gnu.org>
parents:
diff changeset
3931 ** The variable completion-regexp-list affects the completion
Dave Love <fx@gnu.org>
parents:
diff changeset
3932 primitives try-completion and all-completions. They consider
Dave Love <fx@gnu.org>
parents:
diff changeset
3933 only the possible completions that match each regexp in the list.
Dave Love <fx@gnu.org>
parents:
diff changeset
3934
Dave Love <fx@gnu.org>
parents:
diff changeset
3935 ** Case conversion in the function replace-match has been changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
3936
Dave Love <fx@gnu.org>
parents:
diff changeset
3937 The old behavior was this: if any word in the old text was
Dave Love <fx@gnu.org>
parents:
diff changeset
3938 capitalized, replace-match capitalized each word of the replacement
Dave Love <fx@gnu.org>
parents:
diff changeset
3939 text.
Dave Love <fx@gnu.org>
parents:
diff changeset
3940
Dave Love <fx@gnu.org>
parents:
diff changeset
3941 The new behavior is this: if the first word in the old text is capitalized,
Dave Love <fx@gnu.org>
parents:
diff changeset
3942 replace-match capitalizes the first word of the replacement text.
Dave Love <fx@gnu.org>
parents:
diff changeset
3943
Dave Love <fx@gnu.org>
parents:
diff changeset
3944 ** You can now specify a case table with CANON non-nil and EQV nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
3945 Then the EQV part of the case table is deduced from CANON.
Dave Love <fx@gnu.org>
parents:
diff changeset
3946
Dave Love <fx@gnu.org>
parents:
diff changeset
3947 ** The new function minibuffer-prompt takes no arguments and returns
Dave Love <fx@gnu.org>
parents:
diff changeset
3948 the current minibuffer prompt string.
Dave Love <fx@gnu.org>
parents:
diff changeset
3949
Dave Love <fx@gnu.org>
parents:
diff changeset
3950 The new function minibuffer-prompt-width takes no arguments and
Dave Love <fx@gnu.org>
parents:
diff changeset
3951 returns the display width of the minibuffer prompt string.
Dave Love <fx@gnu.org>
parents:
diff changeset
3952
Dave Love <fx@gnu.org>
parents:
diff changeset
3953 ** The new function frame-first-window returns the window at the
Dave Love <fx@gnu.org>
parents:
diff changeset
3954 upper left corner of a given frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
3955
Dave Love <fx@gnu.org>
parents:
diff changeset
3956 ** wholenump is a new alias for natnump.
Dave Love <fx@gnu.org>
parents:
diff changeset
3957
Dave Love <fx@gnu.org>
parents:
diff changeset
3958 ** The variable installation-directory, if non-@code{nil}, names a
Dave Love <fx@gnu.org>
parents:
diff changeset
3959 directory within which to look for the `lib-src' and `etc'
Dave Love <fx@gnu.org>
parents:
diff changeset
3960 subdirectories. This is non-nil when Emacs can't find those
Dave Love <fx@gnu.org>
parents:
diff changeset
3961 directories in their standard installed locations, but can find them
Dave Love <fx@gnu.org>
parents:
diff changeset
3962 near where the Emacs executable was found.
Dave Love <fx@gnu.org>
parents:
diff changeset
3963
Dave Love <fx@gnu.org>
parents:
diff changeset
3964 ** invocation-name and invocation-directory are now variables as well
Dave Love <fx@gnu.org>
parents:
diff changeset
3965 as functions. The variable values are the same values that the
Dave Love <fx@gnu.org>
parents:
diff changeset
3966 functions return: the Emacs program name sans directories, and the
Dave Love <fx@gnu.org>
parents:
diff changeset
3967 directory it was found in. (invocation-directory may be nil, if Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
3968 can't determine which directory it should be.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3969
Dave Love <fx@gnu.org>
parents:
diff changeset
3970 ** Installation change regarding version number counting.
Dave Love <fx@gnu.org>
parents:
diff changeset
3971
Dave Love <fx@gnu.org>
parents:
diff changeset
3972 The version number of an Emacs executable contains three numbers.
Dave Love <fx@gnu.org>
parents:
diff changeset
3973 The first two describe the Emacs release and the third increments
Dave Love <fx@gnu.org>
parents:
diff changeset
3974 each time you build Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
3975
Dave Love <fx@gnu.org>
parents:
diff changeset
3976 Now the file version.el contains only the first two version numbers.
Dave Love <fx@gnu.org>
parents:
diff changeset
3977 The third component is now determined on the basis of the names of the
Dave Love <fx@gnu.org>
parents:
diff changeset
3978 existing executable files. This means that version.el is not altered
Dave Love <fx@gnu.org>
parents:
diff changeset
3979 by building Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
3980
Dave Love <fx@gnu.org>
parents:
diff changeset
3981 * Changes in 19.22.
Dave Love <fx@gnu.org>
parents:
diff changeset
3982
Dave Love <fx@gnu.org>
parents:
diff changeset
3983 ** The mouse click M-mouse-2 now inserts the current secondary
Dave Love <fx@gnu.org>
parents:
diff changeset
3984 selection (from Emacs or any other X client) where you click.
Dave Love <fx@gnu.org>
parents:
diff changeset
3985 It does not move point.
Dave Love <fx@gnu.org>
parents:
diff changeset
3986 This command is called mouse-yank-secondary.
Dave Love <fx@gnu.org>
parents:
diff changeset
3987
Dave Love <fx@gnu.org>
parents:
diff changeset
3988 mouse-kill-secondary no longer has a key binding by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
3989 Clicking M-mouse-3 (mouse-secondary-save-then-kill) twice
Dave Love <fx@gnu.org>
parents:
diff changeset
3990 may be a convenient enough way of killing the secondary selection.
Dave Love <fx@gnu.org>
parents:
diff changeset
3991 Or perhaps there should be a keyboard binding for killing the
Dave Love <fx@gnu.org>
parents:
diff changeset
3992 secondary selection. Any suggestions?
Dave Love <fx@gnu.org>
parents:
diff changeset
3993
Dave Love <fx@gnu.org>
parents:
diff changeset
3994 ** New packages:
Dave Love <fx@gnu.org>
parents:
diff changeset
3995
Dave Love <fx@gnu.org>
parents:
diff changeset
3996 *** `icomplete' provides character-by-character information
Dave Love <fx@gnu.org>
parents:
diff changeset
3997 about what you could complete if you type TAB.
Dave Love <fx@gnu.org>
parents:
diff changeset
3998
Dave Love <fx@gnu.org>
parents:
diff changeset
3999 *** `avoid' moves the mouse away from point so that it doesn't hide
Dave Love <fx@gnu.org>
parents:
diff changeset
4000 your typing.
Dave Love <fx@gnu.org>
parents:
diff changeset
4001
Dave Love <fx@gnu.org>
parents:
diff changeset
4002 *** `shadowfile' helps you update files that are supposed to be stored
Dave Love <fx@gnu.org>
parents:
diff changeset
4003 identically in different places (perhaps on different machines).
Dave Love <fx@gnu.org>
parents:
diff changeset
4004
Dave Love <fx@gnu.org>
parents:
diff changeset
4005 ** C-h p now knows about four additional keywords: data, faces, mouse,
Dave Love <fx@gnu.org>
parents:
diff changeset
4006 and matching.
Dave Love <fx@gnu.org>
parents:
diff changeset
4007
Dave Love <fx@gnu.org>
parents:
diff changeset
4008 ** The key for starting an inferior Lisp process, in Lisp mode,
Dave Love <fx@gnu.org>
parents:
diff changeset
4009 is now C-c C-z instead of C-c C-l.
Dave Love <fx@gnu.org>
parents:
diff changeset
4010
Dave Love <fx@gnu.org>
parents:
diff changeset
4011 ** When the VC commands ask whether to save the buffer, if you say no,
Dave Love <fx@gnu.org>
parents:
diff changeset
4012 they signal an error. This is so that you won't operate on the wrong
Dave Love <fx@gnu.org>
parents:
diff changeset
4013 data.
Dave Love <fx@gnu.org>
parents:
diff changeset
4014
Dave Love <fx@gnu.org>
parents:
diff changeset
4015 ** ISO Accents mode now supports `"s' as a way of typing German sharp s.
Dave Love <fx@gnu.org>
parents:
diff changeset
4016
Dave Love <fx@gnu.org>
parents:
diff changeset
4017 ** By default, comint buffers (including Shell mode and debuggers)
Dave Love <fx@gnu.org>
parents:
diff changeset
4018 no longer try to scroll to keep the cursor on the bottom line.
Dave Love <fx@gnu.org>
parents:
diff changeset
4019 This feature was added in 19.21 but did not work smoothly enough.
Dave Love <fx@gnu.org>
parents:
diff changeset
4020
Dave Love <fx@gnu.org>
parents:
diff changeset
4021 ** Emacs now handles the window manager "delete window" operation.
Dave Love <fx@gnu.org>
parents:
diff changeset
4022
Dave Love <fx@gnu.org>
parents:
diff changeset
4023 ** Display of buffers with text properties is much faster now.
Dave Love <fx@gnu.org>
parents:
diff changeset
4024
Dave Love <fx@gnu.org>
parents:
diff changeset
4025 ** The feature previously announced whereby `insert' does not inherit
Dave Love <fx@gnu.org>
parents:
diff changeset
4026 text properties from surrounding text was not fully implemented
Dave Love <fx@gnu.org>
parents:
diff changeset
4027 before; but now it is. use `insert-and-inherit' if you wish to
Dave Love <fx@gnu.org>
parents:
diff changeset
4028 inherit sticky properties from the surrounding text.
Dave Love <fx@gnu.org>
parents:
diff changeset
4029
Dave Love <fx@gnu.org>
parents:
diff changeset
4030 ** The functions next-property-change, previous-property-change,
Dave Love <fx@gnu.org>
parents:
diff changeset
4031 next-single-property-change, and previous-single-property-change
Dave Love <fx@gnu.org>
parents:
diff changeset
4032 now take one additional optional argument LIMIT that is a position at
Dave Love <fx@gnu.org>
parents:
diff changeset
4033 which to stop scanning. If scan ends without finding the property
Dave Love <fx@gnu.org>
parents:
diff changeset
4034 change sought, these functions return the specified limit.
Dave Love <fx@gnu.org>
parents:
diff changeset
4035
Dave Love <fx@gnu.org>
parents:
diff changeset
4036 The value returned by previous-single-property-change and
Dave Love <fx@gnu.org>
parents:
diff changeset
4037 previous-property-change, when they do find a change, is now one
Dave Love <fx@gnu.org>
parents:
diff changeset
4038 greater than what it used to be. It is the position between the two
Dave Love <fx@gnu.org>
parents:
diff changeset
4039 characters whose properties differ, which is one greater than the
Dave Love <fx@gnu.org>
parents:
diff changeset
4040 position of the first character found (while scanning back) with
Dave Love <fx@gnu.org>
parents:
diff changeset
4041 different properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
4042
Dave Love <fx@gnu.org>
parents:
diff changeset
4043 * User editing changes in version 19.21.
Dave Love <fx@gnu.org>
parents:
diff changeset
4044
Dave Love <fx@gnu.org>
parents:
diff changeset
4045 ** ISO Accents mode supports four additional characters:
Dave Love <fx@gnu.org>
parents:
diff changeset
4046 A-with-ring (entered as /A), AE ligature (entered as /E),
Dave Love <fx@gnu.org>
parents:
diff changeset
4047 and their lower-case equivalents.
Dave Love <fx@gnu.org>
parents:
diff changeset
4048
Dave Love <fx@gnu.org>
parents:
diff changeset
4049 * User editing changes in version 19.20.
Dave Love <fx@gnu.org>
parents:
diff changeset
4050 (See following page for Lisp programming changes.)
Dave Love <fx@gnu.org>
parents:
diff changeset
4051
Dave Love <fx@gnu.org>
parents:
diff changeset
4052 Note that some of these changes were made subsequent to the Emacs 19.20
Dave Love <fx@gnu.org>
parents:
diff changeset
4053 editions of the Emacs manual and Emacs Lisp manual; therefore, if you
Dave Love <fx@gnu.org>
parents:
diff changeset
4054 have those editions, do read this page.
Dave Love <fx@gnu.org>
parents:
diff changeset
4055
Dave Love <fx@gnu.org>
parents:
diff changeset
4056 ** Dragging with mouse button 1 now puts the selected region
Dave Love <fx@gnu.org>
parents:
diff changeset
4057 in the kill ring so you can paste it into other X applications.
Dave Love <fx@gnu.org>
parents:
diff changeset
4058
Dave Love <fx@gnu.org>
parents:
diff changeset
4059 ** Double and triple clicks with button 1 now behave as in xterm,
Dave Love <fx@gnu.org>
parents:
diff changeset
4060 selecting the word or line surrounding where you click. If you drag
Dave Love <fx@gnu.org>
parents:
diff changeset
4061 after the last click, you can select a range of words or lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
4062
Dave Love <fx@gnu.org>
parents:
diff changeset
4063 ** You can use button 3 to extend a mouse-selected region, as in xterm.
Dave Love <fx@gnu.org>
parents:
diff changeset
4064 This works for regions selected either by dragging Mouse-1 or by
Dave Love <fx@gnu.org>
parents:
diff changeset
4065 multiple-clicking Mouse-1. Clicking Mouse-3 moves the end of the
Dave Love <fx@gnu.org>
parents:
diff changeset
4066 region that is (initially) nearer to where you click.
Dave Love <fx@gnu.org>
parents:
diff changeset
4067
Dave Love <fx@gnu.org>
parents:
diff changeset
4068 If the selection was first made by multiple-clicking Mouse-1, and thus
Dave Love <fx@gnu.org>
parents:
diff changeset
4069 consists of entire words or lines, Mouse-3 preserves that state.
Dave Love <fx@gnu.org>
parents:
diff changeset
4070
Dave Love <fx@gnu.org>
parents:
diff changeset
4071 As before, clicking Mouse-3 again in the same place kills the region
Dave Love <fx@gnu.org>
parents:
diff changeset
4072 thus selected.
Dave Love <fx@gnu.org>
parents:
diff changeset
4073
Dave Love <fx@gnu.org>
parents:
diff changeset
4074 ** The secondary selection commands, M-Mouse-1 and M-Mouse-3, have been
Dave Love <fx@gnu.org>
parents:
diff changeset
4075 likewise modified.
Dave Love <fx@gnu.org>
parents:
diff changeset
4076
Dave Love <fx@gnu.org>
parents:
diff changeset
4077 ** You can now search for strings and regexps using the Edit menu bar menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
4078
Dave Love <fx@gnu.org>
parents:
diff changeset
4079 ** You can now access bookmarks using the Bookmark submenu in the File
Dave Love <fx@gnu.org>
parents:
diff changeset
4080 menu in the menu bar.
Dave Love <fx@gnu.org>
parents:
diff changeset
4081
Dave Love <fx@gnu.org>
parents:
diff changeset
4082 ** ISO Accents mode, a buffer-local minor mode, provides a convenient
Dave Love <fx@gnu.org>
parents:
diff changeset
4083 way to type certain non-ASCII characters. It makes the characters `,
Dave Love <fx@gnu.org>
parents:
diff changeset
4084 ', ", ^, ~ and / serve as modifiers for the following letter. ` and '
Dave Love <fx@gnu.org>
parents:
diff changeset
4085 add accents, " adds an umlaut or dieresis, ^ adds a circumflex, ~
Dave Love <fx@gnu.org>
parents:
diff changeset
4086 adds a tilde, and / adds a slash to the following letter.
Dave Love <fx@gnu.org>
parents:
diff changeset
4087
Dave Love <fx@gnu.org>
parents:
diff changeset
4088 If the following character is not a letter, or cannot be modified as
Dave Love <fx@gnu.org>
parents:
diff changeset
4089 requested, then both characters stand for themselves. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
4090 duplicate the modifier accent character, that enters the corresponding
Dave Love <fx@gnu.org>
parents:
diff changeset
4091 ISO non-spacing accent character (thus, '' enters the ISO acute-accent
Dave Love <fx@gnu.org>
parents:
diff changeset
4092 character). To enter a modifier character itself, type it followed by
Dave Love <fx@gnu.org>
parents:
diff changeset
4093 a space.
Dave Love <fx@gnu.org>
parents:
diff changeset
4094
Dave Love <fx@gnu.org>
parents:
diff changeset
4095 This feature can be used whenever a key sequence is expected: for
Dave Love <fx@gnu.org>
parents:
diff changeset
4096 ordinary insertion, for searching, and for certain command arguments.
Dave Love <fx@gnu.org>
parents:
diff changeset
4097
Dave Love <fx@gnu.org>
parents:
diff changeset
4098 A few special combinations:
Dave Love <fx@gnu.org>
parents:
diff changeset
4099
Dave Love <fx@gnu.org>
parents:
diff changeset
4100 ~c => c with cedilla
Dave Love <fx@gnu.org>
parents:
diff changeset
4101 ~d => d with stroke
Dave Love <fx@gnu.org>
parents:
diff changeset
4102 ~< => left guillemot
Dave Love <fx@gnu.org>
parents:
diff changeset
4103 ~> => right guillemot
Dave Love <fx@gnu.org>
parents:
diff changeset
4104
Dave Love <fx@gnu.org>
parents:
diff changeset
4105 ** iso-transl.el is a new library that replaces iso-insert.el.
Dave Love <fx@gnu.org>
parents:
diff changeset
4106 It defines C-x 8 as an insertion prefix for the ISO characters
Dave Love <fx@gnu.org>
parents:
diff changeset
4107 between 128 and 255, much like iso-insert, except that iso-transl
Dave Love <fx@gnu.org>
parents:
diff changeset
4108 works even in searches and help commands--wherever a key sequence
Dave Love <fx@gnu.org>
parents:
diff changeset
4109 is expected.
Dave Love <fx@gnu.org>
parents:
diff changeset
4110
Dave Love <fx@gnu.org>
parents:
diff changeset
4111 To define case-conversion for these characters for ISO 8859/1,
Dave Love <fx@gnu.org>
parents:
diff changeset
4112 load the library iso-syntax. (This is not new.)
Dave Love <fx@gnu.org>
parents:
diff changeset
4113
Dave Love <fx@gnu.org>
parents:
diff changeset
4114 ** M-TAB in Text mode now runs the command ispell-complete-word
Dave Love <fx@gnu.org>
parents:
diff changeset
4115 which performs completion using the spelling dictionary.
Dave Love <fx@gnu.org>
parents:
diff changeset
4116
Dave Love <fx@gnu.org>
parents:
diff changeset
4117 The spelling correction submenu now includes this command
Dave Love <fx@gnu.org>
parents:
diff changeset
4118 and another command which completes a word fragment (that is,
Dave Love <fx@gnu.org>
parents:
diff changeset
4119 it doesn't assume that the text to be completed starts at the
Dave Love <fx@gnu.org>
parents:
diff changeset
4120 beginning of a word.
Dave Love <fx@gnu.org>
parents:
diff changeset
4121
Dave Love <fx@gnu.org>
parents:
diff changeset
4122 ** In incremental search, you can use M-y to yank the most recent kill
Dave Love <fx@gnu.org>
parents:
diff changeset
4123 into the search string.
Dave Love <fx@gnu.org>
parents:
diff changeset
4124
Dave Love <fx@gnu.org>
parents:
diff changeset
4125 ** The new function ispell-message checks the spelling of a message
Dave Love <fx@gnu.org>
parents:
diff changeset
4126 you are about to send or post. It ignores text cited from other
Dave Love <fx@gnu.org>
parents:
diff changeset
4127 messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
4128
Dave Love <fx@gnu.org>
parents:
diff changeset
4129 To automatically check all your outgoing messages, include the
Dave Love <fx@gnu.org>
parents:
diff changeset
4130 following line in your .emacs file:
Dave Love <fx@gnu.org>
parents:
diff changeset
4131 (setq news-inews-hook (setq mail-send-hook 'ispell-message))
Dave Love <fx@gnu.org>
parents:
diff changeset
4132
Dave Love <fx@gnu.org>
parents:
diff changeset
4133 ** There is now a separate minibuffer history list for the names of
Dave Love <fx@gnu.org>
parents:
diff changeset
4134 extended commands. This history list is used by M-x when reading
Dave Love <fx@gnu.org>
parents:
diff changeset
4135 the command name. The motivation for this is to prevent command
Dave Love <fx@gnu.org>
parents:
diff changeset
4136 names from appearing in the history used for other minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
4137 arguments.
Dave Love <fx@gnu.org>
parents:
diff changeset
4138
Dave Love <fx@gnu.org>
parents:
diff changeset
4139 Note that the history list for entire commands that use the minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
4140 is a separate feature. That history list records a command with all
Dave Love <fx@gnu.org>
parents:
diff changeset
4141 its arguments, and you must use C-x ESC ESC to access it.
Dave Love <fx@gnu.org>
parents:
diff changeset
4142
Dave Love <fx@gnu.org>
parents:
diff changeset
4143 ** You can use the new command C-x v ~ VERSION RET to examine a
Dave Love <fx@gnu.org>
parents:
diff changeset
4144 specified version of a file that is maintained with version control.
Dave Love <fx@gnu.org>
parents:
diff changeset
4145
Dave Love <fx@gnu.org>
parents:
diff changeset
4146 ** In Indented Text mode, only blank lines now separate paragraphs.
Dave Love <fx@gnu.org>
parents:
diff changeset
4147 Indented lines continue the paragraph that is in progress. This makes
Dave Love <fx@gnu.org>
parents:
diff changeset
4148 the user option variable adaptive-fill-mode have its intended effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
4149
Dave Love <fx@gnu.org>
parents:
diff changeset
4150 ** Local variable specifications in files for variables whose names end
Dave Love <fx@gnu.org>
parents:
diff changeset
4151 in `-hook' and `-function' are now controlled by the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
4152 `enable-local-eval', just like the `eval' variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
4153
Dave Love <fx@gnu.org>
parents:
diff changeset
4154 ** C-x r j (jump-to-register) when restoring a frame configuration now
Dave Love <fx@gnu.org>
parents:
diff changeset
4155 makes all unwanted frames (existing frames not mentioned in the
Dave Love <fx@gnu.org>
parents:
diff changeset
4156 configuration) invisible.
Dave Love <fx@gnu.org>
parents:
diff changeset
4157
Dave Love <fx@gnu.org>
parents:
diff changeset
4158 If you want to delete these unwanted frames, use a prefix argument for
Dave Love <fx@gnu.org>
parents:
diff changeset
4159 C-x r j.
Dave Love <fx@gnu.org>
parents:
diff changeset
4160
Dave Love <fx@gnu.org>
parents:
diff changeset
4161 ** You can customize the calendar to display weeks beginning on
Dave Love <fx@gnu.org>
parents:
diff changeset
4162 Monday: set the variable `calendar-week-start-day' to 1.
Dave Love <fx@gnu.org>
parents:
diff changeset
4163
Dave Love <fx@gnu.org>
parents:
diff changeset
4164 ** Rmail changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
4165
Dave Love <fx@gnu.org>
parents:
diff changeset
4166 If you save messages to a file in Unix format while viewing a message
Dave Love <fx@gnu.org>
parents:
diff changeset
4167 with its whole header, this now copies to the file the entire header
Dave Love <fx@gnu.org>
parents:
diff changeset
4168 of each message copied.
Dave Love <fx@gnu.org>
parents:
diff changeset
4169
Dave Love <fx@gnu.org>
parents:
diff changeset
4170 ** Comint mode changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
4171
Dave Love <fx@gnu.org>
parents:
diff changeset
4172 C-c C-e shows as much output as possible in the window.
Dave Love <fx@gnu.org>
parents:
diff changeset
4173 C-c RET copies an old input (the one at point)
Dave Love <fx@gnu.org>
parents:
diff changeset
4174 and places the copy after the latest prompt.
Dave Love <fx@gnu.org>
parents:
diff changeset
4175 C-c C-p and C-c C-n move through the buffer, stopping at places
Dave Love <fx@gnu.org>
parents:
diff changeset
4176 where the subshell prompted for input.
Dave Love <fx@gnu.org>
parents:
diff changeset
4177 C-c C-h lists the input history in a `*Help*' buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
4178
Dave Love <fx@gnu.org>
parents:
diff changeset
4179 There are new menu bar items for completion/input/output/signal commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
4180
Dave Love <fx@gnu.org>
parents:
diff changeset
4181 Input behaviour is configurable. Variables control whether some windows
Dave Love <fx@gnu.org>
parents:
diff changeset
4182 showing the buffer scroll to the bottom before insertion. These are
Dave Love <fx@gnu.org>
parents:
diff changeset
4183 `comint-scroll-to-bottom-on-input' and `before-change-function'. By default,
Dave Love <fx@gnu.org>
parents:
diff changeset
4184 insertion causes the selected window to scroll to the bottom before insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
4185 occurs.
Dave Love <fx@gnu.org>
parents:
diff changeset
4186
Dave Love <fx@gnu.org>
parents:
diff changeset
4187 Subprocess output now keeps point at the end of the buffer in each
Dave Love <fx@gnu.org>
parents:
diff changeset
4188 window individually if point was already at the end of the buffer in
Dave Love <fx@gnu.org>
parents:
diff changeset
4189 that window.
Dave Love <fx@gnu.org>
parents:
diff changeset
4190
Dave Love <fx@gnu.org>
parents:
diff changeset
4191 If `comint-scroll-show-maximum-output' is non-nil (which is the
Dave Love <fx@gnu.org>
parents:
diff changeset
4192 default), then scrolling due to arrival of output tries to place the
Dave Love <fx@gnu.org>
parents:
diff changeset
4193 last line of text at the bottom line of the window, so as to show as
Dave Love <fx@gnu.org>
parents:
diff changeset
4194 much useful text as possible. (This mimics the scrolling behavior of
Dave Love <fx@gnu.org>
parents:
diff changeset
4195 many terminals.)
Dave Love <fx@gnu.org>
parents:
diff changeset
4196
Dave Love <fx@gnu.org>
parents:
diff changeset
4197 By setting `comint-scroll-to-bottom-on-output', you can opt for having
Dave Love <fx@gnu.org>
parents:
diff changeset
4198 point jump to the end of the buffer whenever output arrives--no matter
Dave Love <fx@gnu.org>
parents:
diff changeset
4199 where in the buffer point was before. If the value is `this', point
Dave Love <fx@gnu.org>
parents:
diff changeset
4200 jumps in the selected window. If the value is `all', point jumps in
Dave Love <fx@gnu.org>
parents:
diff changeset
4201 each window that shows the comint buffer. If the value is `other',
Dave Love <fx@gnu.org>
parents:
diff changeset
4202 point jumps in all nonselected windows that show the current buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
4203 The default value is nil, which means point does not jump to the end.
Dave Love <fx@gnu.org>
parents:
diff changeset
4204
Dave Love <fx@gnu.org>
parents:
diff changeset
4205 Input history insertion is configurable. A variable controls whether only the
Dave Love <fx@gnu.org>
parents:
diff changeset
4206 first instance of successive identical inputs is stored in the input history.
Dave Love <fx@gnu.org>
parents:
diff changeset
4207 This is `comint-input-ignoredups'.
Dave Love <fx@gnu.org>
parents:
diff changeset
4208
Dave Love <fx@gnu.org>
parents:
diff changeset
4209 Completion (bound to TAB) is now more general. Depending on context,
Dave Love <fx@gnu.org>
parents:
diff changeset
4210 completion now operates on the input history, on command names, or (as
Dave Love <fx@gnu.org>
parents:
diff changeset
4211 before) on filenames.
Dave Love <fx@gnu.org>
parents:
diff changeset
4212
Dave Love <fx@gnu.org>
parents:
diff changeset
4213 Filename completion is configurable. Variables control whether
Dave Love <fx@gnu.org>
parents:
diff changeset
4214 file/directory suffix characters are added (`comint-completion-addsuffix'),
Dave Love <fx@gnu.org>
parents:
diff changeset
4215 whether shortest completion is acceptable when no further unambiguous
Dave Love <fx@gnu.org>
parents:
diff changeset
4216 completion is possible (`comint-completion-recexact'), and the timing of
Dave Love <fx@gnu.org>
parents:
diff changeset
4217 completion candidate listing (`comint-completion-autolist').
Dave Love <fx@gnu.org>
parents:
diff changeset
4218
Dave Love <fx@gnu.org>
parents:
diff changeset
4219 Comint mode now provides history expansion. Insert input using `!'
Dave Love <fx@gnu.org>
parents:
diff changeset
4220 and `^', in the same syntax that typical shells use; then type TAB.
Dave Love <fx@gnu.org>
parents:
diff changeset
4221 This searches the comint input history for a matching element,
Dave Love <fx@gnu.org>
parents:
diff changeset
4222 performs substitution if necessary, and places the result in the
Dave Love <fx@gnu.org>
parents:
diff changeset
4223 comint buffer in place of the original input.
Dave Love <fx@gnu.org>
parents:
diff changeset
4224
Dave Love <fx@gnu.org>
parents:
diff changeset
4225 History references in the input may be expanded before insertion into
Dave Love <fx@gnu.org>
parents:
diff changeset
4226 the input ring, or on input to the interpreter (and therefore
Dave Love <fx@gnu.org>
parents:
diff changeset
4227 visibly). The variable `comint-input-autoexpand' specifies which.
Dave Love <fx@gnu.org>
parents:
diff changeset
4228
Dave Love <fx@gnu.org>
parents:
diff changeset
4229 You can make the SPC key perform history expansion by binding
Dave Love <fx@gnu.org>
parents:
diff changeset
4230 SPC to the command `comint-magic-space'.
Dave Love <fx@gnu.org>
parents:
diff changeset
4231
Dave Love <fx@gnu.org>
parents:
diff changeset
4232 The command `comint-dynamic-complete-variable' does variable name
Dave Love <fx@gnu.org>
parents:
diff changeset
4233 completion using the environment variables as set within Emacs. The
Dave Love <fx@gnu.org>
parents:
diff changeset
4234 variables controlling filename completion apply to variable name
Dave Love <fx@gnu.org>
parents:
diff changeset
4235 completion too. This command is normally available through the menu
Dave Love <fx@gnu.org>
parents:
diff changeset
4236 bar.
Dave Love <fx@gnu.org>
parents:
diff changeset
4237
Dave Love <fx@gnu.org>
parents:
diff changeset
4238 ** Shell mode
Dave Love <fx@gnu.org>
parents:
diff changeset
4239
Dave Love <fx@gnu.org>
parents:
diff changeset
4240 Paragraph motion and marking commands (default bindings M-{, M-}, M-h) operate
Dave Love <fx@gnu.org>
parents:
diff changeset
4241 on output groups (i.e., shell prompt plus associated shell output).
Dave Love <fx@gnu.org>
parents:
diff changeset
4242
Dave Love <fx@gnu.org>
parents:
diff changeset
4243 TAB now completes commands, as well as file names and expand history.
Dave Love <fx@gnu.org>
parents:
diff changeset
4244 Commands are searched for along the path that Emacs has on startup.
Dave Love <fx@gnu.org>
parents:
diff changeset
4245
Dave Love <fx@gnu.org>
parents:
diff changeset
4246 C-c C-f now moves forward a command (`shell-forward-command') and
Dave Love <fx@gnu.org>
parents:
diff changeset
4247 C-c C-b now moves backward a command (`shell-backward-command').
Dave Love <fx@gnu.org>
parents:
diff changeset
4248
Dave Love <fx@gnu.org>
parents:
diff changeset
4249 Command completion is configurable. The variables controlling
Dave Love <fx@gnu.org>
parents:
diff changeset
4250 filename completion in comint mode apply, together with a variable
Dave Love <fx@gnu.org>
parents:
diff changeset
4251 controlling whether to restrict possible completions to only files
Dave Love <fx@gnu.org>
parents:
diff changeset
4252 that are executable (`shell-command-execonly').
Dave Love <fx@gnu.org>
parents:
diff changeset
4253
Dave Love <fx@gnu.org>
parents:
diff changeset
4254 The input history is initialised from the file name given in the
Dave Love <fx@gnu.org>
parents:
diff changeset
4255 variable `shell-input-ring-file-name'--normally `.history' in your
Dave Love <fx@gnu.org>
parents:
diff changeset
4256 home directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
4257
Dave Love <fx@gnu.org>
parents:
diff changeset
4258 Directory tracking is more robust. It can cope with command sequences
Dave Love <fx@gnu.org>
parents:
diff changeset
4259 and forked commands, and can detect the failure of directory changing
Dave Love <fx@gnu.org>
parents:
diff changeset
4260 commands in most circumstances. It's still not infallible, of course.
Dave Love <fx@gnu.org>
parents:
diff changeset
4261
Dave Love <fx@gnu.org>
parents:
diff changeset
4262 You can now configure the behaviour of `pushd'. Variables control
Dave Love <fx@gnu.org>
parents:
diff changeset
4263 whether `pushd' behaves like `cd' if no argument is given
Dave Love <fx@gnu.org>
parents:
diff changeset
4264 (`shell-pushd-tohome'), pop rather than rotate with a numeric argument
Dave Love <fx@gnu.org>
parents:
diff changeset
4265 (`shell-pushd-dextract'), and only add directories to the directory
Dave Love <fx@gnu.org>
parents:
diff changeset
4266 stack if they are not already on it (`shell-pushd-dunique'). The
Dave Love <fx@gnu.org>
parents:
diff changeset
4267 configuration you choose should match the underlying shell, of course.
Dave Love <fx@gnu.org>
parents:
diff changeset
4268
Dave Love <fx@gnu.org>
parents:
diff changeset
4269 * Emacs Lisp programming changes in Emacs 19.20.
Dave Love <fx@gnu.org>
parents:
diff changeset
4270
Dave Love <fx@gnu.org>
parents:
diff changeset
4271 ** A new function `remove-hook' is now used to remove a hook that you might
Dave Love <fx@gnu.org>
parents:
diff changeset
4272 have added with `add-hook'.
Dave Love <fx@gnu.org>
parents:
diff changeset
4273
Dave Love <fx@gnu.org>
parents:
diff changeset
4274 ** There is now a Lisp pretty-printer in the library `pp'.
Dave Love <fx@gnu.org>
parents:
diff changeset
4275
Dave Love <fx@gnu.org>
parents:
diff changeset
4276 ** The partial Common Lisp support has been entirely reimplemented.
Dave Love <fx@gnu.org>
parents:
diff changeset
4277
Dave Love <fx@gnu.org>
parents:
diff changeset
4278 ** When you insert text using `insert', `insert-before-markers' or
Dave Love <fx@gnu.org>
parents:
diff changeset
4279 `insert-buffer-substring', text properties are no longer inherited
Dave Love <fx@gnu.org>
parents:
diff changeset
4280 from the surrounding text.
Dave Love <fx@gnu.org>
parents:
diff changeset
4281
Dave Love <fx@gnu.org>
parents:
diff changeset
4282 When you want to inherit text properties, use the new functions
Dave Love <fx@gnu.org>
parents:
diff changeset
4283 `insert-and-inherit' or `insert-before-markers-and-inherit'.
Dave Love <fx@gnu.org>
parents:
diff changeset
4284
Dave Love <fx@gnu.org>
parents:
diff changeset
4285 The self-inserting character command does do inheritance.
Dave Love <fx@gnu.org>
parents:
diff changeset
4286
Dave Love <fx@gnu.org>
parents:
diff changeset
4287 ** Frame creation hooks.
Dave Love <fx@gnu.org>
parents:
diff changeset
4288
Dave Love <fx@gnu.org>
parents:
diff changeset
4289 The function make-frame now runs the normal hooks
Dave Love <fx@gnu.org>
parents:
diff changeset
4290 before-make-frame-hook and after-make-frame-hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
4291
Dave Love <fx@gnu.org>
parents:
diff changeset
4292 ** You can now use function-key-map to make a key an alias for other
Dave Love <fx@gnu.org>
parents:
diff changeset
4293 key sequences that can vary depending on circumstances. To do this,
Dave Love <fx@gnu.org>
parents:
diff changeset
4294 give the key a definition in function-key-map which is a function
Dave Love <fx@gnu.org>
parents:
diff changeset
4295 rather than a specific expansion key sequence.
Dave Love <fx@gnu.org>
parents:
diff changeset
4296
Dave Love <fx@gnu.org>
parents:
diff changeset
4297 If the function reads input itself, it can have the effect of altering
Dave Love <fx@gnu.org>
parents:
diff changeset
4298 the event that follows. For example, here's how to define C-c h to
Dave Love <fx@gnu.org>
parents:
diff changeset
4299 turn the character that follows into a hyper character:
Dave Love <fx@gnu.org>
parents:
diff changeset
4300
Dave Love <fx@gnu.org>
parents:
diff changeset
4301 (define-key function-key-map "\C-ch" 'hyperify)
Dave Love <fx@gnu.org>
parents:
diff changeset
4302
Dave Love <fx@gnu.org>
parents:
diff changeset
4303 (defun hyperify (prompt)
Dave Love <fx@gnu.org>
parents:
diff changeset
4304 (let ((e (read-event)))
Dave Love <fx@gnu.org>
parents:
diff changeset
4305 (vector (if (numberp e)
Dave Love <fx@gnu.org>
parents:
diff changeset
4306 (logior (lsh 1 20) e)
Dave Love <fx@gnu.org>
parents:
diff changeset
4307 (if (memq 'hyper (event-modifiers e))
Dave Love <fx@gnu.org>
parents:
diff changeset
4308 e
Dave Love <fx@gnu.org>
parents:
diff changeset
4309 (add-event-modifier "H-" e))))))
Dave Love <fx@gnu.org>
parents:
diff changeset
4310
Dave Love <fx@gnu.org>
parents:
diff changeset
4311 (defun add-event-modifier (string e)
Dave Love <fx@gnu.org>
parents:
diff changeset
4312 (let ((symbol (if (symbolp e) e (car e))))
Dave Love <fx@gnu.org>
parents:
diff changeset
4313 (setq symbol (intern (concat string (symbol-name symbol))))
Dave Love <fx@gnu.org>
parents:
diff changeset
4314 (if (symbolp e)
Dave Love <fx@gnu.org>
parents:
diff changeset
4315 symbol
Dave Love <fx@gnu.org>
parents:
diff changeset
4316 (cons symbol (cdr e)))))
Dave Love <fx@gnu.org>
parents:
diff changeset
4317
Dave Love <fx@gnu.org>
parents:
diff changeset
4318 The character translation function gets one argument, which is the
Dave Love <fx@gnu.org>
parents:
diff changeset
4319 prompt that was specified in read-key-sequence--or nil if the key
Dave Love <fx@gnu.org>
parents:
diff changeset
4320 sequence is being read by the editor command loop. In most cases
Dave Love <fx@gnu.org>
parents:
diff changeset
4321 you can just ignore the prompt value.
Dave Love <fx@gnu.org>
parents:
diff changeset
4322
Dave Love <fx@gnu.org>
parents:
diff changeset
4323 ** Changes for reading and writing text properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
4324
Dave Love <fx@gnu.org>
parents:
diff changeset
4325 New low-level Lisp features make it possible to write Lisp programs to
Dave Love <fx@gnu.org>
parents:
diff changeset
4326 save text properties in files, and read text properties from files.
Dave Love <fx@gnu.org>
parents:
diff changeset
4327 You can program any file format you like.
Dave Love <fx@gnu.org>
parents:
diff changeset
4328
Dave Love <fx@gnu.org>
parents:
diff changeset
4329 The variable `write-region-annotation-functions' should contain a list
Dave Love <fx@gnu.org>
parents:
diff changeset
4330 of functions to be run by `write-region' to encode text properties in
Dave Love <fx@gnu.org>
parents:
diff changeset
4331 some fashion as annotations to the text that is written.
Dave Love <fx@gnu.org>
parents:
diff changeset
4332
Dave Love <fx@gnu.org>
parents:
diff changeset
4333 Each function in the list is called with two arguments: the start and
Dave Love <fx@gnu.org>
parents:
diff changeset
4334 end of the region to be written. These functions should not alter the
Dave Love <fx@gnu.org>
parents:
diff changeset
4335 contents of the buffer. Instead, they should return lists indicating
Dave Love <fx@gnu.org>
parents:
diff changeset
4336 annotations to write in the file in addition to the text in the
Dave Love <fx@gnu.org>
parents:
diff changeset
4337 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
4338
Dave Love <fx@gnu.org>
parents:
diff changeset
4339 Each function should return a list of elements of the form (POSITION
Dave Love <fx@gnu.org>
parents:
diff changeset
4340 . STRING), where POSITION is an integer specifying the relative
Dave Love <fx@gnu.org>
parents:
diff changeset
4341 position in the text to be written, and STRING is the annotation to
Dave Love <fx@gnu.org>
parents:
diff changeset
4342 add there.
Dave Love <fx@gnu.org>
parents:
diff changeset
4343
Dave Love <fx@gnu.org>
parents:
diff changeset
4344 Each list returned by one of these functions must be already sorted in
Dave Love <fx@gnu.org>
parents:
diff changeset
4345 increasing order by POSITION. If there is more than one function,
Dave Love <fx@gnu.org>
parents:
diff changeset
4346 `write-region' merges the lists destructively into one sorted list.
Dave Love <fx@gnu.org>
parents:
diff changeset
4347
Dave Love <fx@gnu.org>
parents:
diff changeset
4348 When `write-region' actually writes the text from the buffer to the
Dave Love <fx@gnu.org>
parents:
diff changeset
4349 file, it intermixes the specified annotations at the corresponding
Dave Love <fx@gnu.org>
parents:
diff changeset
4350 positions. All this takes place without modifying the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
4351
Dave Love <fx@gnu.org>
parents:
diff changeset
4352 The variable `after-insert-file-functions' should contain a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
4353 functions to be run each time a file's contents have been inserted into
Dave Love <fx@gnu.org>
parents:
diff changeset
4354 a buffer. Each function receives one argument, the length of the
Dave Love <fx@gnu.org>
parents:
diff changeset
4355 inserted text; point indicates the start of that text. The function
Dave Love <fx@gnu.org>
parents:
diff changeset
4356 should make whatever changes it wants to make, then return the updated
Dave Love <fx@gnu.org>
parents:
diff changeset
4357 length of the inserted text, as it stands after those changes. The
Dave Love <fx@gnu.org>
parents:
diff changeset
4358 value returned by one function is used as the argument to the next.
Dave Love <fx@gnu.org>
parents:
diff changeset
4359 These functions should always return with point at the beginning of
Dave Love <fx@gnu.org>
parents:
diff changeset
4360 the inserted text.
Dave Love <fx@gnu.org>
parents:
diff changeset
4361
Dave Love <fx@gnu.org>
parents:
diff changeset
4362 The intended use of `after-insert-file-functions' is for converting
Dave Love <fx@gnu.org>
parents:
diff changeset
4363 some sort of textual annotations into actual text properties. But many
Dave Love <fx@gnu.org>
parents:
diff changeset
4364 other uses may be possible.
Dave Love <fx@gnu.org>
parents:
diff changeset
4365
Dave Love <fx@gnu.org>
parents:
diff changeset
4366 We now invite users to begin implementing Lisp programs to store and
Dave Love <fx@gnu.org>
parents:
diff changeset
4367 retrieve text properties in files, using these new primitive features,
Dave Love <fx@gnu.org>
parents:
diff changeset
4368 and thus to experiment with various data formats and find good ones.
Dave Love <fx@gnu.org>
parents:
diff changeset
4369
Dave Love <fx@gnu.org>
parents:
diff changeset
4370 We suggest not trying to handle arbitrary Lisp objects as property
Dave Love <fx@gnu.org>
parents:
diff changeset
4371 names or property values--because a program that general is probably
Dave Love <fx@gnu.org>
parents:
diff changeset
4372 difficult to write, and slow. Instead, choose a set of possible data
Dave Love <fx@gnu.org>
parents:
diff changeset
4373 types that are reasonably flexible, and not too hard to encode.
Dave Love <fx@gnu.org>
parents:
diff changeset
4374
Dave Love <fx@gnu.org>
parents:
diff changeset
4375 ** Comint completion.
Dave Love <fx@gnu.org>
parents:
diff changeset
4376
Dave Love <fx@gnu.org>
parents:
diff changeset
4377 Currently comint-dynamic-complete-command (and associated variable
Dave Love <fx@gnu.org>
parents:
diff changeset
4378 comint-after-partial-pathname-command) are set by default to complete a
Dave Love <fx@gnu.org>
parents:
diff changeset
4379 filename. Other comint-mode users should have their own functions to achieve
Dave Love <fx@gnu.org>
parents:
diff changeset
4380 this. For example, gud-mode could complete debugger commands. A completion
Dave Love <fx@gnu.org>
parents:
diff changeset
4381 function is provided solely for this reason (comint-dynamic-simple-complete).
Dave Love <fx@gnu.org>
parents:
diff changeset
4382
Dave Love <fx@gnu.org>
parents:
diff changeset
4383 Other comint-mode users should bind comint-dynamic-complete (shell-mode does
Dave Love <fx@gnu.org>
parents:
diff changeset
4384 already).
Dave Love <fx@gnu.org>
parents:
diff changeset
4385
Dave Love <fx@gnu.org>
parents:
diff changeset
4386 ** Comint history reference expansion
Dave Love <fx@gnu.org>
parents:
diff changeset
4387
Dave Love <fx@gnu.org>
parents:
diff changeset
4388 Currently comint-input-autoexpand is 'history, which means only expand
Dave Love <fx@gnu.org>
parents:
diff changeset
4389 history on insertion to comint-input-ring. For non-shell modes, this is
Dave Love <fx@gnu.org>
parents:
diff changeset
4390 a strange default, since non-shells will not understand history references.
Dave Love <fx@gnu.org>
parents:
diff changeset
4391 Perhaps it would be better for the variable to be 'input, which means expand
Dave Love <fx@gnu.org>
parents:
diff changeset
4392 on RET.
Dave Love <fx@gnu.org>
parents:
diff changeset
4393
Dave Love <fx@gnu.org>
parents:
diff changeset
4394 The value 'history might possibly be wrong even for shells, since the
Dave Love <fx@gnu.org>
parents:
diff changeset
4395 expansion will be done both by comint and the underlying shell (except sh, of
Dave Love <fx@gnu.org>
parents:
diff changeset
4396 course). It would be better for expansion to be done by one or the other,
Dave Love <fx@gnu.org>
parents:
diff changeset
4397 not both since they may (ahem) disagree. Since it is silly to put a literal
Dave Love <fx@gnu.org>
parents:
diff changeset
4398 history reference into comint-input-ring, perhaps it would be better for the
Dave Love <fx@gnu.org>
parents:
diff changeset
4399 variable to be 'input too.
Dave Love <fx@gnu.org>
parents:
diff changeset
4400
Dave Love <fx@gnu.org>
parents:
diff changeset
4401 The reason the variable is not 'input by default is that I was attempting to
Dave Love <fx@gnu.org>
parents:
diff changeset
4402 adhere to The Principle of Least Astonishment. I didn't want to shock users
Dave Love <fx@gnu.org>
parents:
diff changeset
4403 by having their input change in front of their eyes.
Dave Love <fx@gnu.org>
parents:
diff changeset
4404
Dave Love <fx@gnu.org>
parents:
diff changeset
4405 ** Argument delimiters and Comint mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
4406
Dave Love <fx@gnu.org>
parents:
diff changeset
4407 Currently comint-delimiter-argument-list is '(), which means no strings are
Dave Love <fx@gnu.org>
parents:
diff changeset
4408 to be treated as delimiters and arguments. In shell-mode, this variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
4409 set to shell-delimiter-argument-list, '("|" "&" "<" ">" "(" ")" ";"). Other
Dave Love <fx@gnu.org>
parents:
diff changeset
4410 comint-mode users should set this variable too. For example, a lisp-type
Dave Love <fx@gnu.org>
parents:
diff changeset
4411 mode might want to set this to '("." "(" ")") or some such.
Dave Love <fx@gnu.org>
parents:
diff changeset
4412
Dave Love <fx@gnu.org>
parents:
diff changeset
4413 ** Comint output hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
4414
Dave Love <fx@gnu.org>
parents:
diff changeset
4415 There is now a hook, comint-output-filter-hook, that is run-hooks'ed by the
Dave Love <fx@gnu.org>
parents:
diff changeset
4416 output filter, comint-output-filter. This is useful for scrolling (see
Dave Love <fx@gnu.org>
parents:
diff changeset
4417 below), but also things like processing output for specific text, output
Dave Love <fx@gnu.org>
parents:
diff changeset
4418 highlighting, etc.
Dave Love <fx@gnu.org>
parents:
diff changeset
4419
Dave Love <fx@gnu.org>
parents:
diff changeset
4420 So that such output processing may be done efficiently, there is a new
Dave Love <fx@gnu.org>
parents:
diff changeset
4421 variable, comint-last-output-start, that records the position of the start of
Dave Love <fx@gnu.org>
parents:
diff changeset
4422 the lastest output inserted into the buffer (effectively the previous value
Dave Love <fx@gnu.org>
parents:
diff changeset
4423 of process-mark). Output processing functions should process the text
Dave Love <fx@gnu.org>
parents:
diff changeset
4424 between comint-last-output-start (or perhaps the beginning of the line that
Dave Love <fx@gnu.org>
parents:
diff changeset
4425 the position lies on) and process-mark.
Dave Love <fx@gnu.org>
parents:
diff changeset
4426
Dave Love <fx@gnu.org>
parents:
diff changeset
4427 ** Comint scrolling.
Dave Love <fx@gnu.org>
parents:
diff changeset
4428
Dave Love <fx@gnu.org>
parents:
diff changeset
4429 There is now automatic scrolling of process windows.
Dave Love <fx@gnu.org>
parents:
diff changeset
4430
Dave Love <fx@gnu.org>
parents:
diff changeset
4431 Currently comint-scroll-show-maximum-output is t, which means when scrolling
Dave Love <fx@gnu.org>
parents:
diff changeset
4432 output put process-mark at the bottom of the window. There is a good case
Dave Love <fx@gnu.org>
parents:
diff changeset
4433 for it to be t, since the user is likely to want to see as much output as
Dave Love <fx@gnu.org>
parents:
diff changeset
4434 possible. But, then again, there is a comint-show-maximum-output command.
Dave Love <fx@gnu.org>
parents:
diff changeset
4435
Dave Love <fx@gnu.org>
parents:
diff changeset
4436 ** Comint history retrieval.
Dave Love <fx@gnu.org>
parents:
diff changeset
4437
Dave Love <fx@gnu.org>
parents:
diff changeset
4438 The input following point is not deleted when moving around the input history
Dave Love <fx@gnu.org>
parents:
diff changeset
4439 (with M-p etc.). Emacs maintainers may not like this. However, I feel this
Dave Love <fx@gnu.org>
parents:
diff changeset
4440 is a useful feature. The simple remedy is to put end-of-line in before
Dave Love <fx@gnu.org>
parents:
diff changeset
4441 delete-region in comint-previous-matching-input.
Dave Love <fx@gnu.org>
parents:
diff changeset
4442
Dave Love <fx@gnu.org>
parents:
diff changeset
4443 The input history retrieval commands still wrap-around the input ring, unlike
Dave Love <fx@gnu.org>
parents:
diff changeset
4444 Emacs command history.
Dave Love <fx@gnu.org>
parents:
diff changeset
4445
Dave Love <fx@gnu.org>
parents:
diff changeset
4446 * Changes in version 19.19.
Dave Love <fx@gnu.org>
parents:
diff changeset
4447
Dave Love <fx@gnu.org>
parents:
diff changeset
4448 ** The new package bookmark.el records named bookmarks: positions that
Dave Love <fx@gnu.org>
parents:
diff changeset
4449 you can jump to. Bookmarks are saved automatically between Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
4450 sessions.
Dave Love <fx@gnu.org>
parents:
diff changeset
4451
Dave Love <fx@gnu.org>
parents:
diff changeset
4452 ** Another simpler package saveplace.el records your position in each
Dave Love <fx@gnu.org>
parents:
diff changeset
4453 file when you kill its buffer (or kill Emacs), and jumps to the same
Dave Love <fx@gnu.org>
parents:
diff changeset
4454 position when you visit the file again (even in another Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
4455 session). Use `toggle-save-place' to turn on place-saving in a given file;
Dave Love <fx@gnu.org>
parents:
diff changeset
4456 use (setq-default save-place t) to turn it on for all files.
Dave Love <fx@gnu.org>
parents:
diff changeset
4457
Dave Love <fx@gnu.org>
parents:
diff changeset
4458 ** In Outline mode, you can now customize how to compute the level of a
Dave Love <fx@gnu.org>
parents:
diff changeset
4459 heading line. Set `outline-level' to a function of no arguments which
Dave Love <fx@gnu.org>
parents:
diff changeset
4460 returns the level, assuming point is at the beginning of a heading
Dave Love <fx@gnu.org>
parents:
diff changeset
4461 line.
Dave Love <fx@gnu.org>
parents:
diff changeset
4462
Dave Love <fx@gnu.org>
parents:
diff changeset
4463 ** You can now specify the prefix key to use for Outline minor mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
4464 (The default is C-c.) Set the variable outline-minor-mode-prefix to
Dave Love <fx@gnu.org>
parents:
diff changeset
4465 the key sequence you want to use (as a string or vector).
Dave Love <fx@gnu.org>
parents:
diff changeset
4466
Dave Love <fx@gnu.org>
parents:
diff changeset
4467 ** In Bibtex mode, C-c e has been changed to C-c C-b. This is because
Dave Love <fx@gnu.org>
parents:
diff changeset
4468 C-c followed by a letter is reserved for users.
Dave Love <fx@gnu.org>
parents:
diff changeset
4469
Dave Love <fx@gnu.org>
parents:
diff changeset
4470 ** The `mod' function is no longer an alias for `%', but is a separate function
Dave Love <fx@gnu.org>
parents:
diff changeset
4471 that yields a result with the same sign as the divisor. `floor' now takes an
Dave Love <fx@gnu.org>
parents:
diff changeset
4472 optional second argument, which divides the first argument before the floor is
Dave Love <fx@gnu.org>
parents:
diff changeset
4473 taken.
Dave Love <fx@gnu.org>
parents:
diff changeset
4474
Dave Love <fx@gnu.org>
parents:
diff changeset
4475 ** `%' no longer allows floating point arguments, since the results were often
Dave Love <fx@gnu.org>
parents:
diff changeset
4476 inconsistent with integer `%'.
Dave Love <fx@gnu.org>
parents:
diff changeset
4477
Dave Love <fx@gnu.org>
parents:
diff changeset
4478 * Changes in version 19.18.
Dave Love <fx@gnu.org>
parents:
diff changeset
4479
Dave Love <fx@gnu.org>
parents:
diff changeset
4480 ** Typing C-z in an iconified Emacs frame now deiconifies it.
Dave Love <fx@gnu.org>
parents:
diff changeset
4481
Dave Love <fx@gnu.org>
parents:
diff changeset
4482 ** hilit19 is a new library for automatic highlighting of parts of the
Dave Love <fx@gnu.org>
parents:
diff changeset
4483 text in the buffer, based on its meaning and context.
Dave Love <fx@gnu.org>
parents:
diff changeset
4484
Dave Love <fx@gnu.org>
parents:
diff changeset
4485 ** Killing no longer sends the killed text to the X clipboard.
Dave Love <fx@gnu.org>
parents:
diff changeset
4486 And large strings are not put in the cut buffer either.
Dave Love <fx@gnu.org>
parents:
diff changeset
4487 The variable x-cut-buffer-max specifies the maximum number of characters
Dave Love <fx@gnu.org>
parents:
diff changeset
4488 to put in the cut buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
4489
Dave Love <fx@gnu.org>
parents:
diff changeset
4490 ** The new command C-x 5 o (other-frame) selects different frames,
Dave Love <fx@gnu.org>
parents:
diff changeset
4491 successively, in cyclic order. It does for frames what C-x o
Dave Love <fx@gnu.org>
parents:
diff changeset
4492 does for windows.
Dave Love <fx@gnu.org>
parents:
diff changeset
4493
Dave Love <fx@gnu.org>
parents:
diff changeset
4494 ** The command M-ESC (eval-expression) has its own command history.
Dave Love <fx@gnu.org>
parents:
diff changeset
4495
Dave Love <fx@gnu.org>
parents:
diff changeset
4496 ** The commands M-! and M-| for running shell commands have their own
Dave Love <fx@gnu.org>
parents:
diff changeset
4497 command history.
Dave Love <fx@gnu.org>
parents:
diff changeset
4498
Dave Love <fx@gnu.org>
parents:
diff changeset
4499 ** If the directory containing the Emacs executable has a sibling named
Dave Love <fx@gnu.org>
parents:
diff changeset
4500 `lisp', that `lisp' directory is added to the end of `load-path'
Dave Love <fx@gnu.org>
parents:
diff changeset
4501 (provided you don't override the normal value with the EMACSLOADPATH
Dave Love <fx@gnu.org>
parents:
diff changeset
4502 environment variable). This feature may make it easier to move
Dave Love <fx@gnu.org>
parents:
diff changeset
4503 an installed Emacs from place to place.
Dave Love <fx@gnu.org>
parents:
diff changeset
4504
Dave Love <fx@gnu.org>
parents:
diff changeset
4505 ** M-x validate-tex-buffer now records the locations of mismatches
Dave Love <fx@gnu.org>
parents:
diff changeset
4506 found in the `*Occur*' buffer. You can go to that buffer and type C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
4507 C-c to visit a particular mismatch.
Dave Love <fx@gnu.org>
parents:
diff changeset
4508
Dave Love <fx@gnu.org>
parents:
diff changeset
4509 ** There are new commands in Shell mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
4510
Dave Love <fx@gnu.org>
parents:
diff changeset
4511 C-c C-n and C-c C-p move point to the next or previous shell input line.
Dave Love <fx@gnu.org>
parents:
diff changeset
4512
Dave Love <fx@gnu.org>
parents:
diff changeset
4513 C-c C-d is now another way to send an end-of-file to the subshell.
Dave Love <fx@gnu.org>
parents:
diff changeset
4514
Dave Love <fx@gnu.org>
parents:
diff changeset
4515 ** Changes to calendar/diary.
Dave Love <fx@gnu.org>
parents:
diff changeset
4516
Dave Love <fx@gnu.org>
parents:
diff changeset
4517 Time zone data is now determined automatically, including the
Dave Love <fx@gnu.org>
parents:
diff changeset
4518 start/stop days and times of daylight savings time. The code now
Dave Love <fx@gnu.org>
parents:
diff changeset
4519 works correctly almost anywhere in the world.
Dave Love <fx@gnu.org>
parents:
diff changeset
4520
Dave Love <fx@gnu.org>
parents:
diff changeset
4521 The format of the holiday specifications has changed and IS NO LONGER
Dave Love <fx@gnu.org>
parents:
diff changeset
4522 COMPATIBLE with the old (version 18) format. See the documentation of
Dave Love <fx@gnu.org>
parents:
diff changeset
4523 the variable calendar-holidays for details of the new, improved
Dave Love <fx@gnu.org>
parents:
diff changeset
4524 format.
Dave Love <fx@gnu.org>
parents:
diff changeset
4525
Dave Love <fx@gnu.org>
parents:
diff changeset
4526 The hook `diary-display-hook' has been split into two:
Dave Love <fx@gnu.org>
parents:
diff changeset
4527 diary-display-hook which should be used ONLY for the display and
Dave Love <fx@gnu.org>
parents:
diff changeset
4528 `diary-hook' which should be used for appointment notification. If
Dave Love <fx@gnu.org>
parents:
diff changeset
4529 diary-display-hook is nil (the default), simple-diary-display is
Dave Love <fx@gnu.org>
parents:
diff changeset
4530 used. This allows the diary hooks to be correctly set with add-hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
4531
Dave Love <fx@gnu.org>
parents:
diff changeset
4532 The forms used for dates in diary entries and general display are no
Dave Love <fx@gnu.org>
parents:
diff changeset
4533 longer autoloaded, but set at load time; this means they will be set
Dave Love <fx@gnu.org>
parents:
diff changeset
4534 correctly based on values you assign to various variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
4535
Dave Love <fx@gnu.org>
parents:
diff changeset
4536 ** The functions x-rebind-key and x-rebind-keys have been deleted,
Dave Love <fx@gnu.org>
parents:
diff changeset
4537 because you can accomplish the same job by binding keys to keyboard
Dave Love <fx@gnu.org>
parents:
diff changeset
4538 macros.
Dave Love <fx@gnu.org>
parents:
diff changeset
4539
Dave Love <fx@gnu.org>
parents:
diff changeset
4540 ** Emacs now distinguishes double and triple drag events and double and
Dave Love <fx@gnu.org>
parents:
diff changeset
4541 triple button-down events. These work analogously to double and
Dave Love <fx@gnu.org>
parents:
diff changeset
4542 triple click events.
Dave Love <fx@gnu.org>
parents:
diff changeset
4543
Dave Love <fx@gnu.org>
parents:
diff changeset
4544 Double drag events, if not defined, convert to ordinary click events.
Dave Love <fx@gnu.org>
parents:
diff changeset
4545 Double down events, if not defined, convert first to ordinary down
Dave Love <fx@gnu.org>
parents:
diff changeset
4546 events, which are then discarded if not defined. Triple events that
Dave Love <fx@gnu.org>
parents:
diff changeset
4547 are not defined convert to the corresponding double event; if that is
Dave Love <fx@gnu.org>
parents:
diff changeset
4548 also not defined, it may convert further.
Dave Love <fx@gnu.org>
parents:
diff changeset
4549
Dave Love <fx@gnu.org>
parents:
diff changeset
4550 ** The new function event-click-count returns the number of clicks,
Dave Love <fx@gnu.org>
parents:
diff changeset
4551 from an event which is a list. It is 1 for an ordinary click, drag,
Dave Love <fx@gnu.org>
parents:
diff changeset
4552 or button-down event, 2 for a double event, and 3 or more for a triple
Dave Love <fx@gnu.org>
parents:
diff changeset
4553 event.
Dave Love <fx@gnu.org>
parents:
diff changeset
4554
Dave Love <fx@gnu.org>
parents:
diff changeset
4555 ** The new function previous-frame is like next-frame, but moves
Dave Love <fx@gnu.org>
parents:
diff changeset
4556 around through the set of existing frames in the opposite order.
Dave Love <fx@gnu.org>
parents:
diff changeset
4557
Dave Love <fx@gnu.org>
parents:
diff changeset
4558 ** The post-command-hook now runs even after commands that get an error
Dave Love <fx@gnu.org>
parents:
diff changeset
4559 and return to top level. As a consequence of the same change, this
Dave Love <fx@gnu.org>
parents:
diff changeset
4560 hook also runs before Emacs reads the first command. That might sound
Dave Love <fx@gnu.org>
parents:
diff changeset
4561 paradoxical, as if this hook were the same as the pre-command-hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
4562 Actually, they are not similar; the latter runs before *execution* of
Dave Love <fx@gnu.org>
parents:
diff changeset
4563 a command, but after it has been read.
Dave Love <fx@gnu.org>
parents:
diff changeset
4564
Dave Love <fx@gnu.org>
parents:
diff changeset
4565 ** You can turn off the text property hooks that run when point moves
Dave Love <fx@gnu.org>
parents:
diff changeset
4566 to certain places in the buffer, by binding inhibit-point-motion-hooks
Dave Love <fx@gnu.org>
parents:
diff changeset
4567 to a non-nil value.
Dave Love <fx@gnu.org>
parents:
diff changeset
4568
Dave Love <fx@gnu.org>
parents:
diff changeset
4569 ** Inserting a string with no text properties into the buffer normally
Dave Love <fx@gnu.org>
parents:
diff changeset
4570 inherits the properties of the preceding character. You can now
Dave Love <fx@gnu.org>
parents:
diff changeset
4571 control this inheritance by setting the front-sticky and
Dave Love <fx@gnu.org>
parents:
diff changeset
4572 rear-nonsticky properties of a character.
Dave Love <fx@gnu.org>
parents:
diff changeset
4573
Dave Love <fx@gnu.org>
parents:
diff changeset
4574 If you make a character's front-sticky property t, then insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
4575 before the character inherits its properties. If you make the
Dave Love <fx@gnu.org>
parents:
diff changeset
4576 rear-nonsticky property t, then insertion after the character does not
Dave Love <fx@gnu.org>
parents:
diff changeset
4577 inherit its properties. You can regard characters as normally being
Dave Love <fx@gnu.org>
parents:
diff changeset
4578 rear-sticky and not front-sticky, and this is why insertion normally
Dave Love <fx@gnu.org>
parents:
diff changeset
4579 inherits from the previous character.
Dave Love <fx@gnu.org>
parents:
diff changeset
4580
Dave Love <fx@gnu.org>
parents:
diff changeset
4581 If neither side of an insertion is suitably sticky, then the inserted
Dave Love <fx@gnu.org>
parents:
diff changeset
4582 text gets no properties. If both sides are sticky, then the inserted
Dave Love <fx@gnu.org>
parents:
diff changeset
4583 text gets the properties of both sides, with the previous character's
Dave Love <fx@gnu.org>
parents:
diff changeset
4584 properties taking precedence when both sides have a property in
Dave Love <fx@gnu.org>
parents:
diff changeset
4585 common.
Dave Love <fx@gnu.org>
parents:
diff changeset
4586
Dave Love <fx@gnu.org>
parents:
diff changeset
4587 You can also specify stickiness for individual properties. To do so,
Dave Love <fx@gnu.org>
parents:
diff changeset
4588 use a list of property names as the value of the front-sticky property
Dave Love <fx@gnu.org>
parents:
diff changeset
4589 or the rear-nonsticky property. For example, if a character has a
Dave Love <fx@gnu.org>
parents:
diff changeset
4590 rear-nonsticky property whose value is (face read-only), then
Dave Love <fx@gnu.org>
parents:
diff changeset
4591 insertion after the character will not inherit its face property or
Dave Love <fx@gnu.org>
parents:
diff changeset
4592 read-only property (if any), but will inherit any other properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
4593
Dave Love <fx@gnu.org>
parents:
diff changeset
4594 The merging of properties when both sides of the insertion are sticky
Dave Love <fx@gnu.org>
parents:
diff changeset
4595 takes place one property at a time. If the preceding character is
Dave Love <fx@gnu.org>
parents:
diff changeset
4596 rear-sticky for the property, and the property is non-nil, it
Dave Love <fx@gnu.org>
parents:
diff changeset
4597 dominates. Otherwise, the following character's property value is
Dave Love <fx@gnu.org>
parents:
diff changeset
4598 used if it is front-sticky for that property.
Dave Love <fx@gnu.org>
parents:
diff changeset
4599
Dave Love <fx@gnu.org>
parents:
diff changeset
4600 ** If you give a character a non-nil `invisible' text property, the
Dave Love <fx@gnu.org>
parents:
diff changeset
4601 character does not appear on the screen. This works much like
Dave Love <fx@gnu.org>
parents:
diff changeset
4602 selective display.
Dave Love <fx@gnu.org>
parents:
diff changeset
4603
Dave Love <fx@gnu.org>
parents:
diff changeset
4604 The details of this feature are likely to change in future Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
4605 versions.
Dave Love <fx@gnu.org>
parents:
diff changeset
4606
Dave Love <fx@gnu.org>
parents:
diff changeset
4607 ** In Info, when you go to a node, it runs the normal hook
Dave Love <fx@gnu.org>
parents:
diff changeset
4608 Info-selection-hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
4609
Dave Love <fx@gnu.org>
parents:
diff changeset
4610 ** You can use the new function `invocation-directory' to get the name
Dave Love <fx@gnu.org>
parents:
diff changeset
4611 of the directory containing the Emacs executable that was run.
Dave Love <fx@gnu.org>
parents:
diff changeset
4612
Dave Love <fx@gnu.org>
parents:
diff changeset
4613 ** Entry to the minibuffer runs the normal hook minibuffer-setup-hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
4614
Dave Love <fx@gnu.org>
parents:
diff changeset
4615 ** The new function minibuffer-window-active-p takes one argument, a
Dave Love <fx@gnu.org>
parents:
diff changeset
4616 minibuffer window, and returns t if the window is currently active.
Dave Love <fx@gnu.org>
parents:
diff changeset
4617
Dave Love <fx@gnu.org>
parents:
diff changeset
4618 * Changes in version 19.17.
Dave Love <fx@gnu.org>
parents:
diff changeset
4619
Dave Love <fx@gnu.org>
parents:
diff changeset
4620 ** When Emacs displays a list of completions in a buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
4621 you can select a completion by clicking mouse button 2
Dave Love <fx@gnu.org>
parents:
diff changeset
4622 on that completion.
Dave Love <fx@gnu.org>
parents:
diff changeset
4623
Dave Love <fx@gnu.org>
parents:
diff changeset
4624 ** Use the command `list-faces-display' to display a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
4625 all the currently defined faces, showing what they look like.
Dave Love <fx@gnu.org>
parents:
diff changeset
4626
Dave Love <fx@gnu.org>
parents:
diff changeset
4627 ** Menu bar items from local maps now come after the usual items.
Dave Love <fx@gnu.org>
parents:
diff changeset
4628
Dave Love <fx@gnu.org>
parents:
diff changeset
4629 ** The Help menu bar item always comes last in the menu bar.
Dave Love <fx@gnu.org>
parents:
diff changeset
4630
Dave Love <fx@gnu.org>
parents:
diff changeset
4631 ** If you enable Font-Lock mode on a buffer containing a program
Dave Love <fx@gnu.org>
parents:
diff changeset
4632 (certain languages such as C and Lisp are supported), everything you
Dave Love <fx@gnu.org>
parents:
diff changeset
4633 type is automatically given a face property appropriate to its
Dave Love <fx@gnu.org>
parents:
diff changeset
4634 syntactic role. For example, there are faces for comments, string
Dave Love <fx@gnu.org>
parents:
diff changeset
4635 constants, names of functions being defined, and so on.
Dave Love <fx@gnu.org>
parents:
diff changeset
4636
Dave Love <fx@gnu.org>
parents:
diff changeset
4637 ** Dunnet, an adventure game, is now available.
Dave Love <fx@gnu.org>
parents:
diff changeset
4638
Dave Love <fx@gnu.org>
parents:
diff changeset
4639 ** Several major modes now have their own menu bar items,
Dave Love <fx@gnu.org>
parents:
diff changeset
4640 including Dired, Rmail, and Sendmail. We would like to add
Dave Love <fx@gnu.org>
parents:
diff changeset
4641 suitable menu bar items to other major modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
4642
Dave Love <fx@gnu.org>
parents:
diff changeset
4643 ** The key binding C-x a C-h has been eliminated.
Dave Love <fx@gnu.org>
parents:
diff changeset
4644 This is because it got in the way of the general feature of typing
Dave Love <fx@gnu.org>
parents:
diff changeset
4645 C-h after a prefix character. If you want to run
Dave Love <fx@gnu.org>
parents:
diff changeset
4646 inverse-add-global-abbrev, you can use C-x a - or C-x a i g instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
4647
Dave Love <fx@gnu.org>
parents:
diff changeset
4648 ** If you set the variable `rmail-mail-new-frame' to a non-nil value,
Dave Love <fx@gnu.org>
parents:
diff changeset
4649 all the Rmail commands to send mail make a new frame to do it in.
Dave Love <fx@gnu.org>
parents:
diff changeset
4650 When you send the message, or use the menu bar command not to send it,
Dave Love <fx@gnu.org>
parents:
diff changeset
4651 that frame is deleted.
Dave Love <fx@gnu.org>
parents:
diff changeset
4652
Dave Love <fx@gnu.org>
parents:
diff changeset
4653 ** In Rmail, the o and C-o commands are now almost interchangeable.
Dave Love <fx@gnu.org>
parents:
diff changeset
4654 Both commands check the format of the file you specify, and append
Dave Love <fx@gnu.org>
parents:
diff changeset
4655 the message to it in Rmail format if it is an Rmail file, and in
Dave Love <fx@gnu.org>
parents:
diff changeset
4656 inbox file format otherwise. C-o and o are different only when you
Dave Love <fx@gnu.org>
parents:
diff changeset
4657 specify a new file.
Dave Love <fx@gnu.org>
parents:
diff changeset
4658
Dave Love <fx@gnu.org>
parents:
diff changeset
4659 ** The function `copy-face' now takes an optional fourth argument
Dave Love <fx@gnu.org>
parents:
diff changeset
4660 NEW-FRAME. If you specify this, it copies the definition of face
Dave Love <fx@gnu.org>
parents:
diff changeset
4661 OLD-FACE on frame FRAME to face NEW-NAME on frame NEW-FRAME.
Dave Love <fx@gnu.org>
parents:
diff changeset
4662
Dave Love <fx@gnu.org>
parents:
diff changeset
4663 ** A local map can now cancel out one of the global map's menu items.
Dave Love <fx@gnu.org>
parents:
diff changeset
4664 Just define that subcommand of the menu item with `undefined'
Dave Love <fx@gnu.org>
parents:
diff changeset
4665 as the definition. For example, this cancels out the `Buffers' item
Dave Love <fx@gnu.org>
parents:
diff changeset
4666 for the current major mode:
Dave Love <fx@gnu.org>
parents:
diff changeset
4667
Dave Love <fx@gnu.org>
parents:
diff changeset
4668 (local-set-key [menu-bar buffer] 'undefined)
Dave Love <fx@gnu.org>
parents:
diff changeset
4669
Dave Love <fx@gnu.org>
parents:
diff changeset
4670 ** To put global items at the end of the menu bar, use the new variable
Dave Love <fx@gnu.org>
parents:
diff changeset
4671 `menu-bar-final-items'. It should be a list of symbols--event types
Dave Love <fx@gnu.org>
parents:
diff changeset
4672 bound in the menu bar. The menu bar items for these symbols are
Dave Love <fx@gnu.org>
parents:
diff changeset
4673 moved to the end.
Dave Love <fx@gnu.org>
parents:
diff changeset
4674
Dave Love <fx@gnu.org>
parents:
diff changeset
4675 ** The list returned by `buffer-local-variables' now contains cons-cell
Dave Love <fx@gnu.org>
parents:
diff changeset
4676 elements of the form (SYMBOL . VALUE) only for buffer-local variables
Dave Love <fx@gnu.org>
parents:
diff changeset
4677 that have values. For unbound buffer-local variables, the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
4678 name (symbol) appears directly as an element of the list.
Dave Love <fx@gnu.org>
parents:
diff changeset
4679
Dave Love <fx@gnu.org>
parents:
diff changeset
4680 ** The `modification-hooks' property of a character no longer affects
Dave Love <fx@gnu.org>
parents:
diff changeset
4681 insertion; it runs only for deletion and modification of the character.
Dave Love <fx@gnu.org>
parents:
diff changeset
4682
Dave Love <fx@gnu.org>
parents:
diff changeset
4683 To detect insertion, use `insert-in-front-hooks' and
Dave Love <fx@gnu.org>
parents:
diff changeset
4684 `insert-behind-hooks' properties. The former runs when text is
Dave Love <fx@gnu.org>
parents:
diff changeset
4685 inserted immediately preceding the character that has the property;
Dave Love <fx@gnu.org>
parents:
diff changeset
4686 the latter runs when text is inserted immediately following the
Dave Love <fx@gnu.org>
parents:
diff changeset
4687 character.
Dave Love <fx@gnu.org>
parents:
diff changeset
4688
Dave Love <fx@gnu.org>
parents:
diff changeset
4689 ** Buffer modification now runs hooks belonging to overlays as well as
Dave Love <fx@gnu.org>
parents:
diff changeset
4690 hooks belonging to characters. If an overlay has a
Dave Love <fx@gnu.org>
parents:
diff changeset
4691 `modification-hooks' property, it applies to any change to text in the
Dave Love <fx@gnu.org>
parents:
diff changeset
4692 overlay, and any insertion within the overlay. If the overlay has a
Dave Love <fx@gnu.org>
parents:
diff changeset
4693 `insert-in-front-hooks' property, it runs for insertion at the
Dave Love <fx@gnu.org>
parents:
diff changeset
4694 beginning boundary of the overlay. If the overlay has an
Dave Love <fx@gnu.org>
parents:
diff changeset
4695 `insert-behind-hooks' property, it runs for insertion at the end
Dave Love <fx@gnu.org>
parents:
diff changeset
4696 boundary of the overlay.
Dave Love <fx@gnu.org>
parents:
diff changeset
4697
Dave Love <fx@gnu.org>
parents:
diff changeset
4698 The values of these properties should be lists of functions. Each
Dave Love <fx@gnu.org>
parents:
diff changeset
4699 function is called, receiving as arguments the overlay in question,
Dave Love <fx@gnu.org>
parents:
diff changeset
4700 followed by the bounds of the range being modified.
Dave Love <fx@gnu.org>
parents:
diff changeset
4701
Dave Love <fx@gnu.org>
parents:
diff changeset
4702 ** The new `-name NAME' option directs Emacs to search for its X
Dave Love <fx@gnu.org>
parents:
diff changeset
4703 resources using the name `NAME', and sets the title of the initial
Dave Love <fx@gnu.org>
parents:
diff changeset
4704 frame. This argument was added for consistency with other X clients.
Dave Love <fx@gnu.org>
parents:
diff changeset
4705
Dave Love <fx@gnu.org>
parents:
diff changeset
4706 ** The new `-xrm DATABASE' option tells Emacs to treat the string
Dave Love <fx@gnu.org>
parents:
diff changeset
4707 DATABASE as the text of an X resource database. Emacs searches
Dave Love <fx@gnu.org>
parents:
diff changeset
4708 DATABASE for resource values, in addition to the usual places. This
Dave Love <fx@gnu.org>
parents:
diff changeset
4709 argument was added for consistency with other X clients.
Dave Love <fx@gnu.org>
parents:
diff changeset
4710
Dave Love <fx@gnu.org>
parents:
diff changeset
4711 ** Emacs now searches for X resources in the files specified by the
Dave Love <fx@gnu.org>
parents:
diff changeset
4712 XFILESEARCHPATH, XUSERFILESEARCHPATH, and XAPPLRESDIR environment
Dave Love <fx@gnu.org>
parents:
diff changeset
4713 variables, emulating the functionality provided by programs written
Dave Love <fx@gnu.org>
parents:
diff changeset
4714 using Xt. Because of this change, Emacs will now notice system-wide
Dave Love <fx@gnu.org>
parents:
diff changeset
4715 application defaults files, as other X clients do.
Dave Love <fx@gnu.org>
parents:
diff changeset
4716
Dave Love <fx@gnu.org>
parents:
diff changeset
4717 XFILESEARCHPATH and XUSERFILESEARCHPATH should be a list of file names
Dave Love <fx@gnu.org>
parents:
diff changeset
4718 separated by colons; XAPPLRESDIR should be a list of directory names
Dave Love <fx@gnu.org>
parents:
diff changeset
4719 separated by colons.
Dave Love <fx@gnu.org>
parents:
diff changeset
4720
Dave Love <fx@gnu.org>
parents:
diff changeset
4721 Emacs searches for X resources
Dave Love <fx@gnu.org>
parents:
diff changeset
4722 + specified on the command line, with the `-xrm RESOURCESTRING'
Dave Love <fx@gnu.org>
parents:
diff changeset
4723 option,
Dave Love <fx@gnu.org>
parents:
diff changeset
4724 + then in the value of the XENVIRONMENT environment variable,
Dave Love <fx@gnu.org>
parents:
diff changeset
4725 - or if that is unset, in the file named ~/.Xdefaults-HOSTNAME if it exists
Dave Love <fx@gnu.org>
parents:
diff changeset
4726 (where HOSTNAME is the hostname of the machine Emacs is running on),
Dave Love <fx@gnu.org>
parents:
diff changeset
4727 + then in the screen-specific and server-wide resource properties
Dave Love <fx@gnu.org>
parents:
diff changeset
4728 provided by the server,
Dave Love <fx@gnu.org>
parents:
diff changeset
4729 - or if those properties are unset, in the file named ~/.Xdefaults
Dave Love <fx@gnu.org>
parents:
diff changeset
4730 if it exists,
Dave Love <fx@gnu.org>
parents:
diff changeset
4731 + then in the files listed in XUSERFILESEARCHPATH,
Dave Love <fx@gnu.org>
parents:
diff changeset
4732 - or in files named LANG/Emacs in directories listed in XAPPLRESDIR
Dave Love <fx@gnu.org>
parents:
diff changeset
4733 (where LANG is the value of the LANG environment variable), if
Dave Love <fx@gnu.org>
parents:
diff changeset
4734 the LANG environment variable is set,
Dave Love <fx@gnu.org>
parents:
diff changeset
4735 - or in files named Emacs in the directories listed in XAPPLRESDIR
Dave Love <fx@gnu.org>
parents:
diff changeset
4736 - or in ~/LANG/Emacs (if the LANG environment variable is set),
Dave Love <fx@gnu.org>
parents:
diff changeset
4737 - or in ~/Emacs,
Dave Love <fx@gnu.org>
parents:
diff changeset
4738 + then in the files listed in XFILESEARCHPATH.
Dave Love <fx@gnu.org>
parents:
diff changeset
4739
Dave Love <fx@gnu.org>
parents:
diff changeset
4740 The paths in the variables XFILESEARCHPATH, XUSERFILESEARCHPATH, and
Dave Love <fx@gnu.org>
parents:
diff changeset
4741 XAPPLRESDIR may contain %-escapes (like the control strings passed to
Dave Love <fx@gnu.org>
parents:
diff changeset
4742 the the Emacs lisp `format' function or C printf function), which
Dave Love <fx@gnu.org>
parents:
diff changeset
4743 Emacs expands.
Dave Love <fx@gnu.org>
parents:
diff changeset
4744
Dave Love <fx@gnu.org>
parents:
diff changeset
4745 %N is replaced by the string "Emacs" wherever it occurs.
Dave Love <fx@gnu.org>
parents:
diff changeset
4746 %T is replaced by "app-defaults" wherever it occurs.
Dave Love <fx@gnu.org>
parents:
diff changeset
4747 %S is replaced by the empty string wherever it occurs.
Dave Love <fx@gnu.org>
parents:
diff changeset
4748 %L and %l are replaced by the value of the LANG environment variable; if LANG
Dave Love <fx@gnu.org>
parents:
diff changeset
4749 is not set, Emacs does not use that directory or file name at all.
Dave Love <fx@gnu.org>
parents:
diff changeset
4750 %C is replaced by the value of the resource named "customization"
Dave Love <fx@gnu.org>
parents:
diff changeset
4751 (class "Customization"), as retrieved from the server's resource
Dave Love <fx@gnu.org>
parents:
diff changeset
4752 properties or the user's ~/.Xdefaults file, or the empty string if
Dave Love <fx@gnu.org>
parents:
diff changeset
4753 that resource doesn't exist.
Dave Love <fx@gnu.org>
parents:
diff changeset
4754
Dave Love <fx@gnu.org>
parents:
diff changeset
4755 So, for example,
Dave Love <fx@gnu.org>
parents:
diff changeset
4756 if XFILESEARCHPATH is set to the value
Dave Love <fx@gnu.org>
parents:
diff changeset
4757 "/usr/lib/X11/%L/%T/%N%C:/usr/lib/X11/%T/%N%C:/usr/lib/X11/%T/%N",
Dave Love <fx@gnu.org>
parents:
diff changeset
4758 and the LANG environment variable is set to
Dave Love <fx@gnu.org>
parents:
diff changeset
4759 "english",
Dave Love <fx@gnu.org>
parents:
diff changeset
4760 and the customization resource is the string
Dave Love <fx@gnu.org>
parents:
diff changeset
4761 "-color",
Dave Love <fx@gnu.org>
parents:
diff changeset
4762 then, in the last step of the process described above, Emacs checks
Dave Love <fx@gnu.org>
parents:
diff changeset
4763 for resources in the first of the following files that is present and
Dave Love <fx@gnu.org>
parents:
diff changeset
4764 readable:
Dave Love <fx@gnu.org>
parents:
diff changeset
4765 /usr/lib/X11/english/app-defaults/Emacs-color
Dave Love <fx@gnu.org>
parents:
diff changeset
4766 /usr/lib/X11/app-defaults/Emacs-color
Dave Love <fx@gnu.org>
parents:
diff changeset
4767 /usr/lib/X11/app-defaults/Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
4768 If the LANG environment variable is not set, then Emacs never uses the
Dave Love <fx@gnu.org>
parents:
diff changeset
4769 first element of the path, "/usr/lib/X11/%L/%T/%N%C", because it
Dave Love <fx@gnu.org>
parents:
diff changeset
4770 contains the %L escape.
Dave Love <fx@gnu.org>
parents:
diff changeset
4771
Dave Love <fx@gnu.org>
parents:
diff changeset
4772 If XFILESEARCHPATH is unset, Emacs uses the default value
Dave Love <fx@gnu.org>
parents:
diff changeset
4773 "/usr/lib/X11/%L/app-defaults/Emacs%C:\
Dave Love <fx@gnu.org>
parents:
diff changeset
4774 /usr/lib/X11/app-defaults/Emacs%C:\
Dave Love <fx@gnu.org>
parents:
diff changeset
4775 /usr/lib/X11/%L/app-defaults/Emacs:\
Dave Love <fx@gnu.org>
parents:
diff changeset
4776 /usr/lib/X11/app-defaults/Emacs"
Dave Love <fx@gnu.org>
parents:
diff changeset
4777
Dave Love <fx@gnu.org>
parents:
diff changeset
4778 This feature was added for consistency with other X applications.
Dave Love <fx@gnu.org>
parents:
diff changeset
4779
Dave Love <fx@gnu.org>
parents:
diff changeset
4780 ** The new function `text-property-any' scans the region of text from
Dave Love <fx@gnu.org>
parents:
diff changeset
4781 START to END to see if any character's property PROP is `eq' to
Dave Love <fx@gnu.org>
parents:
diff changeset
4782 VALUE. If so, it returns the position of the first such character.
Dave Love <fx@gnu.org>
parents:
diff changeset
4783 Otherwise, it returns nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
4784
Dave Love <fx@gnu.org>
parents:
diff changeset
4785 The optional fifth argument, OBJECT, specifies the string or buffer to
Dave Love <fx@gnu.org>
parents:
diff changeset
4786 be examined.
Dave Love <fx@gnu.org>
parents:
diff changeset
4787
Dave Love <fx@gnu.org>
parents:
diff changeset
4788 ** The new function `text-property-not-all' scans the region of text from
Dave Love <fx@gnu.org>
parents:
diff changeset
4789 START to END to see if any character's property PROP is not `eq' to
Dave Love <fx@gnu.org>
parents:
diff changeset
4790 VALUE. If so, it returns the position of the first such character.
Dave Love <fx@gnu.org>
parents:
diff changeset
4791 Otherwise, it returns nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
4792
Dave Love <fx@gnu.org>
parents:
diff changeset
4793 The optional fifth argument, OBJECT, specifies the string or buffer to
Dave Love <fx@gnu.org>
parents:
diff changeset
4794 be examined.
Dave Love <fx@gnu.org>
parents:
diff changeset
4795
Dave Love <fx@gnu.org>
parents:
diff changeset
4796 ** The function `delete-windows-on' now takes an optional second
Dave Love <fx@gnu.org>
parents:
diff changeset
4797 argument FRAME, which specifies which frames it should affect.
Dave Love <fx@gnu.org>
parents:
diff changeset
4798 + If FRAME is nil or omitted, then `delete-windows-on' deletes windows
Dave Love <fx@gnu.org>
parents:
diff changeset
4799 showing BUFFER (its first argument) on all frames.
Dave Love <fx@gnu.org>
parents:
diff changeset
4800 + If FRAME is t, then `delete-windows-on' only deletes windows on the
Dave Love <fx@gnu.org>
parents:
diff changeset
4801 selected frame; other frames are unaffected.
Dave Love <fx@gnu.org>
parents:
diff changeset
4802 + If FRAME is a frame, then `delete-windows-on' only deletes windows on
Dave Love <fx@gnu.org>
parents:
diff changeset
4803 the given frame; other frames are unaffected.
Dave Love <fx@gnu.org>
parents:
diff changeset
4804
Dave Love <fx@gnu.org>
parents:
diff changeset
4805
Dave Love <fx@gnu.org>
parents:
diff changeset
4806 * Changes in version 19.16.
Dave Love <fx@gnu.org>
parents:
diff changeset
4807
Dave Love <fx@gnu.org>
parents:
diff changeset
4808 ** When dragging the mouse to select a region, Emacs now highlights the
Dave Love <fx@gnu.org>
parents:
diff changeset
4809 region as you drag (if Transient Mark mode is enabled). If you
Dave Love <fx@gnu.org>
parents:
diff changeset
4810 continue the drag beyond the boundaries of the window, Emacs scrolls
Dave Love <fx@gnu.org>
parents:
diff changeset
4811 the window at a steady rate until you either move the mouse back into
Dave Love <fx@gnu.org>
parents:
diff changeset
4812 the window or release the button.
Dave Love <fx@gnu.org>
parents:
diff changeset
4813
Dave Love <fx@gnu.org>
parents:
diff changeset
4814 ** RET now exits `query-replace' and `query-replace-regexp'; this makes it
Dave Love <fx@gnu.org>
parents:
diff changeset
4815 more consistent with the incremental search facility, which uses RET
Dave Love <fx@gnu.org>
parents:
diff changeset
4816 to end the search.
Dave Love <fx@gnu.org>
parents:
diff changeset
4817
Dave Love <fx@gnu.org>
parents:
diff changeset
4818 ** In C mode, C-c C-u now runs c-up-conditional.
Dave Love <fx@gnu.org>
parents:
diff changeset
4819 C-c C-n and C-c C-p now run new commands that move forward
Dave Love <fx@gnu.org>
parents:
diff changeset
4820 and back over balanced sets of C conditionals (c-forward-conditional
Dave Love <fx@gnu.org>
parents:
diff changeset
4821 and c-backward-conditional).
Dave Love <fx@gnu.org>
parents:
diff changeset
4822
Dave Love <fx@gnu.org>
parents:
diff changeset
4823 ** The Edit entry in the menu bar has a new alternative:
Dave Love <fx@gnu.org>
parents:
diff changeset
4824 "Choose Next Paste". It gives you a menu showing the various
Dave Love <fx@gnu.org>
parents:
diff changeset
4825 strings in the kill ring; click on one to select it as the text
Dave Love <fx@gnu.org>
parents:
diff changeset
4826 to be yanked ("pasted") the next time you yank.
Dave Love <fx@gnu.org>
parents:
diff changeset
4827
Dave Love <fx@gnu.org>
parents:
diff changeset
4828 ** If you enable Transient Mark mode and set `mark-even-if-inactive' to
Dave Love <fx@gnu.org>
parents:
diff changeset
4829 non-nil, then the region is highlighted in a transient fashion just as
Dave Love <fx@gnu.org>
parents:
diff changeset
4830 normally in Transient Mark mode, but the mark really remains active
Dave Love <fx@gnu.org>
parents:
diff changeset
4831 all the time; commands that use the region can be used even if the
Dave Love <fx@gnu.org>
parents:
diff changeset
4832 region highlighting turns off.
Dave Love <fx@gnu.org>
parents:
diff changeset
4833
Dave Love <fx@gnu.org>
parents:
diff changeset
4834 ** If you type C-h after a prefix key, it displays the bindings
Dave Love <fx@gnu.org>
parents:
diff changeset
4835 that start with that prefix.
Dave Love <fx@gnu.org>
parents:
diff changeset
4836
Dave Love <fx@gnu.org>
parents:
diff changeset
4837 ** The VC package now searches for version control commands in the
Dave Love <fx@gnu.org>
parents:
diff changeset
4838 directories named by the variable `vc-path'; its value should be a
Dave Love <fx@gnu.org>
parents:
diff changeset
4839 list of strings.
Dave Love <fx@gnu.org>
parents:
diff changeset
4840
Dave Love <fx@gnu.org>
parents:
diff changeset
4841 ** If you are visiting a file that has locks registered under RCS,
Dave Love <fx@gnu.org>
parents:
diff changeset
4842 VC now displays each lock's owner and version number in the mode line
Dave Love <fx@gnu.org>
parents:
diff changeset
4843 after the string `RCS'. If there are no locks, VC displays the head
Dave Love <fx@gnu.org>
parents:
diff changeset
4844 version number.
Dave Love <fx@gnu.org>
parents:
diff changeset
4845
Dave Love <fx@gnu.org>
parents:
diff changeset
4846 ** When using X, if you load the `paren' library, Emacs automatically
Dave Love <fx@gnu.org>
parents:
diff changeset
4847 underlines or highlights the matching paren whenever point is
Dave Love <fx@gnu.org>
parents:
diff changeset
4848 next to the outside of a paren. When point is before an open-paren,
Dave Love <fx@gnu.org>
parents:
diff changeset
4849 this shows the matching close; when point is after a close-paren,
Dave Love <fx@gnu.org>
parents:
diff changeset
4850 this shows the matching open.
Dave Love <fx@gnu.org>
parents:
diff changeset
4851
Dave Love <fx@gnu.org>
parents:
diff changeset
4852 ** The new function `define-key-after' is like `define-key',
Dave Love <fx@gnu.org>
parents:
diff changeset
4853 but takes an extra argument AFTER. It places the newly defined
Dave Love <fx@gnu.org>
parents:
diff changeset
4854 binding after the binding for the event AFTER.
Dave Love <fx@gnu.org>
parents:
diff changeset
4855
Dave Love <fx@gnu.org>
parents:
diff changeset
4856 ** `accessible-keymaps' now takes an optional second argument, PREFIX.
Dave Love <fx@gnu.org>
parents:
diff changeset
4857 If PREFIX is non-nil, it means the value should include only maps for
Dave Love <fx@gnu.org>
parents:
diff changeset
4858 keys that start with PREFIX.
Dave Love <fx@gnu.org>
parents:
diff changeset
4859
Dave Love <fx@gnu.org>
parents:
diff changeset
4860 `describe-bindings' also accepts an optional argument PREFIX which
Dave Love <fx@gnu.org>
parents:
diff changeset
4861 means to describe only the keys that start with PREFIX.
Dave Love <fx@gnu.org>
parents:
diff changeset
4862
Dave Love <fx@gnu.org>
parents:
diff changeset
4863 ** The variable `prefix-help-command' hold a command to run to display help
Dave Love <fx@gnu.org>
parents:
diff changeset
4864 whenever the character `help-char' follows a prefix key and does not have
Dave Love <fx@gnu.org>
parents:
diff changeset
4865 a key binding in that context.
Dave Love <fx@gnu.org>
parents:
diff changeset
4866
Dave Love <fx@gnu.org>
parents:
diff changeset
4867 ** Emacs now detects double- and triple-mouse clicks. A single mouse
Dave Love <fx@gnu.org>
parents:
diff changeset
4868 click produces a pair events of the form:
Dave Love <fx@gnu.org>
parents:
diff changeset
4869 (down-mouse-N POSITION)
Dave Love <fx@gnu.org>
parents:
diff changeset
4870 (mouse-N POSITION)
Dave Love <fx@gnu.org>
parents:
diff changeset
4871 Clicking the same mouse button again, soon thereafter and at the same
Dave Love <fx@gnu.org>
parents:
diff changeset
4872 location, produces another pair of events of the form:
Dave Love <fx@gnu.org>
parents:
diff changeset
4873 (down-mouse-N POSITION)
Dave Love <fx@gnu.org>
parents:
diff changeset
4874 (double-mouse-N POSITION 2)
Dave Love <fx@gnu.org>
parents:
diff changeset
4875 Another click will produce an event pair of the form:
Dave Love <fx@gnu.org>
parents:
diff changeset
4876 (down-mouse-N POSITION)
Dave Love <fx@gnu.org>
parents:
diff changeset
4877 (triple-mouse-N POSITION 3)
Dave Love <fx@gnu.org>
parents:
diff changeset
4878 All the POSITIONs in such a sequence would be identical, except for
Dave Love <fx@gnu.org>
parents:
diff changeset
4879 their timestamps.
Dave Love <fx@gnu.org>
parents:
diff changeset
4880
Dave Love <fx@gnu.org>
parents:
diff changeset
4881 To count as double- and triple-clicks, mouse clicks must be at the
Dave Love <fx@gnu.org>
parents:
diff changeset
4882 same location as the first click, and the number of milliseconds
Dave Love <fx@gnu.org>
parents:
diff changeset
4883 between the first release and the second must be less than the value
Dave Love <fx@gnu.org>
parents:
diff changeset
4884 of the lisp variable `double-click-time'. Setting `double-click-time'
Dave Love <fx@gnu.org>
parents:
diff changeset
4885 to nil disables multi-click detection. Setting it to t removes the
Dave Love <fx@gnu.org>
parents:
diff changeset
4886 time limit; Emacs then detects multi-clicks by position only.
Dave Love <fx@gnu.org>
parents:
diff changeset
4887
Dave Love <fx@gnu.org>
parents:
diff changeset
4888 If `read-key-sequence' finds no binding for a double-click event, but
Dave Love <fx@gnu.org>
parents:
diff changeset
4889 the corresponding single-click event would be bound,
Dave Love <fx@gnu.org>
parents:
diff changeset
4890 `read-key-sequence' demotes it to a single-click. Similarly, it
Dave Love <fx@gnu.org>
parents:
diff changeset
4891 demotes unbound triple-clicks to double- or single-clicks. This means
Dave Love <fx@gnu.org>
parents:
diff changeset
4892 you don't have to distinguish between single- and multi-clicks if you
Dave Love <fx@gnu.org>
parents:
diff changeset
4893 don't want to.
Dave Love <fx@gnu.org>
parents:
diff changeset
4894
Dave Love <fx@gnu.org>
parents:
diff changeset
4895 Emacs reports all clicks after the third as `triple-mouse-N' clicks,
Dave Love <fx@gnu.org>
parents:
diff changeset
4896 but increments the click count after POSITION. For example, a fourth
Dave Love <fx@gnu.org>
parents:
diff changeset
4897 click, soon after the third and at the same location, produces a pair
Dave Love <fx@gnu.org>
parents:
diff changeset
4898 of events of the form:
Dave Love <fx@gnu.org>
parents:
diff changeset
4899 (down-mouse-N POSITION)
Dave Love <fx@gnu.org>
parents:
diff changeset
4900 (triple-mouse-N POSITION 4)
Dave Love <fx@gnu.org>
parents:
diff changeset
4901
Dave Love <fx@gnu.org>
parents:
diff changeset
4902 ** The way Emacs reports positions of mouse events has changed
Dave Love <fx@gnu.org>
parents:
diff changeset
4903 slightly. If a mouse event includes a position list of the form:
Dave Love <fx@gnu.org>
parents:
diff changeset
4904 (WINDOW (PLACE-SYMBOL) (COLUMN . ROW) TIMESTAMP)
Dave Love <fx@gnu.org>
parents:
diff changeset
4905 this denotes exactly the same position as the list:
Dave Love <fx@gnu.org>
parents:
diff changeset
4906 (WINDOW PLACE-SYMBOL (COLUMN . ROW) TIMESTAMP)
Dave Love <fx@gnu.org>
parents:
diff changeset
4907 That is, the event occurred over a non-textual area of the frame,
Dave Love <fx@gnu.org>
parents:
diff changeset
4908 specified by PLACE-SYMBOL, a symbol like `mode-line' or
Dave Love <fx@gnu.org>
parents:
diff changeset
4909 `vertical-scroll-bar'.
Dave Love <fx@gnu.org>
parents:
diff changeset
4910
Dave Love <fx@gnu.org>
parents:
diff changeset
4911 Enclosing PLACE-SYMBOL in a singleton list does not change the
Dave Love <fx@gnu.org>
parents:
diff changeset
4912 position denoted, but the `read-key-sequence' function uses the
Dave Love <fx@gnu.org>
parents:
diff changeset
4913 presence or absence of the singleton list to tell whether or not it
Dave Love <fx@gnu.org>
parents:
diff changeset
4914 should prefix the event with its place symbol.
Dave Love <fx@gnu.org>
parents:
diff changeset
4915
Dave Love <fx@gnu.org>
parents:
diff changeset
4916 Normally, `read-key-sequence' prefixes mouse events occurring over
Dave Love <fx@gnu.org>
parents:
diff changeset
4917 non-textual areas with their PLACE-SYMBOLs, to select the sub-keymap
Dave Love <fx@gnu.org>
parents:
diff changeset
4918 appropriate for the event; for example, clicking on the mode line
Dave Love <fx@gnu.org>
parents:
diff changeset
4919 produces a sequence like
Dave Love <fx@gnu.org>
parents:
diff changeset
4920 [mode-line (mouse-1 POSN)]
Dave Love <fx@gnu.org>
parents:
diff changeset
4921 However, if lisp code elects to unread the resulting key sequence by
Dave Love <fx@gnu.org>
parents:
diff changeset
4922 placing it in the `unread-command-events' variable, it is important
Dave Love <fx@gnu.org>
parents:
diff changeset
4923 that `read-key-sequence' not insert the prefix symbol again; that
Dave Love <fx@gnu.org>
parents:
diff changeset
4924 would produce a malformed key sequence like
Dave Love <fx@gnu.org>
parents:
diff changeset
4925 [mode-line mode-line (mouse-1 POSN)]
Dave Love <fx@gnu.org>
parents:
diff changeset
4926 For this reason, `read-key-sequence' encloses the event's PLACE-SYMBOL
Dave Love <fx@gnu.org>
parents:
diff changeset
4927 in a singleton list when it first inserts the prefix, but doesn't
Dave Love <fx@gnu.org>
parents:
diff changeset
4928 insert the prefix when processing events whose PLACE-SYMBOLs are
Dave Love <fx@gnu.org>
parents:
diff changeset
4929 already thus enclosed.
Dave Love <fx@gnu.org>
parents:
diff changeset
4930
Dave Love <fx@gnu.org>
parents:
diff changeset
4931
Dave Love <fx@gnu.org>
parents:
diff changeset
4932 * Changes in version 19.15.
Dave Love <fx@gnu.org>
parents:
diff changeset
4933
Dave Love <fx@gnu.org>
parents:
diff changeset
4934 ** `make-frame-visible', which uniconified frames, is now a command,
Dave Love <fx@gnu.org>
parents:
diff changeset
4935 and thus may be bound to a key. This makes sense because frames
Dave Love <fx@gnu.org>
parents:
diff changeset
4936 respond to user input while iconified.
Dave Love <fx@gnu.org>
parents:
diff changeset
4937
Dave Love <fx@gnu.org>
parents:
diff changeset
4938 ** You can now use Meta mouse clicks to set and use the "secondary
Dave Love <fx@gnu.org>
parents:
diff changeset
4939 selection". You can drag M-Mouse-1 across the region you want to
Dave Love <fx@gnu.org>
parents:
diff changeset
4940 select. Or you can press M-Mouse-1 at one end and M-Mouse-3 at the
Dave Love <fx@gnu.org>
parents:
diff changeset
4941 other (this also copies the text to the kill ring). Repeating M-Mouse-3
Dave Love <fx@gnu.org>
parents:
diff changeset
4942 again at the same place kills that text.
Dave Love <fx@gnu.org>
parents:
diff changeset
4943
Dave Love <fx@gnu.org>
parents:
diff changeset
4944 M-Mouse-2 kills the secondary selection.
Dave Love <fx@gnu.org>
parents:
diff changeset
4945
Dave Love <fx@gnu.org>
parents:
diff changeset
4946 Setting the secondary selection does not move point or the mark. It
Dave Love <fx@gnu.org>
parents:
diff changeset
4947 is possible to make a secondary selection that does not all fit on the
Dave Love <fx@gnu.org>
parents:
diff changeset
4948 screen, by using M-Mouse-1 at one end, scrolling, then using M-Mouse-3
Dave Love <fx@gnu.org>
parents:
diff changeset
4949 at the other end.
Dave Love <fx@gnu.org>
parents:
diff changeset
4950
Dave Love <fx@gnu.org>
parents:
diff changeset
4951 Emacs has only one secondary selection at any time. Starting to set
Dave Love <fx@gnu.org>
parents:
diff changeset
4952 a new one cancels any previous one. The secondary selection displays
Dave Love <fx@gnu.org>
parents:
diff changeset
4953 using a face named `secondary-selection'.
Dave Love <fx@gnu.org>
parents:
diff changeset
4954
Dave Love <fx@gnu.org>
parents:
diff changeset
4955 ** There's a new way to request use of Supercite (sc.el). Do this:
Dave Love <fx@gnu.org>
parents:
diff changeset
4956
Dave Love <fx@gnu.org>
parents:
diff changeset
4957 (add-hook 'mail-citation-hook 'sc-cite-original)
Dave Love <fx@gnu.org>
parents:
diff changeset
4958
Dave Love <fx@gnu.org>
parents:
diff changeset
4959 Currently this works with Rmail. In the future, other Emacs based
Dave Love <fx@gnu.org>
parents:
diff changeset
4960 mail-readers should be modified to understand this hook also.
Dave Love <fx@gnu.org>
parents:
diff changeset
4961 In the mean time, you should keep doing what you have done in the past
Dave Love <fx@gnu.org>
parents:
diff changeset
4962 for those other mail readers.
Dave Love <fx@gnu.org>
parents:
diff changeset
4963
Dave Love <fx@gnu.org>
parents:
diff changeset
4964 ** When a regular expression contains `\(...\)' inside a repetition
Dave Love <fx@gnu.org>
parents:
diff changeset
4965 operator such as `*' or `+', and you ask about the range that was matched
Dave Love <fx@gnu.org>
parents:
diff changeset
4966 using `match-beginning' and `match-end', the range you get corresponds
Dave Love <fx@gnu.org>
parents:
diff changeset
4967 to the *last* repetition *only*. In Emacs 18, you would get a range
Dave Love <fx@gnu.org>
parents:
diff changeset
4968 corresponding to all the repetitions.
Dave Love <fx@gnu.org>
parents:
diff changeset
4969
Dave Love <fx@gnu.org>
parents:
diff changeset
4970 If you want to get a range corresponding to all the repetitions,
Dave Love <fx@gnu.org>
parents:
diff changeset
4971 put a `\(...\)' grouping *outside* the repetition operator. This
Dave Love <fx@gnu.org>
parents:
diff changeset
4972 is the syntax that corresponds logically to the desired result, and
Dave Love <fx@gnu.org>
parents:
diff changeset
4973 it works the same in Emacs 18 and Emacs 19.
Dave Love <fx@gnu.org>
parents:
diff changeset
4974
Dave Love <fx@gnu.org>
parents:
diff changeset
4975 (This change actually took place earlier, but we didn't know about it
Dave Love <fx@gnu.org>
parents:
diff changeset
4976 and thus didn't document it.)
Dave Love <fx@gnu.org>
parents:
diff changeset
4977
Dave Love <fx@gnu.org>
parents:
diff changeset
4978 * Changes in version 19.14.
Dave Love <fx@gnu.org>
parents:
diff changeset
4979
Dave Love <fx@gnu.org>
parents:
diff changeset
4980 ** To modify read-only text, bind the variable `inhibit-read-only'
Dave Love <fx@gnu.org>
parents:
diff changeset
4981 to a non-nil value. If the value is t, then all reasons that might
Dave Love <fx@gnu.org>
parents:
diff changeset
4982 make text read-only are inhibited (including `read-only' text properties).
Dave Love <fx@gnu.org>
parents:
diff changeset
4983 If the value is a list, then a `read-only' property is inhibited
Dave Love <fx@gnu.org>
parents:
diff changeset
4984 if it is `memq' in the list.
Dave Love <fx@gnu.org>
parents:
diff changeset
4985
Dave Love <fx@gnu.org>
parents:
diff changeset
4986 ** If you call `get-buffer-window' passing t as its second argument, it
Dave Love <fx@gnu.org>
parents:
diff changeset
4987 will only search for windows on visible frames. Previously, passing t
Dave Love <fx@gnu.org>
parents:
diff changeset
4988 as the secord argument caused `get-buffer-window' to search all
Dave Love <fx@gnu.org>
parents:
diff changeset
4989 frames, visible or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
4990
Dave Love <fx@gnu.org>
parents:
diff changeset
4991 ** If you call `other-buffer' with a nil or omitted second argument, it
Dave Love <fx@gnu.org>
parents:
diff changeset
4992 will ignore buffers displayed windows on any visible frame, not just
Dave Love <fx@gnu.org>
parents:
diff changeset
4993 the selected frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
4994
Dave Love <fx@gnu.org>
parents:
diff changeset
4995 ** You can specify a window or a frame for C-x # to use when
Dave Love <fx@gnu.org>
parents:
diff changeset
4996 selects a server buffer. Set the variable server-window
Dave Love <fx@gnu.org>
parents:
diff changeset
4997 to the window or frame that you want.
Dave Love <fx@gnu.org>
parents:
diff changeset
4998
Dave Love <fx@gnu.org>
parents:
diff changeset
4999 ** The command M-( now inserts spaces outside the open-parentheses in
Dave Love <fx@gnu.org>
parents:
diff changeset
5000 some cases--depending on the syntax classes of the surrounding
Dave Love <fx@gnu.org>
parents:
diff changeset
5001 characters. If the variable `parens-dont-require-spaces' is non-nil,
Dave Love <fx@gnu.org>
parents:
diff changeset
5002 it inhibits insertion of these spaces.
Dave Love <fx@gnu.org>
parents:
diff changeset
5003
Dave Love <fx@gnu.org>
parents:
diff changeset
5004 ** The GUD package now supports the debugger known as xdb on HP/UX
Dave Love <fx@gnu.org>
parents:
diff changeset
5005 systems. Use M-x xdb. The variable `gud-xdb-directories' lets you
Dave Love <fx@gnu.org>
parents:
diff changeset
5006 specify a list of directories to search for source code.
Dave Love <fx@gnu.org>
parents:
diff changeset
5007
Dave Love <fx@gnu.org>
parents:
diff changeset
5008 ** If you are using the mailabbrev package, you should note that its
Dave Love <fx@gnu.org>
parents:
diff changeset
5009 function for defining an alias is now called `define-mail-abbrev'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5010 This package no longer contains a definition for `define-mail-alias';
Dave Love <fx@gnu.org>
parents:
diff changeset
5011 that name is used only in mailaliases.
Dave Love <fx@gnu.org>
parents:
diff changeset
5012
Dave Love <fx@gnu.org>
parents:
diff changeset
5013 ** Inserted characters now inherit the properties of the text before
Dave Love <fx@gnu.org>
parents:
diff changeset
5014 them, by default, rather than those of the following text.
Dave Love <fx@gnu.org>
parents:
diff changeset
5015
Dave Love <fx@gnu.org>
parents:
diff changeset
5016 ** The function `insert-file-contents' now takes optional arguments BEG
Dave Love <fx@gnu.org>
parents:
diff changeset
5017 and END that specify which part of the file to insert. BEG defaults to
Dave Love <fx@gnu.org>
parents:
diff changeset
5018 0 (the beginning of the file), and END defaults to the end of the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5019
Dave Love <fx@gnu.org>
parents:
diff changeset
5020 If you specify BEG or END, then the argument VISIT must be nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
5021
Dave Love <fx@gnu.org>
parents:
diff changeset
5022 * Changes in version 19.13.
Dave Love <fx@gnu.org>
parents:
diff changeset
5023
Dave Love <fx@gnu.org>
parents:
diff changeset
5024 ** Magic file names can now handle the `load' operation.
Dave Love <fx@gnu.org>
parents:
diff changeset
5025
Dave Love <fx@gnu.org>
parents:
diff changeset
5026 ** Bibtex mode now sets up special entries in the menu bar.
Dave Love <fx@gnu.org>
parents:
diff changeset
5027
Dave Love <fx@gnu.org>
parents:
diff changeset
5028 ** The incremental search commands C-w and C-y, which copy text from
Dave Love <fx@gnu.org>
parents:
diff changeset
5029 the buffer into the search string, now convert it to lower case
Dave Love <fx@gnu.org>
parents:
diff changeset
5030 if you are in a case-insensitive search. This is to avoid making
Dave Love <fx@gnu.org>
parents:
diff changeset
5031 the search a case-sensitive one.
Dave Love <fx@gnu.org>
parents:
diff changeset
5032
Dave Love <fx@gnu.org>
parents:
diff changeset
5033 ** GNUS now knows your time zone automatically if Emacs does.
Dave Love <fx@gnu.org>
parents:
diff changeset
5034
Dave Love <fx@gnu.org>
parents:
diff changeset
5035 ** Hide-ifdef mode no longer defines keys of the form
Dave Love <fx@gnu.org>
parents:
diff changeset
5036 C-c LETTER, since those keys are reserved for users.
Dave Love <fx@gnu.org>
parents:
diff changeset
5037 Those commands have been moved to C-c M-LETTER.
Dave Love <fx@gnu.org>
parents:
diff changeset
5038 We may move them again for greater consistency with other modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
5039
Dave Love <fx@gnu.org>
parents:
diff changeset
5040 * Changes in version 19.12.
Dave Love <fx@gnu.org>
parents:
diff changeset
5041
Dave Love <fx@gnu.org>
parents:
diff changeset
5042 ** You can now make many of the sort commands ignore case by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
5043 `sort-fold-case' to a non-nil value.
Dave Love <fx@gnu.org>
parents:
diff changeset
5044
Dave Love <fx@gnu.org>
parents:
diff changeset
5045 * Changes in version 19.11.
Dave Love <fx@gnu.org>
parents:
diff changeset
5046
Dave Love <fx@gnu.org>
parents:
diff changeset
5047 ** Supercite is installed.
Dave Love <fx@gnu.org>
parents:
diff changeset
5048
Dave Love <fx@gnu.org>
parents:
diff changeset
5049 ** `write-file-hooks' functions that return non-nil are responsible
Dave Love <fx@gnu.org>
parents:
diff changeset
5050 for making a backup file if you want that to be done.
Dave Love <fx@gnu.org>
parents:
diff changeset
5051 To do so, execute the following code:
Dave Love <fx@gnu.org>
parents:
diff changeset
5052
Dave Love <fx@gnu.org>
parents:
diff changeset
5053 (or buffer-backed-up (backup-buffer))
Dave Love <fx@gnu.org>
parents:
diff changeset
5054
Dave Love <fx@gnu.org>
parents:
diff changeset
5055 You might wish to save the file modes value returned by
Dave Love <fx@gnu.org>
parents:
diff changeset
5056 `backup-buffer' and use that to set the mode bits of the file
Dave Love <fx@gnu.org>
parents:
diff changeset
5057 that you write. This is what `basic-save-buffer' does when
Dave Love <fx@gnu.org>
parents:
diff changeset
5058 it writes a file in the usual way.
Dave Love <fx@gnu.org>
parents:
diff changeset
5059
Dave Love <fx@gnu.org>
parents:
diff changeset
5060 (This is not actually new, but wasn't documented before.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5061
Dave Love <fx@gnu.org>
parents:
diff changeset
5062 * Changes in version 19.10.
Dave Love <fx@gnu.org>
parents:
diff changeset
5063
Dave Love <fx@gnu.org>
parents:
diff changeset
5064 ** The command `repeat-complex-command' is now on C-x ESC ESC.
Dave Love <fx@gnu.org>
parents:
diff changeset
5065 It used to be bound to C-x ESC.
Dave Love <fx@gnu.org>
parents:
diff changeset
5066
Dave Love <fx@gnu.org>
parents:
diff changeset
5067 The reason for this change is to make function keys work after C-x.
Dave Love <fx@gnu.org>
parents:
diff changeset
5068
Dave Love <fx@gnu.org>
parents:
diff changeset
5069 ** The variable `highlight-nonselected-windows' now controls whether
Dave Love <fx@gnu.org>
parents:
diff changeset
5070 the region is highlighted in windows other than the selected window
Dave Love <fx@gnu.org>
parents:
diff changeset
5071 (in Transient Mark mode only, of course, and currently only when
Dave Love <fx@gnu.org>
parents:
diff changeset
5072 using X).
Dave Love <fx@gnu.org>
parents:
diff changeset
5073
Dave Love <fx@gnu.org>
parents:
diff changeset
5074 * Changes in version 19.8.
Dave Love <fx@gnu.org>
parents:
diff changeset
5075
Dave Love <fx@gnu.org>
parents:
diff changeset
5076 ** It is now simpler to tell Emacs to display accented characters under
Dave Love <fx@gnu.org>
parents:
diff changeset
5077 X windows. M-x standard-display-european toggles the display of
Dave Love <fx@gnu.org>
parents:
diff changeset
5078 buffer text according to the ISO Latin-1 standard. With a prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
5079 argument, this command enables European character display iff the
Dave Love <fx@gnu.org>
parents:
diff changeset
5080 argument is positive.
Dave Love <fx@gnu.org>
parents:
diff changeset
5081
Dave Love <fx@gnu.org>
parents:
diff changeset
5082 ** The `-i' command-line argument tells Emacs to use a picture of the
Dave Love <fx@gnu.org>
parents:
diff changeset
5083 GNU gnu as its icon, instead of letting the window manager choose an
Dave Love <fx@gnu.org>
parents:
diff changeset
5084 icon for it. This option used to insert a file into the current
Dave Love <fx@gnu.org>
parents:
diff changeset
5085 buffer; use `-insert' to do that now.
Dave Love <fx@gnu.org>
parents:
diff changeset
5086
Dave Love <fx@gnu.org>
parents:
diff changeset
5087 ** The `configure' script now supports `--prefix' and `--exec-prefix'
Dave Love <fx@gnu.org>
parents:
diff changeset
5088 options.
Dave Love <fx@gnu.org>
parents:
diff changeset
5089
Dave Love <fx@gnu.org>
parents:
diff changeset
5090 The `--prefix=PREFIXDIR' option specifies where the installation process
Dave Love <fx@gnu.org>
parents:
diff changeset
5091 should put emacs and its data files. This defaults to `/usr/local'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5092 - Emacs (and the other utilities users run) go in PREFIXDIR/bin
Dave Love <fx@gnu.org>
parents:
diff changeset
5093 (unless the `--exec-prefix' option says otherwise).
Dave Love <fx@gnu.org>
parents:
diff changeset
5094 - The architecture-independent files go in PREFIXDIR/lib/emacs/VERSION
Dave Love <fx@gnu.org>
parents:
diff changeset
5095 (where VERSION is the version number of Emacs, like `19.7').
Dave Love <fx@gnu.org>
parents:
diff changeset
5096 - The architecture-dependent files go in
Dave Love <fx@gnu.org>
parents:
diff changeset
5097 PREFIXDIR/lib/emacs/VERSION/CONFIGURATION
Dave Love <fx@gnu.org>
parents:
diff changeset
5098 (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
Dave Love <fx@gnu.org>
parents:
diff changeset
5099 unless the `--exec-prefix' option says otherwise.
Dave Love <fx@gnu.org>
parents:
diff changeset
5100
Dave Love <fx@gnu.org>
parents:
diff changeset
5101 The `--exec-prefix=EXECDIR' option allows you to specify a separate
Dave Love <fx@gnu.org>
parents:
diff changeset
5102 portion of the directory tree for installing architecture-specific
Dave Love <fx@gnu.org>
parents:
diff changeset
5103 files, like executables and utility programs. If specified,
Dave Love <fx@gnu.org>
parents:
diff changeset
5104 - Emacs (and the other utilities users run) go in EXECDIR/bin, and
Dave Love <fx@gnu.org>
parents:
diff changeset
5105 - The architecture-dependent files go in
Dave Love <fx@gnu.org>
parents:
diff changeset
5106 EXECDIR/lib/emacs/VERSION/CONFIGURATION.
Dave Love <fx@gnu.org>
parents:
diff changeset
5107 EXECDIR/bin should be a directory that is normally in users' PATHs.
Dave Love <fx@gnu.org>
parents:
diff changeset
5108
Dave Love <fx@gnu.org>
parents:
diff changeset
5109 ** When running under X, the new lisp function `x-list-fonts'
Dave Love <fx@gnu.org>
parents:
diff changeset
5110 allows code to find out which fonts are available from the X server.
Dave Love <fx@gnu.org>
parents:
diff changeset
5111 The first argument PATTERN is a string, perhaps with wildcard characters;
Dave Love <fx@gnu.org>
parents:
diff changeset
5112 the * character matches any substring, and
Dave Love <fx@gnu.org>
parents:
diff changeset
5113 the ? character matches any single character.
Dave Love <fx@gnu.org>
parents:
diff changeset
5114 PATTERN is case-insensitive.
Dave Love <fx@gnu.org>
parents:
diff changeset
5115 If the optional arguments FACE and FRAME are specified, then
Dave Love <fx@gnu.org>
parents:
diff changeset
5116 `x-list-fonts' returns only fonts the same size as FACE on FRAME.
Dave Love <fx@gnu.org>
parents:
diff changeset
5117
Dave Love <fx@gnu.org>
parents:
diff changeset
5118
Dave Love <fx@gnu.org>
parents:
diff changeset
5119
Dave Love <fx@gnu.org>
parents:
diff changeset
5120 * Changes in version 19.
Dave Love <fx@gnu.org>
parents:
diff changeset
5121
Dave Love <fx@gnu.org>
parents:
diff changeset
5122 ** When you kill buffers, Emacs now returns memory to the operating system,
Dave Love <fx@gnu.org>
parents:
diff changeset
5123 thus reducing the size of the Emacs process. All the space that you free
Dave Love <fx@gnu.org>
parents:
diff changeset
5124 up by killing buffers can now be reused for other buffers no matter what
Dave Love <fx@gnu.org>
parents:
diff changeset
5125 their sizes, or reused by other processes if Emacs doesn't need it.
Dave Love <fx@gnu.org>
parents:
diff changeset
5126
Dave Love <fx@gnu.org>
parents:
diff changeset
5127 ** Emacs now does garbage collection and auto saving while it is waiting
Dave Love <fx@gnu.org>
parents:
diff changeset
5128 for input, which often avoids the need to do these things while you
Dave Love <fx@gnu.org>
parents:
diff changeset
5129 are typing.
Dave Love <fx@gnu.org>
parents:
diff changeset
5130
Dave Love <fx@gnu.org>
parents:
diff changeset
5131 The variable `auto-save-timeout' says how many seconds Emacs should
Dave Love <fx@gnu.org>
parents:
diff changeset
5132 wait, after you stop typing, before it does an auto save and a garbage
Dave Love <fx@gnu.org>
parents:
diff changeset
5133 collection.
Dave Love <fx@gnu.org>
parents:
diff changeset
5134
Dave Love <fx@gnu.org>
parents:
diff changeset
5135 ** If auto saving detects that a buffer has shrunk greatly, it refrains
Dave Love <fx@gnu.org>
parents:
diff changeset
5136 from auto saving that buffer and displays a warning. Now it also turns
Dave Love <fx@gnu.org>
parents:
diff changeset
5137 off Auto Save mode in that buffer, so that you won't get the same
Dave Love <fx@gnu.org>
parents:
diff changeset
5138 warning again.
Dave Love <fx@gnu.org>
parents:
diff changeset
5139
Dave Love <fx@gnu.org>
parents:
diff changeset
5140 If you reenable Auto Save mode in that buffer, Emacs will start saving
Dave Love <fx@gnu.org>
parents:
diff changeset
5141 it again with no further warnings.
Dave Love <fx@gnu.org>
parents:
diff changeset
5142
Dave Love <fx@gnu.org>
parents:
diff changeset
5143 ** A new minor mode called Line Number mode displays the current line
Dave Love <fx@gnu.org>
parents:
diff changeset
5144 number in the mode line, updating it as necessary when you move
Dave Love <fx@gnu.org>
parents:
diff changeset
5145 point.
Dave Love <fx@gnu.org>
parents:
diff changeset
5146
Dave Love <fx@gnu.org>
parents:
diff changeset
5147 However, if the buffer is very large (larger than the value of
Dave Love <fx@gnu.org>
parents:
diff changeset
5148 `line-number-display-limit'), then the line number doesn't appear.
Dave Love <fx@gnu.org>
parents:
diff changeset
5149 This is because computing the line number can be painfully slow if the
Dave Love <fx@gnu.org>
parents:
diff changeset
5150 buffer is very large.
Dave Love <fx@gnu.org>
parents:
diff changeset
5151
Dave Love <fx@gnu.org>
parents:
diff changeset
5152 ** You can quit while Emacs is waiting to read or write files.
Dave Love <fx@gnu.org>
parents:
diff changeset
5153
Dave Love <fx@gnu.org>
parents:
diff changeset
5154 ** The arrow keys now have default bindings to move in the appropriate
Dave Love <fx@gnu.org>
parents:
diff changeset
5155 directions.
Dave Love <fx@gnu.org>
parents:
diff changeset
5156
Dave Love <fx@gnu.org>
parents:
diff changeset
5157 ** You can suppress next-line's habit of inserting a newline when
Dave Love <fx@gnu.org>
parents:
diff changeset
5158 called at the end of a buffer by setting next-line-add-newlines to nil
Dave Love <fx@gnu.org>
parents:
diff changeset
5159 (it defaults to t).
Dave Love <fx@gnu.org>
parents:
diff changeset
5160
Dave Love <fx@gnu.org>
parents:
diff changeset
5161 ** You can now get back recent minibuffer inputs conveniently. While
Dave Love <fx@gnu.org>
parents:
diff changeset
5162 in the minibuffer, type M-p to fetch the next earlier minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
5163 input, and use M-n to fetch the next later input.
Dave Love <fx@gnu.org>
parents:
diff changeset
5164
Dave Love <fx@gnu.org>
parents:
diff changeset
5165 There are also commands to search forward or backward through the
Dave Love <fx@gnu.org>
parents:
diff changeset
5166 history for history elements that match a regular expression. M-r
Dave Love <fx@gnu.org>
parents:
diff changeset
5167 searches older elements in the history, while M-s searches newer
Dave Love <fx@gnu.org>
parents:
diff changeset
5168 elements. By special dispensation, these commands can always use the
Dave Love <fx@gnu.org>
parents:
diff changeset
5169 minibuffer to read their arguments even though you are already in the
Dave Love <fx@gnu.org>
parents:
diff changeset
5170 minibuffer when you issue them.
Dave Love <fx@gnu.org>
parents:
diff changeset
5171
Dave Love <fx@gnu.org>
parents:
diff changeset
5172 The history feature is available for all uses of the minibuffer, but
Dave Love <fx@gnu.org>
parents:
diff changeset
5173 there are separate history lists for different kinds of input. For
Dave Love <fx@gnu.org>
parents:
diff changeset
5174 example, there is a list for file names, used by all the commands that
Dave Love <fx@gnu.org>
parents:
diff changeset
5175 read file names. There is a list for arguments of commands like
Dave Love <fx@gnu.org>
parents:
diff changeset
5176 `query-replace'. There are also very specific history lists, such
Dave Love <fx@gnu.org>
parents:
diff changeset
5177 as the one that `compile' uses for compilation commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
5178
Dave Love <fx@gnu.org>
parents:
diff changeset
5179 ** You can now display text in a mixture of fonts and colors, using the
Dave Love <fx@gnu.org>
parents:
diff changeset
5180 "face" feature, together with the overlay and text property features.
Dave Love <fx@gnu.org>
parents:
diff changeset
5181 See the Emacs Lisp manual for details. The Emacs Users Manual describes
Dave Love <fx@gnu.org>
parents:
diff changeset
5182 how to change the colors and font of standard predefined faces.
Dave Love <fx@gnu.org>
parents:
diff changeset
5183
Dave Love <fx@gnu.org>
parents:
diff changeset
5184 ** You can refer to files on other machines using special file name syntax:
Dave Love <fx@gnu.org>
parents:
diff changeset
5185
Dave Love <fx@gnu.org>
parents:
diff changeset
5186 /HOST:FILENAME
Dave Love <fx@gnu.org>
parents:
diff changeset
5187 /USER@HOST:FILENAME
Dave Love <fx@gnu.org>
parents:
diff changeset
5188
Dave Love <fx@gnu.org>
parents:
diff changeset
5189 When you do this, Emacs uses the FTP program to read and write files on
Dave Love <fx@gnu.org>
parents:
diff changeset
5190 the specified host. It logs in through FTP using your user name or the
Dave Love <fx@gnu.org>
parents:
diff changeset
5191 name USER. It may ask you for a password from time to time; this
Dave Love <fx@gnu.org>
parents:
diff changeset
5192 is used for logging in on HOST.
Dave Love <fx@gnu.org>
parents:
diff changeset
5193
Dave Love <fx@gnu.org>
parents:
diff changeset
5194 ** Some C-x key bindings have been moved onto new prefix keys.
Dave Love <fx@gnu.org>
parents:
diff changeset
5195
Dave Love <fx@gnu.org>
parents:
diff changeset
5196 C-x r is a prefix for registers and rectangles.
Dave Love <fx@gnu.org>
parents:
diff changeset
5197 C-x n is a prefix for narrowing.
Dave Love <fx@gnu.org>
parents:
diff changeset
5198 C-x a is a prefix for abbrev commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
5199
Dave Love <fx@gnu.org>
parents:
diff changeset
5200 C-x r C-SPC
Dave Love <fx@gnu.org>
parents:
diff changeset
5201 C-x r SPC point-to-register (Was C-x /)
Dave Love <fx@gnu.org>
parents:
diff changeset
5202 C-x r j jump-to-register (Was C-x j)
Dave Love <fx@gnu.org>
parents:
diff changeset
5203 C-x r s copy-to-register (Was C-x x)
Dave Love <fx@gnu.org>
parents:
diff changeset
5204 C-x r i insert-register (Was C-x g)
Dave Love <fx@gnu.org>
parents:
diff changeset
5205 C-x r r copy-rectangle-to-register (Was C-x r)
Dave Love <fx@gnu.org>
parents:
diff changeset
5206 C-x r k kill-rectangle
Dave Love <fx@gnu.org>
parents:
diff changeset
5207 C-x r y yank-rectangle
Dave Love <fx@gnu.org>
parents:
diff changeset
5208 C-x r o open-rectangle
Dave Love <fx@gnu.org>
parents:
diff changeset
5209 C-x r f frame-configuration-to-register
Dave Love <fx@gnu.org>
parents:
diff changeset
5210 (This saves the state of all windows in all frames.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5211 C-x r w window-configuration-to-register
Dave Love <fx@gnu.org>
parents:
diff changeset
5212 (This saves the state of all windows in the selected frame.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5213
Dave Love <fx@gnu.org>
parents:
diff changeset
5214 (Use C-x r j to restore a configuration saved with C-x r f or C-x r w.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5215
Dave Love <fx@gnu.org>
parents:
diff changeset
5216 C-x n n narrow-to-region (Was C-x n)
Dave Love <fx@gnu.org>
parents:
diff changeset
5217 C-x n p narrow-to-page (Was C-x p)
Dave Love <fx@gnu.org>
parents:
diff changeset
5218 C-x n w widen (Was C-x w)
Dave Love <fx@gnu.org>
parents:
diff changeset
5219
Dave Love <fx@gnu.org>
parents:
diff changeset
5220 C-x a l add-mode-abbrev (Was C-x C-a)
Dave Love <fx@gnu.org>
parents:
diff changeset
5221 C-x a g add-global-abbrev (Was C-x +)
Dave Love <fx@gnu.org>
parents:
diff changeset
5222 C-x a i l inverse-add-mode-abbrev (Was C-x C-h)
Dave Love <fx@gnu.org>
parents:
diff changeset
5223 C-x a i g inverse-add-global-abbrev (Was C-x -)
Dave Love <fx@gnu.org>
parents:
diff changeset
5224 C-x a e expand-abbrev (Was C-x ')
Dave Love <fx@gnu.org>
parents:
diff changeset
5225
Dave Love <fx@gnu.org>
parents:
diff changeset
5226 (The old key bindings C-x /, C-x j, C-x x and C-x g
Dave Love <fx@gnu.org>
parents:
diff changeset
5227 have not yet been removed.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5228
Dave Love <fx@gnu.org>
parents:
diff changeset
5229 ** You can put a file name in a register to be able to visit the file
Dave Love <fx@gnu.org>
parents:
diff changeset
5230 quickly. Do this:
Dave Love <fx@gnu.org>
parents:
diff changeset
5231
Dave Love <fx@gnu.org>
parents:
diff changeset
5232 (set-register ?CHAR '(file . NAME))
Dave Love <fx@gnu.org>
parents:
diff changeset
5233
Dave Love <fx@gnu.org>
parents:
diff changeset
5234 where NAME is the file name as a string. Then C-x r j CHAR finds that
Dave Love <fx@gnu.org>
parents:
diff changeset
5235 file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5236
Dave Love <fx@gnu.org>
parents:
diff changeset
5237 This is useful for files that you need to visit frequently,
Dave Love <fx@gnu.org>
parents:
diff changeset
5238 but that you don't want to keep in buffers all the time.
Dave Love <fx@gnu.org>
parents:
diff changeset
5239
Dave Love <fx@gnu.org>
parents:
diff changeset
5240 ** The keys M-g (fill-region) and C-x a (append-to-buffer)
Dave Love <fx@gnu.org>
parents:
diff changeset
5241 have been eliminated.
Dave Love <fx@gnu.org>
parents:
diff changeset
5242
Dave Love <fx@gnu.org>
parents:
diff changeset
5243 ** The new command `string-rectangle' inserts a specified string on
Dave Love <fx@gnu.org>
parents:
diff changeset
5244 each line of the region-rectangle.
Dave Love <fx@gnu.org>
parents:
diff changeset
5245
Dave Love <fx@gnu.org>
parents:
diff changeset
5246 ** C-x 4 r is now `find-file-read-only-other-window'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5247
Dave Love <fx@gnu.org>
parents:
diff changeset
5248 ** C-x 4 C-o is now `display-buffer', which displays a specified buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
5249 in another window without selecting it.
Dave Love <fx@gnu.org>
parents:
diff changeset
5250
Dave Love <fx@gnu.org>
parents:
diff changeset
5251 ** Picture mode has been substantially improved. The picture editing commands
Dave Love <fx@gnu.org>
parents:
diff changeset
5252 now arrange for automatic horizontal scrolling to keep point visible
Dave Love <fx@gnu.org>
parents:
diff changeset
5253 when editing a wide buffer with truncate-lines on. Picture-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
5254 initialization now does a better job of rebinding standard commands;
Dave Love <fx@gnu.org>
parents:
diff changeset
5255 it finds not just their normal keybindings, but any function keys
Dave Love <fx@gnu.org>
parents:
diff changeset
5256 attached to them.
Dave Love <fx@gnu.org>
parents:
diff changeset
5257
Dave Love <fx@gnu.org>
parents:
diff changeset
5258 ** If you enable Transient Mark mode, then the mark becomes "inactive"
Dave Love <fx@gnu.org>
parents:
diff changeset
5259 after every command that modifies the buffer. While the mark is
Dave Love <fx@gnu.org>
parents:
diff changeset
5260 active, the region is highlighted (under X, at least). Most commands
Dave Love <fx@gnu.org>
parents:
diff changeset
5261 that use the mark give an error if the mark is inactive, but you can
Dave Love <fx@gnu.org>
parents:
diff changeset
5262 use C-x C-x to make it active again. This feature is also sometimes
Dave Love <fx@gnu.org>
parents:
diff changeset
5263 known as "Zmacs mode".
Dave Love <fx@gnu.org>
parents:
diff changeset
5264
Dave Love <fx@gnu.org>
parents:
diff changeset
5265 ** Outline mode is now available as a minor mode. This minor mode can
Dave Love <fx@gnu.org>
parents:
diff changeset
5266 combine with any major mode; it substitutes the C-c commands of
Dave Love <fx@gnu.org>
parents:
diff changeset
5267 Outline mode for those of the major mode. Use M-x outline-minor-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
5268 to enable and disable the new mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5269
Dave Love <fx@gnu.org>
parents:
diff changeset
5270 M-x outline-mode is unchanged; it still switches to Outline mode as a
Dave Love <fx@gnu.org>
parents:
diff changeset
5271 major mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5272
Dave Love <fx@gnu.org>
parents:
diff changeset
5273 ** The default setting of `version-control' comes from the environment
Dave Love <fx@gnu.org>
parents:
diff changeset
5274 variable VERSION_CONTROL.
Dave Love <fx@gnu.org>
parents:
diff changeset
5275
Dave Love <fx@gnu.org>
parents:
diff changeset
5276 ** The user option for controlling whether files can set local
Dave Love <fx@gnu.org>
parents:
diff changeset
5277 variables is now called `enable-local-variables'. A value of t means
Dave Love <fx@gnu.org>
parents:
diff changeset
5278 local-variables lists are obeyed; nil means they are ignored; anything
Dave Love <fx@gnu.org>
parents:
diff changeset
5279 else means query the user.
Dave Love <fx@gnu.org>
parents:
diff changeset
5280
Dave Love <fx@gnu.org>
parents:
diff changeset
5281 The user option for controlling use of the `eval' local variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
5282 now called is `enable-local-eval'; its values are interpreted like
Dave Love <fx@gnu.org>
parents:
diff changeset
5283 those of `enable-local-variables'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5284
Dave Love <fx@gnu.org>
parents:
diff changeset
5285 ** X Window System changes:
Dave Love <fx@gnu.org>
parents:
diff changeset
5286
Dave Love <fx@gnu.org>
parents:
diff changeset
5287 C-x 5 C-f and C-x 5 b switch to a specified file or buffer in a new
Dave Love <fx@gnu.org>
parents:
diff changeset
5288 frame. Likewise, C-x 5 m starts outgoing mail in another frame, and
Dave Love <fx@gnu.org>
parents:
diff changeset
5289 C-x 5 . finds a tag in another frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
5290
Dave Love <fx@gnu.org>
parents:
diff changeset
5291 When you are using X, C-z now iconifies the selected frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
5292
Dave Love <fx@gnu.org>
parents:
diff changeset
5293 Emacs can now exchange text with other X applications. Killing or
Dave Love <fx@gnu.org>
parents:
diff changeset
5294 copying text in Emacs now makes that text available for pasting into
Dave Love <fx@gnu.org>
parents:
diff changeset
5295 other X applications. The Emacs yanking commands now insert the
Dave Love <fx@gnu.org>
parents:
diff changeset
5296 latest selection set by other applications, and add the text to the
Dave Love <fx@gnu.org>
parents:
diff changeset
5297 kill ring. The Emacs commands for selecting and inserting text with
Dave Love <fx@gnu.org>
parents:
diff changeset
5298 the mouse now use the kill ring in the same way the keyboard killing
Dave Love <fx@gnu.org>
parents:
diff changeset
5299 and yanking commands do.
Dave Love <fx@gnu.org>
parents:
diff changeset
5300
Dave Love <fx@gnu.org>
parents:
diff changeset
5301 The option to specify the title for the initial frame is now `-name NAME'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5302 There is currently no way to specify an icon title; perhaps we will add
Dave Love <fx@gnu.org>
parents:
diff changeset
5303 one in the future.
Dave Love <fx@gnu.org>
parents:
diff changeset
5304
Dave Love <fx@gnu.org>
parents:
diff changeset
5305 ** Undoing a deletion now puts point back where it was before the
Dave Love <fx@gnu.org>
parents:
diff changeset
5306 deletion.
Dave Love <fx@gnu.org>
parents:
diff changeset
5307
Dave Love <fx@gnu.org>
parents:
diff changeset
5308 ** The variables that control how much undo information to save have
Dave Love <fx@gnu.org>
parents:
diff changeset
5309 been renamed to `undo-limit' and `undo-strong-limit'. They used to be
Dave Love <fx@gnu.org>
parents:
diff changeset
5310 called `undo-threshold' and `undo-high-threshold'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5311
Dave Love <fx@gnu.org>
parents:
diff changeset
5312 ** You can now use kill commands in read-only buffers. They don't
Dave Love <fx@gnu.org>
parents:
diff changeset
5313 actually change the buffer, and Emacs will beep and warn you that the
Dave Love <fx@gnu.org>
parents:
diff changeset
5314 buffer is read-only, but they do copy the text you tried to kill into
Dave Love <fx@gnu.org>
parents:
diff changeset
5315 the kill ring, so you can yank it into other buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
5316
Dave Love <fx@gnu.org>
parents:
diff changeset
5317 ** C-o inserts the fill-prefix on the newly created line. The command
Dave Love <fx@gnu.org>
parents:
diff changeset
5318 M-^ deletes the prefix (if it occurs) after the newline that it
Dave Love <fx@gnu.org>
parents:
diff changeset
5319 deletes.
Dave Love <fx@gnu.org>
parents:
diff changeset
5320
Dave Love <fx@gnu.org>
parents:
diff changeset
5321 ** C-M-l now runs the command `reposition-window'. It scrolls the
Dave Love <fx@gnu.org>
parents:
diff changeset
5322 window heuristically in a way designed to get useful information onto
Dave Love <fx@gnu.org>
parents:
diff changeset
5323 the screen.
Dave Love <fx@gnu.org>
parents:
diff changeset
5324
Dave Love <fx@gnu.org>
parents:
diff changeset
5325 ** C-M-r is now reverse incremental regexp search.
Dave Love <fx@gnu.org>
parents:
diff changeset
5326
Dave Love <fx@gnu.org>
parents:
diff changeset
5327 ** M-z now kills through the target character. In version 18, it
Dave Love <fx@gnu.org>
parents:
diff changeset
5328 killed up to but not including the target character.
Dave Love <fx@gnu.org>
parents:
diff changeset
5329
Dave Love <fx@gnu.org>
parents:
diff changeset
5330 ** M-! now runs the specified shell command asynchronously if it
Dave Love <fx@gnu.org>
parents:
diff changeset
5331 ends in `&' (just as the shell does).
Dave Love <fx@gnu.org>
parents:
diff changeset
5332
Dave Love <fx@gnu.org>
parents:
diff changeset
5333 ** C-h C-f and C-h C-k are new help commands that display the Info
Dave Love <fx@gnu.org>
parents:
diff changeset
5334 node for a given Emacs function name or key sequence, respectively.
Dave Love <fx@gnu.org>
parents:
diff changeset
5335
Dave Love <fx@gnu.org>
parents:
diff changeset
5336 ** The C-h p command system lets you find Emacs Lisp packages by
Dave Love <fx@gnu.org>
parents:
diff changeset
5337 topic keywords. Here is a partial list of package categories:
Dave Love <fx@gnu.org>
parents:
diff changeset
5338
Dave Love <fx@gnu.org>
parents:
diff changeset
5339 abbrev abbreviation handling, typing shortcuts, macros
Dave Love <fx@gnu.org>
parents:
diff changeset
5340 bib code related to the bib bibliography processor
Dave Love <fx@gnu.org>
parents:
diff changeset
5341 c C and C++ language support
Dave Love <fx@gnu.org>
parents:
diff changeset
5342 calendar calendar and time management support
Dave Love <fx@gnu.org>
parents:
diff changeset
5343 comm communications, networking, remote access to files
Dave Love <fx@gnu.org>
parents:
diff changeset
5344 docs support for Emacs documentation
Dave Love <fx@gnu.org>
parents:
diff changeset
5345 emulations emulations of other editors
Dave Love <fx@gnu.org>
parents:
diff changeset
5346 extensions Emacs Lisp language extensions
Dave Love <fx@gnu.org>
parents:
diff changeset
5347 games games, jokes and amusements
Dave Love <fx@gnu.org>
parents:
diff changeset
5348 hardware support for interfacing with exotic hardware
Dave Love <fx@gnu.org>
parents:
diff changeset
5349 help support for on-line help systems
Dave Love <fx@gnu.org>
parents:
diff changeset
5350 i14n internationalization and alternate character-set support
Dave Love <fx@gnu.org>
parents:
diff changeset
5351 internal code for Emacs internals, build process, defaults
Dave Love <fx@gnu.org>
parents:
diff changeset
5352 languages specialized modes for editing programming languages
Dave Love <fx@gnu.org>
parents:
diff changeset
5353 lisp Lisp support, including Emacs Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5354 local code local to your site
Dave Love <fx@gnu.org>
parents:
diff changeset
5355 maint maintenance aids for the Emacs development group
Dave Love <fx@gnu.org>
parents:
diff changeset
5356 mail modes for electronic-mail handling
Dave Love <fx@gnu.org>
parents:
diff changeset
5357 news support for netnews reading and posting
Dave Love <fx@gnu.org>
parents:
diff changeset
5358 processes process, subshell, compilation, and job control support
Dave Love <fx@gnu.org>
parents:
diff changeset
5359 terminals support for terminal types
Dave Love <fx@gnu.org>
parents:
diff changeset
5360 tex code related to the TeX formatter
Dave Love <fx@gnu.org>
parents:
diff changeset
5361 tools programming tools
Dave Love <fx@gnu.org>
parents:
diff changeset
5362 unix front-ends/assistants for, or emulators of, UNIX features
Dave Love <fx@gnu.org>
parents:
diff changeset
5363 vms support code for vms
Dave Love <fx@gnu.org>
parents:
diff changeset
5364 wp word processing
Dave Love <fx@gnu.org>
parents:
diff changeset
5365
Dave Love <fx@gnu.org>
parents:
diff changeset
5366 More will be added soon.
Dave Love <fx@gnu.org>
parents:
diff changeset
5367
Dave Love <fx@gnu.org>
parents:
diff changeset
5368 ** The command to split a window into two side-by-side windows is now
Dave Love <fx@gnu.org>
parents:
diff changeset
5369 C-x 3. It was C-x 5.
Dave Love <fx@gnu.org>
parents:
diff changeset
5370
Dave Love <fx@gnu.org>
parents:
diff changeset
5371 ** M-. (find-tag) no longer has any effect on what M-, will do
Dave Love <fx@gnu.org>
parents:
diff changeset
5372 subsequently. You can no longer use M-, to find the next similar tag;
Dave Love <fx@gnu.org>
parents:
diff changeset
5373 you must use M-. with a prefix argument, instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
5374
Dave Love <fx@gnu.org>
parents:
diff changeset
5375 The motive for this change is so that you can more reliably use
Dave Love <fx@gnu.org>
parents:
diff changeset
5376 M-, to resume a suspended `tags-search' or `tags-query-replace'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5377
Dave Love <fx@gnu.org>
parents:
diff changeset
5378 ** C-x s (`save-some-buffers') now gives you more options when it asks
Dave Love <fx@gnu.org>
parents:
diff changeset
5379 whether to save a particular buffer. In addition to `y' or `n', you
Dave Love <fx@gnu.org>
parents:
diff changeset
5380 can answer `!' to save all the remaining buffers, `.' to save this
Dave Love <fx@gnu.org>
parents:
diff changeset
5381 buffer but not save any others, ESC to stop saving and exit the
Dave Love <fx@gnu.org>
parents:
diff changeset
5382 command, and C-h to get help. These options are analogous to those
Dave Love <fx@gnu.org>
parents:
diff changeset
5383 of `query-replace'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5384
Dave Love <fx@gnu.org>
parents:
diff changeset
5385 ** M-x make-symbolic-link does not expand its first argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
5386 This lets you make a link with a target that is a relative file name.
Dave Love <fx@gnu.org>
parents:
diff changeset
5387
Dave Love <fx@gnu.org>
parents:
diff changeset
5388 ** M-x add-change-log-entry and C-x 4 a now automatically insert the
Dave Love <fx@gnu.org>
parents:
diff changeset
5389 name of the file and often the name of the function that you changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
5390 They also handle grouping of entries.
Dave Love <fx@gnu.org>
parents:
diff changeset
5391
Dave Love <fx@gnu.org>
parents:
diff changeset
5392 There is now a special major mode for editing ChangeLog files. It
Dave Love <fx@gnu.org>
parents:
diff changeset
5393 makes filling work conveniently. Each bunch of grouped entries is one
Dave Love <fx@gnu.org>
parents:
diff changeset
5394 paragraph, and each collection of entries from one person on one day
Dave Love <fx@gnu.org>
parents:
diff changeset
5395 is considered a page.
Dave Love <fx@gnu.org>
parents:
diff changeset
5396
Dave Love <fx@gnu.org>
parents:
diff changeset
5397 ** The `comment-region' command adds comment delimiters to the lines that
Dave Love <fx@gnu.org>
parents:
diff changeset
5398 start in the region, thus commenting them out. With a negative argument,
Dave Love <fx@gnu.org>
parents:
diff changeset
5399 it deletes comment delimiters from the lines in the region--this cancels
Dave Love <fx@gnu.org>
parents:
diff changeset
5400 the effect of `comment-region' without an argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
5401
Dave Love <fx@gnu.org>
parents:
diff changeset
5402 With a positive argument, `comment-region' adds comment delimiters
Dave Love <fx@gnu.org>
parents:
diff changeset
5403 but duplicates the last character of the comment start sequence as many
Dave Love <fx@gnu.org>
parents:
diff changeset
5404 times as the argument specifies. This is a way of calling attention to
Dave Love <fx@gnu.org>
parents:
diff changeset
5405 the comment. In Lisp, you should use an argument at least two, because
Dave Love <fx@gnu.org>
parents:
diff changeset
5406 the indentation convention for single semicolon comments does not leave
Dave Love <fx@gnu.org>
parents:
diff changeset
5407 them at the beginning of a line.
Dave Love <fx@gnu.org>
parents:
diff changeset
5408
Dave Love <fx@gnu.org>
parents:
diff changeset
5409 ** If `split-window-keep-point' is non-nil, C-x 2 tries to avoid
Dave Love <fx@gnu.org>
parents:
diff changeset
5410 shifting any text on the screen by putting point in whichever window
Dave Love <fx@gnu.org>
parents:
diff changeset
5411 happens to contain the screen line the cursor is already on.
Dave Love <fx@gnu.org>
parents:
diff changeset
5412 The default is that `split-window-keep-point' is non-nil on slow
Dave Love <fx@gnu.org>
parents:
diff changeset
5413 terminals.
Dave Love <fx@gnu.org>
parents:
diff changeset
5414
Dave Love <fx@gnu.org>
parents:
diff changeset
5415 ** M-x super-apropos is like M-x apropos except that it searches both
Dave Love <fx@gnu.org>
parents:
diff changeset
5416 Lisp symbol names and documentation strings for matches. It describes
Dave Love <fx@gnu.org>
parents:
diff changeset
5417 every symbol that has a match in either the symbol's name or its
Dave Love <fx@gnu.org>
parents:
diff changeset
5418 documentation.
Dave Love <fx@gnu.org>
parents:
diff changeset
5419
Dave Love <fx@gnu.org>
parents:
diff changeset
5420 Both M-x apropos and M-x super-apropos take an optional second
Dave Love <fx@gnu.org>
parents:
diff changeset
5421 argument DO-ALL which controls the more expensive part of the job.
Dave Love <fx@gnu.org>
parents:
diff changeset
5422 This includes looking up and printing the key bindings of all
Dave Love <fx@gnu.org>
parents:
diff changeset
5423 commands. It also includes checking documentation strings in
Dave Love <fx@gnu.org>
parents:
diff changeset
5424 super-apropos. DO-ALL is nil by default; use a prefix arg to make it
Dave Love <fx@gnu.org>
parents:
diff changeset
5425 non-nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
5426
Dave Love <fx@gnu.org>
parents:
diff changeset
5427 ** M-x revert-buffer no longer offers to revert from a recent auto-save
Dave Love <fx@gnu.org>
parents:
diff changeset
5428 file unless you give it a prefix argument. Otherwise it always
Dave Love <fx@gnu.org>
parents:
diff changeset
5429 reverts from the real file regardless of whether there has been an
Dave Love <fx@gnu.org>
parents:
diff changeset
5430 auto-save since thenm. (Reverting from the auto-save file is no longer
Dave Love <fx@gnu.org>
parents:
diff changeset
5431 very useful now that the undo capacity is larger.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5432
Dave Love <fx@gnu.org>
parents:
diff changeset
5433 ** M-x recover-file no longer turns off Auto Save mode when it reads
Dave Love <fx@gnu.org>
parents:
diff changeset
5434 the last Auto Save file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5435
Dave Love <fx@gnu.org>
parents:
diff changeset
5436 ** M-x rename-buffer, if you give it a prefix argument,
Dave Love <fx@gnu.org>
parents:
diff changeset
5437 avoids errors by modifying the new name to make it unique.
Dave Love <fx@gnu.org>
parents:
diff changeset
5438
Dave Love <fx@gnu.org>
parents:
diff changeset
5439 ** M-x rename-uniquely renames the current buffer to a similar name
Dave Love <fx@gnu.org>
parents:
diff changeset
5440 with a numeric suffix added to make it both different and unique.
Dave Love <fx@gnu.org>
parents:
diff changeset
5441
Dave Love <fx@gnu.org>
parents:
diff changeset
5442 One use of this command is for creating multiple shell buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
5443 If you rename your shell buffer, and then do M-x shell again, it
Dave Love <fx@gnu.org>
parents:
diff changeset
5444 makes a new shell buffer. This method is also good for mail buffers,
Dave Love <fx@gnu.org>
parents:
diff changeset
5445 compilation buffers, and any Emacs feature which creates a special
Dave Love <fx@gnu.org>
parents:
diff changeset
5446 buffer with a particular name.
Dave Love <fx@gnu.org>
parents:
diff changeset
5447
Dave Love <fx@gnu.org>
parents:
diff changeset
5448 ** M-x compare-windows with a prefix argument ignores changes in whitespace.
Dave Love <fx@gnu.org>
parents:
diff changeset
5449 If `compare-ignore-case' is non-nil, then differences in case are also
Dave Love <fx@gnu.org>
parents:
diff changeset
5450 ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
5451
Dave Love <fx@gnu.org>
parents:
diff changeset
5452 ** `backward-paragraph' is now bound to M-{ by default, and `forward-paragraph'
Dave Love <fx@gnu.org>
parents:
diff changeset
5453 to M-}. Originally, these commands were bound to M-[ and M-], but they were
Dave Love <fx@gnu.org>
parents:
diff changeset
5454 running into conflicts with the use of function keys. On many terminals,
Dave Love <fx@gnu.org>
parents:
diff changeset
5455 function keys send a sequence beginning ESC-[, so many users have defined this
Dave Love <fx@gnu.org>
parents:
diff changeset
5456 as a prefix key.
Dave Love <fx@gnu.org>
parents:
diff changeset
5457
Dave Love <fx@gnu.org>
parents:
diff changeset
5458 ** C-x C-u (upcase-region) and C-x C-l (downcase-region) are now disabled by
Dave Love <fx@gnu.org>
parents:
diff changeset
5459 default; these commands seem to be often hit by accident, and can be
Dave Love <fx@gnu.org>
parents:
diff changeset
5460 quite destructive if their effects are not noticed immediately.
Dave Love <fx@gnu.org>
parents:
diff changeset
5461
Dave Love <fx@gnu.org>
parents:
diff changeset
5462 ** The function `erase-buffer' is now interactive, but disabled by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
5463
Dave Love <fx@gnu.org>
parents:
diff changeset
5464 ** When visiting a new file, Emacs attempts to abbreviate the file's
Dave Love <fx@gnu.org>
parents:
diff changeset
5465 path using the symlinks listed in `directory-abbrev-alist'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5466
Dave Love <fx@gnu.org>
parents:
diff changeset
5467 ** When you visit the same file in under two names that translate into
Dave Love <fx@gnu.org>
parents:
diff changeset
5468 the same name once symbolic links are handled, Emacs warns you that
Dave Love <fx@gnu.org>
parents:
diff changeset
5469 you have two buffers for the same file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5470
Dave Love <fx@gnu.org>
parents:
diff changeset
5471 ** If you wish to avoid visiting the same file in two buffers under
Dave Love <fx@gnu.org>
parents:
diff changeset
5472 different names, set the variable `find-file-existing-other-name'
Dave Love <fx@gnu.org>
parents:
diff changeset
5473 non-nil. Then `find-file' uses the existing buffer visiting the file,
Dave Love <fx@gnu.org>
parents:
diff changeset
5474 no matter which of the file's names you specify.
Dave Love <fx@gnu.org>
parents:
diff changeset
5475
Dave Love <fx@gnu.org>
parents:
diff changeset
5476 ** If you set `find-file-visit-truename' non-nil, then the file name
Dave Love <fx@gnu.org>
parents:
diff changeset
5477 recorded for a buffer is the file's truename (in which all symbolic
Dave Love <fx@gnu.org>
parents:
diff changeset
5478 links have been removed), rather than the name you specify. Setting
Dave Love <fx@gnu.org>
parents:
diff changeset
5479 `find-file-visit-truename' also implies the effect of
Dave Love <fx@gnu.org>
parents:
diff changeset
5480 `find-file-existing-other-name'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5481
Dave Love <fx@gnu.org>
parents:
diff changeset
5482 ** C-x C-v now inserts the entire current file name in the minibuffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
5483 This is convenient if you made a small mistake in typing it. Point
Dave Love <fx@gnu.org>
parents:
diff changeset
5484 goes after the last slash, before the last file name component, so if
Dave Love <fx@gnu.org>
parents:
diff changeset
5485 you want to replace it entirely, you can use C-k right away to delete
Dave Love <fx@gnu.org>
parents:
diff changeset
5486 it.
Dave Love <fx@gnu.org>
parents:
diff changeset
5487
Dave Love <fx@gnu.org>
parents:
diff changeset
5488 ** Commands such as C-M-f in Lisp mode now ignore parentheses within comments.
Dave Love <fx@gnu.org>
parents:
diff changeset
5489
Dave Love <fx@gnu.org>
parents:
diff changeset
5490 ** C-x q now uses ESC to terminate all iterations of the keyboard
Dave Love <fx@gnu.org>
parents:
diff changeset
5491 macro, rather than C-d as before.
Dave Love <fx@gnu.org>
parents:
diff changeset
5492
Dave Love <fx@gnu.org>
parents:
diff changeset
5493 ** Use the command `setenv' to set an individual environment variable
Dave Love <fx@gnu.org>
parents:
diff changeset
5494 for Emacs subprocesses. Specify a variable name and a value, both as
Dave Love <fx@gnu.org>
parents:
diff changeset
5495 strings. This command applies only to subprocesses yet to be
Dave Love <fx@gnu.org>
parents:
diff changeset
5496 started.
Dave Love <fx@gnu.org>
parents:
diff changeset
5497
Dave Love <fx@gnu.org>
parents:
diff changeset
5498 ** Use `rot13-other-window' to examine a buffer with rot13.
Dave Love <fx@gnu.org>
parents:
diff changeset
5499
Dave Love <fx@gnu.org>
parents:
diff changeset
5500 This command does not change the text in the buffer. Instead, it
Dave Love <fx@gnu.org>
parents:
diff changeset
5501 creates a window with a funny display table that applies the code when
Dave Love <fx@gnu.org>
parents:
diff changeset
5502 displaying the text.
Dave Love <fx@gnu.org>
parents:
diff changeset
5503
Dave Love <fx@gnu.org>
parents:
diff changeset
5504 ** The command `M-x version' now prints the current Emacs version; The
Dave Love <fx@gnu.org>
parents:
diff changeset
5505 `version' command is an alias for the `emacs-version' command.
Dave Love <fx@gnu.org>
parents:
diff changeset
5506
Dave Love <fx@gnu.org>
parents:
diff changeset
5507 ** More complex changes in existing packages.
Dave Love <fx@gnu.org>
parents:
diff changeset
5508
Dave Love <fx@gnu.org>
parents:
diff changeset
5509 *** `fill-nonuniform-paragraphs' is a new command, much like
Dave Love <fx@gnu.org>
parents:
diff changeset
5510 `fill-individual-paragraphs' except that only separator lines separate
Dave Love <fx@gnu.org>
parents:
diff changeset
5511 paragraphs. Since this means that the lines of one paragraph may have
Dave Love <fx@gnu.org>
parents:
diff changeset
5512 different amounts of indentation, the fill prefix used is the smallest
Dave Love <fx@gnu.org>
parents:
diff changeset
5513 amount of indentation of any of the lines of the paragraph.
Dave Love <fx@gnu.org>
parents:
diff changeset
5514
Dave Love <fx@gnu.org>
parents:
diff changeset
5515 *** Filling is now partially controlled by a new minor mode, Adaptive
Dave Love <fx@gnu.org>
parents:
diff changeset
5516 Fill mode. When this mode is enabled (and it is enabled by default),
Dave Love <fx@gnu.org>
parents:
diff changeset
5517 if you use M-x fill-region-as-paragraph on an indented paragraph and
Dave Love <fx@gnu.org>
parents:
diff changeset
5518 you don't have a fill prefix, it uses the indentation of the second
Dave Love <fx@gnu.org>
parents:
diff changeset
5519 line of the paragraph as the fill prefix.
Dave Love <fx@gnu.org>
parents:
diff changeset
5520
Dave Love <fx@gnu.org>
parents:
diff changeset
5521 Adaptive Fill mode doesn't have much effect on M-q in most major
Dave Love <fx@gnu.org>
parents:
diff changeset
5522 modes, because an indented line will probably count as a paragraph
Dave Love <fx@gnu.org>
parents:
diff changeset
5523 starter and thus each line of an indented paragraph will be considered
Dave Love <fx@gnu.org>
parents:
diff changeset
5524 a paragraph of its own.
Dave Love <fx@gnu.org>
parents:
diff changeset
5525
Dave Love <fx@gnu.org>
parents:
diff changeset
5526 *** M-q in C mode now runs `c-fill-paragraph', which is designed
Dave Love <fx@gnu.org>
parents:
diff changeset
5527 for filling C comments. (We assume you don't want to fill
Dave Love <fx@gnu.org>
parents:
diff changeset
5528 the code in a C program.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5529
Dave Love <fx@gnu.org>
parents:
diff changeset
5530 *** M-$ now runs the Ispell program instead of the Unix spell program.
Dave Love <fx@gnu.org>
parents:
diff changeset
5531
Dave Love <fx@gnu.org>
parents:
diff changeset
5532 M-$ starts an Ispell process the first time you use it. But the process
Dave Love <fx@gnu.org>
parents:
diff changeset
5533 stays alive, so that subsequent uses of M-$ run very fast.
Dave Love <fx@gnu.org>
parents:
diff changeset
5534 If you want to get rid of the process, use M-x kill-ispell.
Dave Love <fx@gnu.org>
parents:
diff changeset
5535
Dave Love <fx@gnu.org>
parents:
diff changeset
5536 To check the entire current buffer, use M-x ispell-buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
5537 Use M-x ispell-region to check just the current region.
Dave Love <fx@gnu.org>
parents:
diff changeset
5538
Dave Love <fx@gnu.org>
parents:
diff changeset
5539 Ispell commands often involve interactive replacement of words.
Dave Love <fx@gnu.org>
parents:
diff changeset
5540 You can interrupt the interactive replacement with C-g.
Dave Love <fx@gnu.org>
parents:
diff changeset
5541 You can restart it again afterward with C-u M-$.
Dave Love <fx@gnu.org>
parents:
diff changeset
5542
Dave Love <fx@gnu.org>
parents:
diff changeset
5543 During interactive replacement, you can type the following characters:
Dave Love <fx@gnu.org>
parents:
diff changeset
5544
Dave Love <fx@gnu.org>
parents:
diff changeset
5545 a Accept this word this time.
Dave Love <fx@gnu.org>
parents:
diff changeset
5546 DIGIT Replace the word (this time) with one of the displayed near-misses.
Dave Love <fx@gnu.org>
parents:
diff changeset
5547 The digit you use says which near-miss to use.
Dave Love <fx@gnu.org>
parents:
diff changeset
5548 i Insert this word in your private dictionary
Dave Love <fx@gnu.org>
parents:
diff changeset
5549 so that Ispell will consider it correct it from now on.
Dave Love <fx@gnu.org>
parents:
diff changeset
5550 r Replace the word this time with a string typed by you.
Dave Love <fx@gnu.org>
parents:
diff changeset
5551
Dave Love <fx@gnu.org>
parents:
diff changeset
5552 When the Ispell process starts, it reads your private dictionary which
Dave Love <fx@gnu.org>
parents:
diff changeset
5553 is the file `~/ispell.words'. If you "insert" words with the `i' command,
Dave Love <fx@gnu.org>
parents:
diff changeset
5554 these words are added to that file, but not right away--only at the end
Dave Love <fx@gnu.org>
parents:
diff changeset
5555 of the interactive replacement process.
Dave Love <fx@gnu.org>
parents:
diff changeset
5556
Dave Love <fx@gnu.org>
parents:
diff changeset
5557 Use M-x reload-ispell to reload your private dictionary from
Dave Love <fx@gnu.org>
parents:
diff changeset
5558 `~/ispell.words' if you edit it outside of Ispell.
Dave Love <fx@gnu.org>
parents:
diff changeset
5559
Dave Love <fx@gnu.org>
parents:
diff changeset
5560 ** Changes in existing modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
5561
Dave Love <fx@gnu.org>
parents:
diff changeset
5562 *** gdb-mode has been replaced by gud-mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5563
Dave Love <fx@gnu.org>
parents:
diff changeset
5564 The package gud.el (Grand Unified Debugger) replaces gdb.el in Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
5565 19. It provides a gdb.el-like interface to any of three debuggers;
Dave Love <fx@gnu.org>
parents:
diff changeset
5566 gdb itself, the sdb debugger supported on some Unix systems, or the
Dave Love <fx@gnu.org>
parents:
diff changeset
5567 dbx debugger on Berkeley systems.
Dave Love <fx@gnu.org>
parents:
diff changeset
5568
Dave Love <fx@gnu.org>
parents:
diff changeset
5569 You start it up with one of the commands M-x gdb, M-x sdb, or
Dave Love <fx@gnu.org>
parents:
diff changeset
5570 M-x dbx. Each entry point finishes by executing a hook; gdb-mode-hook,
Dave Love <fx@gnu.org>
parents:
diff changeset
5571 sdb-mode-hook or dbx-mode-hook respectively.
Dave Love <fx@gnu.org>
parents:
diff changeset
5572
Dave Love <fx@gnu.org>
parents:
diff changeset
5573 These bindings have changed:
Dave Love <fx@gnu.org>
parents:
diff changeset
5574 C-x C-a > gud-down (was M-d)
Dave Love <fx@gnu.org>
parents:
diff changeset
5575 C-x C-a < gud-up (was M-u)
Dave Love <fx@gnu.org>
parents:
diff changeset
5576 C-x C-a C-r gud-cont (was M-c)
Dave Love <fx@gnu.org>
parents:
diff changeset
5577 C-x C-a C-n gud-next (was M-n)
Dave Love <fx@gnu.org>
parents:
diff changeset
5578 C-x C-a C-s gud-step (was M-s)
Dave Love <fx@gnu.org>
parents:
diff changeset
5579 C-x C-a C-i gud-stepi (was M-i)
Dave Love <fx@gnu.org>
parents:
diff changeset
5580 C-x C-a C-l gud-recenter (was C-l)
Dave Love <fx@gnu.org>
parents:
diff changeset
5581 C-d comint-delchar-or-maybe-eof (was C-c C-d)
Dave Love <fx@gnu.org>
parents:
diff changeset
5582
Dave Love <fx@gnu.org>
parents:
diff changeset
5583 These bindings have been removed:
Dave Love <fx@gnu.org>
parents:
diff changeset
5584 C-c C-r (was comint-show-output; now gud-cont)
Dave Love <fx@gnu.org>
parents:
diff changeset
5585
Dave Love <fx@gnu.org>
parents:
diff changeset
5586 Since GUD mode uses comint, it uses comint's input history commands,
Dave Love <fx@gnu.org>
parents:
diff changeset
5587 superseding C-c C-y (copy-last-shell-input):
Dave Love <fx@gnu.org>
parents:
diff changeset
5588 M-p comint-next-input
Dave Love <fx@gnu.org>
parents:
diff changeset
5589 M-n comint-previous-input
Dave Love <fx@gnu.org>
parents:
diff changeset
5590 M-r comint-previous-similar-input
Dave Love <fx@gnu.org>
parents:
diff changeset
5591 M-s comint-next-similar-input
Dave Love <fx@gnu.org>
parents:
diff changeset
5592 M-C-r comint-previous-input-matching
Dave Love <fx@gnu.org>
parents:
diff changeset
5593
Dave Love <fx@gnu.org>
parents:
diff changeset
5594 The C-x C-a bindings are also active in source files.
Dave Love <fx@gnu.org>
parents:
diff changeset
5595
Dave Love <fx@gnu.org>
parents:
diff changeset
5596 *** The old TeX mode bindings of M-{ and M-} have been moved to C-c {
Dave Love <fx@gnu.org>
parents:
diff changeset
5597 and C-c }. (These commands are `up-list' and `tex-insert-braces';
Dave Love <fx@gnu.org>
parents:
diff changeset
5598 they are the TeX equivalents of M-( and M-).) This is because M-{
Dave Love <fx@gnu.org>
parents:
diff changeset
5599 and M-} are now globally defined commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
5600
Dave Love <fx@gnu.org>
parents:
diff changeset
5601 *** Changes in Mail mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5602
Dave Love <fx@gnu.org>
parents:
diff changeset
5603 `%' is now a word-separator character in Mail mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5604
Dave Love <fx@gnu.org>
parents:
diff changeset
5605 `mail-signature', if non-nil, tells M-x mail to insert your
Dave Love <fx@gnu.org>
parents:
diff changeset
5606 `.signature' file automatically. If you don't want your signature in
Dave Love <fx@gnu.org>
parents:
diff changeset
5607 a particular message, just delete it before you send the message.
Dave Love <fx@gnu.org>
parents:
diff changeset
5608
Dave Love <fx@gnu.org>
parents:
diff changeset
5609 You can specify the text to insert at the beginning of each line when
Dave Love <fx@gnu.org>
parents:
diff changeset
5610 you use C-c C-y to yank the message you are replying to. Set
Dave Love <fx@gnu.org>
parents:
diff changeset
5611 `mail-yank-prefix' to the desired string. A value of `nil' (the
Dave Love <fx@gnu.org>
parents:
diff changeset
5612 default) means to use indentation, as in Emacs 18. If you use just
Dave Love <fx@gnu.org>
parents:
diff changeset
5613 C-u as the prefix argument to C-c C-y, then it does not insert
Dave Love <fx@gnu.org>
parents:
diff changeset
5614 anything at the beginning of the lines, regardless of the value of
Dave Love <fx@gnu.org>
parents:
diff changeset
5615 `mail-yank-prefix'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5616
Dave Love <fx@gnu.org>
parents:
diff changeset
5617 If you like, you can expand mail aliases as abbrevs, as soon as you
Dave Love <fx@gnu.org>
parents:
diff changeset
5618 type them in. To enable this feature, execute the following:
Dave Love <fx@gnu.org>
parents:
diff changeset
5619
Dave Love <fx@gnu.org>
parents:
diff changeset
5620 (add-hook 'mail-setup-hook 'mail-abbrevs-setup)
Dave Love <fx@gnu.org>
parents:
diff changeset
5621
Dave Love <fx@gnu.org>
parents:
diff changeset
5622 This can go in your .emacs file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5623
Dave Love <fx@gnu.org>
parents:
diff changeset
5624 Word abbrevs don't expand unless you insert a word-separator character
Dave Love <fx@gnu.org>
parents:
diff changeset
5625 afterward. Any mail aliases that you didn't expand at insertion time
Dave Love <fx@gnu.org>
parents:
diff changeset
5626 are expanded subsequently when you send the message.
Dave Love <fx@gnu.org>
parents:
diff changeset
5627
Dave Love <fx@gnu.org>
parents:
diff changeset
5628 *** Changes in Rmail.
Dave Love <fx@gnu.org>
parents:
diff changeset
5629
Dave Love <fx@gnu.org>
parents:
diff changeset
5630 Rmail by default gets new mail only from the system inbox file,
Dave Love <fx@gnu.org>
parents:
diff changeset
5631 not from `~/mbox'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5632
Dave Love <fx@gnu.org>
parents:
diff changeset
5633 In Rmail, you can retry sending a message that failed
Dave Love <fx@gnu.org>
parents:
diff changeset
5634 by typing `M-m' on the failure message.
Dave Love <fx@gnu.org>
parents:
diff changeset
5635
Dave Love <fx@gnu.org>
parents:
diff changeset
5636 By contrast, another new command M-x rmail-resend is used for
Dave Love <fx@gnu.org>
parents:
diff changeset
5637 forwarding a message and marking it as "resent from" you
Dave Love <fx@gnu.org>
parents:
diff changeset
5638 with header fields "Resent-From:" and "Resent-To:".
Dave Love <fx@gnu.org>
parents:
diff changeset
5639
Dave Love <fx@gnu.org>
parents:
diff changeset
5640 `e' is now the command to edit a message.
Dave Love <fx@gnu.org>
parents:
diff changeset
5641 To expunge, type `x'. We know this will surprise people
Dave Love <fx@gnu.org>
parents:
diff changeset
5642 some of the time, but the surprise will not be disastrous--if
Dave Love <fx@gnu.org>
parents:
diff changeset
5643 you type `e' meaning to expunge, just turn off editing with C-c C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
5644 and then type `x'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5645
Dave Love <fx@gnu.org>
parents:
diff changeset
5646 Another new Rmail command is `<', which moves to the first message.
Dave Love <fx@gnu.org>
parents:
diff changeset
5647 This is for symmetry with `>'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5648
Dave Love <fx@gnu.org>
parents:
diff changeset
5649 Use the `b' command to bury the Rmail buffer and its summary buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
5650 if any, removing both of them from display on the screen.
Dave Love <fx@gnu.org>
parents:
diff changeset
5651
Dave Love <fx@gnu.org>
parents:
diff changeset
5652 The variable `rmail-output-file-alist' now controls the default
Dave Love <fx@gnu.org>
parents:
diff changeset
5653 for the file to output a message to.
Dave Love <fx@gnu.org>
parents:
diff changeset
5654
Dave Love <fx@gnu.org>
parents:
diff changeset
5655 In the Rmail summary buffer, all cursor motion commands select
Dave Love <fx@gnu.org>
parents:
diff changeset
5656 the message you move to. It's really neat when you use
Dave Love <fx@gnu.org>
parents:
diff changeset
5657 incremental search.
Dave Love <fx@gnu.org>
parents:
diff changeset
5658
Dave Love <fx@gnu.org>
parents:
diff changeset
5659 You can now issue most Rmail commands from an Rmail summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
5660 The commands do the same thing in that buffer that they do in the
Dave Love <fx@gnu.org>
parents:
diff changeset
5661 Rmail buffer. They apply to the message that is selected in the Rmail
Dave Love <fx@gnu.org>
parents:
diff changeset
5662 buffer, which is always the one described by the current summary
Dave Love <fx@gnu.org>
parents:
diff changeset
5663 line.
Dave Love <fx@gnu.org>
parents:
diff changeset
5664
Dave Love <fx@gnu.org>
parents:
diff changeset
5665 Conversely, motion and deletion commands in the Rmail buffer also
Dave Love <fx@gnu.org>
parents:
diff changeset
5666 update the summary buffer. If you set the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
5667 `rmail-redisplay-summary' to a non-nil value, then they bring the
Dave Love <fx@gnu.org>
parents:
diff changeset
5668 summary buffer (if one exists) back onto the screen.
Dave Love <fx@gnu.org>
parents:
diff changeset
5669
Dave Love <fx@gnu.org>
parents:
diff changeset
5670 C-M-t is a new command to make a summary by topic. It uses regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
5671 matching against just the subjects of the messages to decide which
Dave Love <fx@gnu.org>
parents:
diff changeset
5672 messages to show in the summary.
Dave Love <fx@gnu.org>
parents:
diff changeset
5673
Dave Love <fx@gnu.org>
parents:
diff changeset
5674 You can easily convert an Rmail file to system mailbox format with the
Dave Love <fx@gnu.org>
parents:
diff changeset
5675 command `unrmail'. This command reads two arguments, the name of
Dave Love <fx@gnu.org>
parents:
diff changeset
5676 the Rmail file to convert, and the name of the new mailbox file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5677 (This command does not change the Rmail file itself.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5678
Dave Love <fx@gnu.org>
parents:
diff changeset
5679 Rmail now handles Content Length fields in messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
5680
Dave Love <fx@gnu.org>
parents:
diff changeset
5681 *** `mail-extract-address-components' unpacks mail addresses.
Dave Love <fx@gnu.org>
parents:
diff changeset
5682 It takes an address as a string (the contents of the From field, for
Dave Love <fx@gnu.org>
parents:
diff changeset
5683 example) and returns a list of the form (FULL-NAME
Dave Love <fx@gnu.org>
parents:
diff changeset
5684 CANONICAL-ADDRESS).
Dave Love <fx@gnu.org>
parents:
diff changeset
5685
Dave Love <fx@gnu.org>
parents:
diff changeset
5686 *** Changes in C mode and C-related commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
5687
Dave Love <fx@gnu.org>
parents:
diff changeset
5688 **** M-x c-up-conditional
Dave Love <fx@gnu.org>
parents:
diff changeset
5689
Dave Love <fx@gnu.org>
parents:
diff changeset
5690 In C mode, `c-up-conditional' moves back to the containing
Dave Love <fx@gnu.org>
parents:
diff changeset
5691 preprocessor conditional, setting the mark where point was
Dave Love <fx@gnu.org>
parents:
diff changeset
5692 previously.
Dave Love <fx@gnu.org>
parents:
diff changeset
5693
Dave Love <fx@gnu.org>
parents:
diff changeset
5694 A prefix argument acts as a repeat count. With a negative argument,
Dave Love <fx@gnu.org>
parents:
diff changeset
5695 this command moves forward to the end of the containing preprocessor
Dave Love <fx@gnu.org>
parents:
diff changeset
5696 conditional. When going backwards, `#elif' acts like `#else' followed
Dave Love <fx@gnu.org>
parents:
diff changeset
5697 by `#if'. When going forwards, `#elif' is ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
5698
Dave Love <fx@gnu.org>
parents:
diff changeset
5699 **** In C mode, M-a and M-e are now defined as
Dave Love <fx@gnu.org>
parents:
diff changeset
5700 `c-beginning-of-statement' and `c-end-of-statement'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5701
Dave Love <fx@gnu.org>
parents:
diff changeset
5702 **** In C mode, M-x c-backslash-region is a new command to insert or
Dave Love <fx@gnu.org>
parents:
diff changeset
5703 align `\' characters at the ends of the lines of the region, except
Dave Love <fx@gnu.org>
parents:
diff changeset
5704 for the last such line. This is useful after writing or editing a C
Dave Love <fx@gnu.org>
parents:
diff changeset
5705 macro definition.
Dave Love <fx@gnu.org>
parents:
diff changeset
5706
Dave Love <fx@gnu.org>
parents:
diff changeset
5707 If a line already ends in `\', this command adjusts the amount of
Dave Love <fx@gnu.org>
parents:
diff changeset
5708 whitespace before it. Otherwise, it inserts a new `\'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5709
Dave Love <fx@gnu.org>
parents:
diff changeset
5710 *** New features in info.
Dave Love <fx@gnu.org>
parents:
diff changeset
5711
Dave Love <fx@gnu.org>
parents:
diff changeset
5712 When Info looks for an Info file, it searches the directories
Dave Love <fx@gnu.org>
parents:
diff changeset
5713 in `Info-directory-list'. This makes it easy to install the Info files
Dave Love <fx@gnu.org>
parents:
diff changeset
5714 that come with various packages. You can specify the path with
Dave Love <fx@gnu.org>
parents:
diff changeset
5715 the environment variable INFOPATH.
Dave Love <fx@gnu.org>
parents:
diff changeset
5716
Dave Love <fx@gnu.org>
parents:
diff changeset
5717 There are new commands in Info mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5718
Dave Love <fx@gnu.org>
parents:
diff changeset
5719 `]' now moves forward a node, going up and down levels as needed.
Dave Love <fx@gnu.org>
parents:
diff changeset
5720 `[' is similar but moves backward. These two commands try to traverse
Dave Love <fx@gnu.org>
parents:
diff changeset
5721 the entire Info tree, node by node. They are the equivalent of reading
Dave Love <fx@gnu.org>
parents:
diff changeset
5722 a printed manual sequentially.
Dave Love <fx@gnu.org>
parents:
diff changeset
5723
Dave Love <fx@gnu.org>
parents:
diff changeset
5724 `<' moves to the top node of the current Info file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5725 `>' moves to the last node of the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5726
Dave Love <fx@gnu.org>
parents:
diff changeset
5727 SPC scrolls through the current node; at the end, it advances to the
Dave Love <fx@gnu.org>
parents:
diff changeset
5728 next node in depth-first order (like `]').
Dave Love <fx@gnu.org>
parents:
diff changeset
5729
Dave Love <fx@gnu.org>
parents:
diff changeset
5730 DEL scrolls backwards in the current node; at the end, it moves to the
Dave Love <fx@gnu.org>
parents:
diff changeset
5731 previous node in depth-first order (like `[').
Dave Love <fx@gnu.org>
parents:
diff changeset
5732
Dave Love <fx@gnu.org>
parents:
diff changeset
5733 After a menu select, the info `up' command now restores point in the
Dave Love <fx@gnu.org>
parents:
diff changeset
5734 menu. The combination of this and the previous two changes means that
Dave Love <fx@gnu.org>
parents:
diff changeset
5735 repeated SPC keystrokes do the right (depth-first traverse forward) thing.
Dave Love <fx@gnu.org>
parents:
diff changeset
5736
Dave Love <fx@gnu.org>
parents:
diff changeset
5737 `i STRING RET' moves to the node associated with STRING in the index
Dave Love <fx@gnu.org>
parents:
diff changeset
5738 or indices of this manual. If there is more than one match for
Dave Love <fx@gnu.org>
parents:
diff changeset
5739 STRING, the `i' command finds the first match.
Dave Love <fx@gnu.org>
parents:
diff changeset
5740
Dave Love <fx@gnu.org>
parents:
diff changeset
5741 `,' finds the next match for the string in the previous `i' command
Dave Love <fx@gnu.org>
parents:
diff changeset
5742
Dave Love <fx@gnu.org>
parents:
diff changeset
5743 If you click the middle mouse button near a cross-reference,
Dave Love <fx@gnu.org>
parents:
diff changeset
5744 menu item or node pointer while in Info, you will go to the node
Dave Love <fx@gnu.org>
parents:
diff changeset
5745 which is referenced.
Dave Love <fx@gnu.org>
parents:
diff changeset
5746
Dave Love <fx@gnu.org>
parents:
diff changeset
5747 *** Changes in M-x compile.
Dave Love <fx@gnu.org>
parents:
diff changeset
5748
Dave Love <fx@gnu.org>
parents:
diff changeset
5749 You can repeat any previous compilation command conveniently using the
Dave Love <fx@gnu.org>
parents:
diff changeset
5750 minibuffer history commands, while in the minibuffer entering the
Dave Love <fx@gnu.org>
parents:
diff changeset
5751 compilation command.
Dave Love <fx@gnu.org>
parents:
diff changeset
5752
Dave Love <fx@gnu.org>
parents:
diff changeset
5753 While a compilation is going on, the string `Compiling' appears in
Dave Love <fx@gnu.org>
parents:
diff changeset
5754 the mode line. When this string disappears, that tells you the
Dave Love <fx@gnu.org>
parents:
diff changeset
5755 compilation is finished.
Dave Love <fx@gnu.org>
parents:
diff changeset
5756
Dave Love <fx@gnu.org>
parents:
diff changeset
5757 The buffer of compiler messages is in Compilation mode. This mode
Dave Love <fx@gnu.org>
parents:
diff changeset
5758 provides the keys SPC and DEL to scroll by screenfuls, and M-n and M-p
Dave Love <fx@gnu.org>
parents:
diff changeset
5759 to move to the next or previous error message. You can also use C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
5760 C-c on any error message to find the corresponding source code.
Dave Love <fx@gnu.org>
parents:
diff changeset
5761
Dave Love <fx@gnu.org>
parents:
diff changeset
5762 Emacs 19 has a more general parser for compiler messages. For example, it
Dave Love <fx@gnu.org>
parents:
diff changeset
5763 can understand messages from lint, and from certain C compilers whose error
Dave Love <fx@gnu.org>
parents:
diff changeset
5764 message format is unusual. Also, it only parses until it sees the error
Dave Love <fx@gnu.org>
parents:
diff changeset
5765 message you want; you never have to wait a long time to see the first
Dave Love <fx@gnu.org>
parents:
diff changeset
5766 error, no matter how big the buffer is.
Dave Love <fx@gnu.org>
parents:
diff changeset
5767
Dave Love <fx@gnu.org>
parents:
diff changeset
5768 *** M-x diff and M-x diff-backup.
Dave Love <fx@gnu.org>
parents:
diff changeset
5769
Dave Love <fx@gnu.org>
parents:
diff changeset
5770 This new command compares two files, displaying the differences in an
Dave Love <fx@gnu.org>
parents:
diff changeset
5771 Emacs buffer. The options for the `diff' program come from the
Dave Love <fx@gnu.org>
parents:
diff changeset
5772 variable `diff-switches', whose value should be a string.
Dave Love <fx@gnu.org>
parents:
diff changeset
5773
Dave Love <fx@gnu.org>
parents:
diff changeset
5774 The buffer of differences has Compilation mode as its major mode, so you
Dave Love <fx@gnu.org>
parents:
diff changeset
5775 can use C-x ` to visit successive changed locations in the two
Dave Love <fx@gnu.org>
parents:
diff changeset
5776 source files, or you can move to a particular hunk of changes and type
Dave Love <fx@gnu.org>
parents:
diff changeset
5777 C-c C-c to move to the corresponding source. You can also use the
Dave Love <fx@gnu.org>
parents:
diff changeset
5778 other special commands of Compilation mode: SPC and DEL for
Dave Love <fx@gnu.org>
parents:
diff changeset
5779 scrolling, and M-n and M-p for cursor motion.
Dave Love <fx@gnu.org>
parents:
diff changeset
5780
Dave Love <fx@gnu.org>
parents:
diff changeset
5781 M-x diff-backup compares a file with its most recent backup.
Dave Love <fx@gnu.org>
parents:
diff changeset
5782 If you specify the name of a backup file, `diff-backup' compares it
Dave Love <fx@gnu.org>
parents:
diff changeset
5783 with the source file that it is a backup of.
Dave Love <fx@gnu.org>
parents:
diff changeset
5784
Dave Love <fx@gnu.org>
parents:
diff changeset
5785 *** The View commands (such as M-x view-buffer and M-x view-file) no
Dave Love <fx@gnu.org>
parents:
diff changeset
5786 longer use recursive edits; instead, they switch temporarily to a
Dave Love <fx@gnu.org>
parents:
diff changeset
5787 different major mode (View mode) specifically designed for moving
Dave Love <fx@gnu.org>
parents:
diff changeset
5788 around through a buffer without editing it.
Dave Love <fx@gnu.org>
parents:
diff changeset
5789
Dave Love <fx@gnu.org>
parents:
diff changeset
5790 *** Changes in incremental search.
Dave Love <fx@gnu.org>
parents:
diff changeset
5791
Dave Love <fx@gnu.org>
parents:
diff changeset
5792 **** The character to terminate an incremental search is now RET.
Dave Love <fx@gnu.org>
parents:
diff changeset
5793 This is for compatibility with the way most other arguments are read.
Dave Love <fx@gnu.org>
parents:
diff changeset
5794
Dave Love <fx@gnu.org>
parents:
diff changeset
5795 To search for a newline in an incremental search, type LFD (also known
Dave Love <fx@gnu.org>
parents:
diff changeset
5796 as C-j).
Dave Love <fx@gnu.org>
parents:
diff changeset
5797
Dave Love <fx@gnu.org>
parents:
diff changeset
5798 **** Incremental search now maintains a ring of previous search
Dave Love <fx@gnu.org>
parents:
diff changeset
5799 strings. Use M-p and M-n to move through the ring to pick a search
Dave Love <fx@gnu.org>
parents:
diff changeset
5800 string to reuse. These commands leave the selected search ring
Dave Love <fx@gnu.org>
parents:
diff changeset
5801 element in the minibuffer, where you can edit it. Type C-s or C-r to
Dave Love <fx@gnu.org>
parents:
diff changeset
5802 finish editing and search for the chosen string.
Dave Love <fx@gnu.org>
parents:
diff changeset
5803
Dave Love <fx@gnu.org>
parents:
diff changeset
5804 **** If you type an upper case letter in incremental search, that turns
Dave Love <fx@gnu.org>
parents:
diff changeset
5805 off case-folding, so that you get a case-sensitive search.
Dave Love <fx@gnu.org>
parents:
diff changeset
5806
Dave Love <fx@gnu.org>
parents:
diff changeset
5807 **** If you type a space during regexp incremental search, it matches
Dave Love <fx@gnu.org>
parents:
diff changeset
5808 any sequence of whitespace characters. If you want to match just a space,
Dave Love <fx@gnu.org>
parents:
diff changeset
5809 type C-q SPC.
Dave Love <fx@gnu.org>
parents:
diff changeset
5810
Dave Love <fx@gnu.org>
parents:
diff changeset
5811 **** Incremental search is now implemented as a major mode. When you
Dave Love <fx@gnu.org>
parents:
diff changeset
5812 type C-s, it switches temporarily to a different keymap which defines
Dave Love <fx@gnu.org>
parents:
diff changeset
5813 each key to do what it ought to do for incremental search. This has
Dave Love <fx@gnu.org>
parents:
diff changeset
5814 next to no effect on the user-visible behavior of searching, but makes
Dave Love <fx@gnu.org>
parents:
diff changeset
5815 it easier to customize that behavior.
Dave Love <fx@gnu.org>
parents:
diff changeset
5816
Dave Love <fx@gnu.org>
parents:
diff changeset
5817 Emacs 19 eliminates the old variables `search-...-char' that used to
Dave Love <fx@gnu.org>
parents:
diff changeset
5818 be the way to specify the characters to use for various special
Dave Love <fx@gnu.org>
parents:
diff changeset
5819 purposes in incremental search. Instead, you can define the meaning
Dave Love <fx@gnu.org>
parents:
diff changeset
5820 of a character in incremental search by modifying `isearch-mode-map'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5821
Dave Love <fx@gnu.org>
parents:
diff changeset
5822 *** New commands in Buffer Menu mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5823
Dave Love <fx@gnu.org>
parents:
diff changeset
5824 The command C-o now displays the current line's buffer in another
Dave Love <fx@gnu.org>
parents:
diff changeset
5825 window but does not select it. This is like the existing command `o'
Dave Love <fx@gnu.org>
parents:
diff changeset
5826 which selects the current line's buffer in another window.
Dave Love <fx@gnu.org>
parents:
diff changeset
5827
Dave Love <fx@gnu.org>
parents:
diff changeset
5828 The command % toggles the read-only flag of the current line's buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
5829
Dave Love <fx@gnu.org>
parents:
diff changeset
5830 The way to switch to a set of several buffers, including those marked
Dave Love <fx@gnu.org>
parents:
diff changeset
5831 with m, is now v. The q command simply quits, replacing the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
5832 menu buffer with the buffer that was displayed previously.
Dave Love <fx@gnu.org>
parents:
diff changeset
5833
Dave Love <fx@gnu.org>
parents:
diff changeset
5834 ** New major modes and packages.
Dave Love <fx@gnu.org>
parents:
diff changeset
5835
Dave Love <fx@gnu.org>
parents:
diff changeset
5836 *** The news reader GNUS is now installed.
Dave Love <fx@gnu.org>
parents:
diff changeset
5837
Dave Love <fx@gnu.org>
parents:
diff changeset
5838 *** There is a new interface for version control systems, called VC.
Dave Love <fx@gnu.org>
parents:
diff changeset
5839 It works with both RCS and SCCS; in fact, you don't really have to
Dave Love <fx@gnu.org>
parents:
diff changeset
5840 know which one of them is being used, because it automatically deals
Dave Love <fx@gnu.org>
parents:
diff changeset
5841 with either one.
Dave Love <fx@gnu.org>
parents:
diff changeset
5842
Dave Love <fx@gnu.org>
parents:
diff changeset
5843 Most of the time, the only command you have to know about is C-x C-q.
Dave Love <fx@gnu.org>
parents:
diff changeset
5844 This command normally toggles the read-only flag of the current
Dave Love <fx@gnu.org>
parents:
diff changeset
5845 buffer. If the buffer is visiting a file that is maintained with a
Dave Love <fx@gnu.org>
parents:
diff changeset
5846 version control system, the command still toggles read-only, but does
Dave Love <fx@gnu.org>
parents:
diff changeset
5847 so by checking the file in or checking it out.
Dave Love <fx@gnu.org>
parents:
diff changeset
5848
Dave Love <fx@gnu.org>
parents:
diff changeset
5849 When you check a file in, VC asks you for a log entry by popping up a
Dave Love <fx@gnu.org>
parents:
diff changeset
5850 buffer. Edit the entry there, then type C-c C-c when it is ready.
Dave Love <fx@gnu.org>
parents:
diff changeset
5851 That's when the actual checkin happens. If you change your mind about
Dave Love <fx@gnu.org>
parents:
diff changeset
5852 the checkin, simply switch buffers and don't ever go back to the log
Dave Love <fx@gnu.org>
parents:
diff changeset
5853 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
5854
Dave Love <fx@gnu.org>
parents:
diff changeset
5855 To start using version control for a file, use the command C-x v v.
Dave Love <fx@gnu.org>
parents:
diff changeset
5856 This works like C-x C-q (performing the next logical version-control
Dave Love <fx@gnu.org>
parents:
diff changeset
5857 operation needed to change the file's writability) but it will also
Dave Love <fx@gnu.org>
parents:
diff changeset
5858 perform initial checkin on an unregistered file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5859
Dave Love <fx@gnu.org>
parents:
diff changeset
5860 By default, VC uses RCS if RCS is installed on your machine;
Dave Love <fx@gnu.org>
parents:
diff changeset
5861 otherwise, SCCS. If you want to make the choice explicitly, you can do
Dave Love <fx@gnu.org>
parents:
diff changeset
5862 it by setting `vc-default-back-end' to the symbol `RCS' or the symbol
Dave Love <fx@gnu.org>
parents:
diff changeset
5863 `SCCS'.
Dave Love <fx@gnu.org>
parents:
diff changeset
5864
Dave Love <fx@gnu.org>
parents:
diff changeset
5865 You can tell when a file you visit is maintained with version control
Dave Love <fx@gnu.org>
parents:
diff changeset
5866 because either `RCS' or `SCCS' appears in the mode line.
Dave Love <fx@gnu.org>
parents:
diff changeset
5867
Dave Love <fx@gnu.org>
parents:
diff changeset
5868 *** A new Calendar mode has been added, the work of Edward M. Reingold.
Dave Love <fx@gnu.org>
parents:
diff changeset
5869 The mode can display the Gregorian calendar and a variety of other
Dave Love <fx@gnu.org>
parents:
diff changeset
5870 calendars at any date, and interacts with a diary facility similar to
Dave Love <fx@gnu.org>
parents:
diff changeset
5871 the UNIX `calendar' utility.
Dave Love <fx@gnu.org>
parents:
diff changeset
5872
Dave Love <fx@gnu.org>
parents:
diff changeset
5873 *** There is a new major mode for editing binary files: Hexl mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5874 To use it, use M-x hexl-find-file instead of C-x C-f to visit the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5875 This command converts the file's contents to hexadecimal and lets you
Dave Love <fx@gnu.org>
parents:
diff changeset
5876 edit the translation. When you save the file, it is converted
Dave Love <fx@gnu.org>
parents:
diff changeset
5877 automatically back to binary.
Dave Love <fx@gnu.org>
parents:
diff changeset
5878
Dave Love <fx@gnu.org>
parents:
diff changeset
5879 You can also use M-x hexl-mode to translate an existing buffer into hex.
Dave Love <fx@gnu.org>
parents:
diff changeset
5880 Do this if you have already visited a binary file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5881
Dave Love <fx@gnu.org>
parents:
diff changeset
5882 Hexl mode has a few other commands:
Dave Love <fx@gnu.org>
parents:
diff changeset
5883
Dave Love <fx@gnu.org>
parents:
diff changeset
5884 C-M-d insert a byte with a code typed in decimal.
Dave Love <fx@gnu.org>
parents:
diff changeset
5885 C-M-o insert a byte with a code typed in octal.
Dave Love <fx@gnu.org>
parents:
diff changeset
5886 C-M-x insert a byte with a code typed in hex.
Dave Love <fx@gnu.org>
parents:
diff changeset
5887
Dave Love <fx@gnu.org>
parents:
diff changeset
5888 C-x [ move to the beginning of a 1k-byte "page".
Dave Love <fx@gnu.org>
parents:
diff changeset
5889 C-x ] move to the end of a 1k-byte "page".
Dave Love <fx@gnu.org>
parents:
diff changeset
5890
Dave Love <fx@gnu.org>
parents:
diff changeset
5891 M-g go to an address specified in hex.
Dave Love <fx@gnu.org>
parents:
diff changeset
5892 M-j go to an address specified in decimal.
Dave Love <fx@gnu.org>
parents:
diff changeset
5893
Dave Love <fx@gnu.org>
parents:
diff changeset
5894 C-c C-c leave hexl mode and go back to the previous major mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5895
Dave Love <fx@gnu.org>
parents:
diff changeset
5896 *** Miscellaneous new major modes include Awk mode, Icon mode, Makefile
Dave Love <fx@gnu.org>
parents:
diff changeset
5897 mode, Perl mode and SGML mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5898
Dave Love <fx@gnu.org>
parents:
diff changeset
5899 *** Edebug, a new source-level debugger for Emacs Lisp functions.
Dave Love <fx@gnu.org>
parents:
diff changeset
5900
Dave Love <fx@gnu.org>
parents:
diff changeset
5901 To use Edebug, use the command M-x edebug-defun to "evaluate" a
Dave Love <fx@gnu.org>
parents:
diff changeset
5902 function definition in an Emacs Lisp file. We put "evaluate" in
Dave Love <fx@gnu.org>
parents:
diff changeset
5903 quotation marks because it doesn't just evaluate the function, it also
Dave Love <fx@gnu.org>
parents:
diff changeset
5904 inserts additional information to support source-level debugging.
Dave Love <fx@gnu.org>
parents:
diff changeset
5905
Dave Love <fx@gnu.org>
parents:
diff changeset
5906 You must also do
Dave Love <fx@gnu.org>
parents:
diff changeset
5907
Dave Love <fx@gnu.org>
parents:
diff changeset
5908 (setq debugger 'edebug-debug)
Dave Love <fx@gnu.org>
parents:
diff changeset
5909
Dave Love <fx@gnu.org>
parents:
diff changeset
5910 to cause errors and single-stepping to use Edebug instead of the usual
Dave Love <fx@gnu.org>
parents:
diff changeset
5911 Emacs Lisp debugger.
Dave Love <fx@gnu.org>
parents:
diff changeset
5912
Dave Love <fx@gnu.org>
parents:
diff changeset
5913 For more information, see the Edebug manual, which should be included
Dave Love <fx@gnu.org>
parents:
diff changeset
5914 in the Emacs distribution.
Dave Love <fx@gnu.org>
parents:
diff changeset
5915
Dave Love <fx@gnu.org>
parents:
diff changeset
5916 *** C++ mode is like C mode, except that it understands C++ comment syntax
Dave Love <fx@gnu.org>
parents:
diff changeset
5917 and certain other differences between C and C++. It also has a command
Dave Love <fx@gnu.org>
parents:
diff changeset
5918 `fill-c++-comment' which fills a paragraph made of comment lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
5919
Dave Love <fx@gnu.org>
parents:
diff changeset
5920 The command `comment-region' is useful in C++ mode for commenting out
Dave Love <fx@gnu.org>
parents:
diff changeset
5921 several consecutive lines, or removing the commenting out of such lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
5922
Dave Love <fx@gnu.org>
parents:
diff changeset
5923 *** A new package for merging two variants of the same text.
Dave Love <fx@gnu.org>
parents:
diff changeset
5924
Dave Love <fx@gnu.org>
parents:
diff changeset
5925 It's not unusual for programmers to get their signals crossed and
Dave Love <fx@gnu.org>
parents:
diff changeset
5926 modify the same program in two different directions. Then somebody
Dave Love <fx@gnu.org>
parents:
diff changeset
5927 has to merge the two versions. The command `emerge-files' makes this
Dave Love <fx@gnu.org>
parents:
diff changeset
5928 easier.
Dave Love <fx@gnu.org>
parents:
diff changeset
5929
Dave Love <fx@gnu.org>
parents:
diff changeset
5930 `emerge-files' reads two file names and compares them. Then it
Dave Love <fx@gnu.org>
parents:
diff changeset
5931 displays three buffers: one for each file, and one for the
Dave Love <fx@gnu.org>
parents:
diff changeset
5932 differences.
Dave Love <fx@gnu.org>
parents:
diff changeset
5933
Dave Love <fx@gnu.org>
parents:
diff changeset
5934 If the original version of the file is available, you can make things
Dave Love <fx@gnu.org>
parents:
diff changeset
5935 even easier using `emerge-files-with-ancestor'. It reads three file
Dave Love <fx@gnu.org>
parents:
diff changeset
5936 names--variant 1, variant 2, and the common ancestor--and uses diff3
Dave Love <fx@gnu.org>
parents:
diff changeset
5937 to compare them.
Dave Love <fx@gnu.org>
parents:
diff changeset
5938
Dave Love <fx@gnu.org>
parents:
diff changeset
5939 You control the merging interactively. The main loop of Emerge
Dave Love <fx@gnu.org>
parents:
diff changeset
5940 consists of showing you one set of differences, asking you what to do
Dave Love <fx@gnu.org>
parents:
diff changeset
5941 about them, and doing it. You have a choice of two modes for giving
Dave Love <fx@gnu.org>
parents:
diff changeset
5942 directions to Emerge: "fast" mode and "edit" mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
5943
Dave Love <fx@gnu.org>
parents:
diff changeset
5944 In Fast mode, Emerge commands are single characters, and ordinary
Dave Love <fx@gnu.org>
parents:
diff changeset
5945 Emacs commands are disabled. This makes Emerge operations fast, but
Dave Love <fx@gnu.org>
parents:
diff changeset
5946 prevents you from doing more than selecting the A or the B version of
Dave Love <fx@gnu.org>
parents:
diff changeset
5947 differences. In Edit mode, all emerge commands use the C-c prefix,
Dave Love <fx@gnu.org>
parents:
diff changeset
5948 and the usual Emacs commands are available. This allows editing the
Dave Love <fx@gnu.org>
parents:
diff changeset
5949 merge buffer, but slows down Emerge operations. Edit and fast modes
Dave Love <fx@gnu.org>
parents:
diff changeset
5950 are indicated by `F' and `E' in the minor modes in the mode line.
Dave Love <fx@gnu.org>
parents:
diff changeset
5951
Dave Love <fx@gnu.org>
parents:
diff changeset
5952 The Emerge commands are:
Dave Love <fx@gnu.org>
parents:
diff changeset
5953
Dave Love <fx@gnu.org>
parents:
diff changeset
5954 p go to the previous difference
Dave Love <fx@gnu.org>
parents:
diff changeset
5955 n go to the next difference
Dave Love <fx@gnu.org>
parents:
diff changeset
5956 a select the A version of this difference
Dave Love <fx@gnu.org>
parents:
diff changeset
5957 b select the B version of this difference
Dave Love <fx@gnu.org>
parents:
diff changeset
5958 j go to a particular difference (prefix argument
Dave Love <fx@gnu.org>
parents:
diff changeset
5959 specifies which difference) (0j suppresses display of
Dave Love <fx@gnu.org>
parents:
diff changeset
5960 the flags)
Dave Love <fx@gnu.org>
parents:
diff changeset
5961 q quit - finish the merge*
Dave Love <fx@gnu.org>
parents:
diff changeset
5962 f go into fast mode
Dave Love <fx@gnu.org>
parents:
diff changeset
5963 e go into edit mode
Dave Love <fx@gnu.org>
parents:
diff changeset
5964 l recenter (C-l) all three windows*
Dave Love <fx@gnu.org>
parents:
diff changeset
5965 - and 0 through 9
Dave Love <fx@gnu.org>
parents:
diff changeset
5966 prefix numeric arguments
Dave Love <fx@gnu.org>
parents:
diff changeset
5967 d a select the A version as the default from here down in
Dave Love <fx@gnu.org>
parents:
diff changeset
5968 the merge buffer*
Dave Love <fx@gnu.org>
parents:
diff changeset
5969 d b select the B version as the default from here down in
Dave Love <fx@gnu.org>
parents:
diff changeset
5970 the merge buffer*
Dave Love <fx@gnu.org>
parents:
diff changeset
5971 c a copy the A version of the difference into the kill
Dave Love <fx@gnu.org>
parents:
diff changeset
5972 ring
Dave Love <fx@gnu.org>
parents:
diff changeset
5973 c b copy the B version of the difference into the kill
Dave Love <fx@gnu.org>
parents:
diff changeset
5974 ring
Dave Love <fx@gnu.org>
parents:
diff changeset
5975 i a insert the A version of the difference at the point
Dave Love <fx@gnu.org>
parents:
diff changeset
5976 i b insert the B version of the difference at the point
Dave Love <fx@gnu.org>
parents:
diff changeset
5977 m put the point and mark around the difference region
Dave Love <fx@gnu.org>
parents:
diff changeset
5978 ^ scroll-down (like M-v) the three windows*
Dave Love <fx@gnu.org>
parents:
diff changeset
5979 v scroll-up (like C-v) the three windows*
Dave Love <fx@gnu.org>
parents:
diff changeset
5980 < scroll-left (like C-x <) the three windows*
Dave Love <fx@gnu.org>
parents:
diff changeset
5981 > scroll-right (like C-x >) the three windows*
Dave Love <fx@gnu.org>
parents:
diff changeset
5982 | reset horizontal scroll on the three windows*
Dave Love <fx@gnu.org>
parents:
diff changeset
5983 x 1 shrink the merge window to one line (use C-u l to restore it
Dave Love <fx@gnu.org>
parents:
diff changeset
5984 to full size)
Dave Love <fx@gnu.org>
parents:
diff changeset
5985 x a find the difference containing a location in the A buffer*
Dave Love <fx@gnu.org>
parents:
diff changeset
5986 x b find the difference containing a location in the B buffer*
Dave Love <fx@gnu.org>
parents:
diff changeset
5987 x c combine the two versions of this difference*
Dave Love <fx@gnu.org>
parents:
diff changeset
5988 x C combine the two versions of this difference, using a
Dave Love <fx@gnu.org>
parents:
diff changeset
5989 register's value as the template*
Dave Love <fx@gnu.org>
parents:
diff changeset
5990 x d find the difference containing a location in the merge buffer*
Dave Love <fx@gnu.org>
parents:
diff changeset
5991 x f show the files/buffers Emerge is operating on in Help window
Dave Love <fx@gnu.org>
parents:
diff changeset
5992 (use C-u l to restore windows)
Dave Love <fx@gnu.org>
parents:
diff changeset
5993 x j join this difference with the following one
Dave Love <fx@gnu.org>
parents:
diff changeset
5994 (C-u x j joins this difference with the previous one)
Dave Love <fx@gnu.org>
parents:
diff changeset
5995 x l show line numbers of points in A, B, and merge buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
5996 x m change major mode of merge buffer*
Dave Love <fx@gnu.org>
parents:
diff changeset
5997 x s split this difference into two differences
Dave Love <fx@gnu.org>
parents:
diff changeset
5998 (first position the point in all three buffers to the places
Dave Love <fx@gnu.org>
parents:
diff changeset
5999 to split the difference)
Dave Love <fx@gnu.org>
parents:
diff changeset
6000 x t trim identical lines off top and bottom of difference
Dave Love <fx@gnu.org>
parents:
diff changeset
6001 (such lines occur when the A and B versions are
Dave Love <fx@gnu.org>
parents:
diff changeset
6002 identical but differ from the ancestor version)
Dave Love <fx@gnu.org>
parents:
diff changeset
6003 x x set the template for the x c command*
Dave Love <fx@gnu.org>
parents:
diff changeset
6004
Dave Love <fx@gnu.org>
parents:
diff changeset
6005 Normally, the merged output goes back in the first file specified.
Dave Love <fx@gnu.org>
parents:
diff changeset
6006 If you use a prefix argument, Emerge reads another file name to use
Dave Love <fx@gnu.org>
parents:
diff changeset
6007 for the output file.
Dave Love <fx@gnu.org>
parents:
diff changeset
6008
Dave Love <fx@gnu.org>
parents:
diff changeset
6009 Once Emerge has prepared the buffer of differences, it runs the hooks
Dave Love <fx@gnu.org>
parents:
diff changeset
6010 in `emerge-startup-hooks'.
Dave Love <fx@gnu.org>
parents:
diff changeset
6011
Dave Love <fx@gnu.org>
parents:
diff changeset
6012 *** Asm mode is a new major mode for editing files of assembler code.
Dave Love <fx@gnu.org>
parents:
diff changeset
6013 It defines these commands:
Dave Love <fx@gnu.org>
parents:
diff changeset
6014
Dave Love <fx@gnu.org>
parents:
diff changeset
6015 TAB tab-to-tab-stop.
Dave Love <fx@gnu.org>
parents:
diff changeset
6016 LFD Insert a newline and then indent using tab-to-tab-stop.
Dave Love <fx@gnu.org>
parents:
diff changeset
6017 : Insert a colon and then remove the indentation
Dave Love <fx@gnu.org>
parents:
diff changeset
6018 from before the label preceding colon. Then tab-to-tab-stop.
Dave Love <fx@gnu.org>
parents:
diff changeset
6019 ; Insert or align a comment.
Dave Love <fx@gnu.org>
parents:
diff changeset
6020
Dave Love <fx@gnu.org>
parents:
diff changeset
6021 *** Two-column mode lets you conveniently edit two side-by-side columns
Dave Love <fx@gnu.org>
parents:
diff changeset
6022 of text. It works using two side-by-side windows, each showing its
Dave Love <fx@gnu.org>
parents:
diff changeset
6023 own buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6024
Dave Love <fx@gnu.org>
parents:
diff changeset
6025 Here are three ways to enter two-column mode:
Dave Love <fx@gnu.org>
parents:
diff changeset
6026
Dave Love <fx@gnu.org>
parents:
diff changeset
6027 C-x 6 2 makes the current buffer into the left-hand buffer. In the
Dave Love <fx@gnu.org>
parents:
diff changeset
6028 right-hand window it puts a buffer whose name is based on the current
Dave Love <fx@gnu.org>
parents:
diff changeset
6029 buffer's name.
Dave Love <fx@gnu.org>
parents:
diff changeset
6030
Dave Love <fx@gnu.org>
parents:
diff changeset
6031 C-x 6 b BUFFER RET makes the current buffer into the left-hand buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
6032 and uses buffer BUFFER as the right-hand buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6033
Dave Love <fx@gnu.org>
parents:
diff changeset
6034 C-x 6 s splits the current buffer, which contains two-column text,
Dave Love <fx@gnu.org>
parents:
diff changeset
6035 into two side-by-side buffers. The old current buffer becomes the
Dave Love <fx@gnu.org>
parents:
diff changeset
6036 left-hand buffer, but the text in the right column is moved into the
Dave Love <fx@gnu.org>
parents:
diff changeset
6037 right-hand buffer. The current column specifies the split point.
Dave Love <fx@gnu.org>
parents:
diff changeset
6038 Splitting starts with the current line and continues to the end of the
Dave Love <fx@gnu.org>
parents:
diff changeset
6039 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6040
Dave Love <fx@gnu.org>
parents:
diff changeset
6041 C-x 6 s takes a prefix argument which specifies how many characters
Dave Love <fx@gnu.org>
parents:
diff changeset
6042 before point constitute the column separator. (The default argument
Dave Love <fx@gnu.org>
parents:
diff changeset
6043 is 1, as usual, so by default the column separator is the character
Dave Love <fx@gnu.org>
parents:
diff changeset
6044 before point.) Lines that don't have the column separator at the
Dave Love <fx@gnu.org>
parents:
diff changeset
6045 proper place remain unsplit; they stay in the left-hand buffer, and
Dave Love <fx@gnu.org>
parents:
diff changeset
6046 the right-hand buffer gets an empty line to correspond.
Dave Love <fx@gnu.org>
parents:
diff changeset
6047
Dave Love <fx@gnu.org>
parents:
diff changeset
6048 You can scroll both buffers together using C-x 6 SPC (scroll up), C-x
Dave Love <fx@gnu.org>
parents:
diff changeset
6049 6 DEL (scroll down), and C-x 6 RET (scroll up one line). C-x 6 C-l
Dave Love <fx@gnu.org>
parents:
diff changeset
6050 recenters both buffers together.
Dave Love <fx@gnu.org>
parents:
diff changeset
6051
Dave Love <fx@gnu.org>
parents:
diff changeset
6052 If you want to make a line which will span both columns, put it in
Dave Love <fx@gnu.org>
parents:
diff changeset
6053 the left-hand buffer, with an empty line in the corresponding place in
Dave Love <fx@gnu.org>
parents:
diff changeset
6054 the right-hand buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6055
Dave Love <fx@gnu.org>
parents:
diff changeset
6056 When you have edited both buffers as you wish, merge them with C-x 6
Dave Love <fx@gnu.org>
parents:
diff changeset
6057 1. This copies the text from the right-hand buffer as a second column
Dave Love <fx@gnu.org>
parents:
diff changeset
6058 in the other buffer. To go back to two-column editing, use C-x 6 s.
Dave Love <fx@gnu.org>
parents:
diff changeset
6059
Dave Love <fx@gnu.org>
parents:
diff changeset
6060 Use C-x 6 d to disassociate the two buffers, leaving each as it
Dave Love <fx@gnu.org>
parents:
diff changeset
6061 stands. (If the other buffer, the one that was not current when you
Dave Love <fx@gnu.org>
parents:
diff changeset
6062 type C-x 6 d, is empty, C-x 6 d kills it.)
Dave Love <fx@gnu.org>
parents:
diff changeset
6063
Dave Love <fx@gnu.org>
parents:
diff changeset
6064 *** You can supply command arguments such as files to visit to an Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
6065 that is already running. To do this, you must do this in your .emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
6066 file:
Dave Love <fx@gnu.org>
parents:
diff changeset
6067 (add-hook 'suspend-hook 'resume-suspend-hook)
Dave Love <fx@gnu.org>
parents:
diff changeset
6068 Also you must use the shellscript emacs.csh or emacs.sh, found in the
Dave Love <fx@gnu.org>
parents:
diff changeset
6069 etc subdirectory.
Dave Love <fx@gnu.org>
parents:
diff changeset
6070
Dave Love <fx@gnu.org>
parents:
diff changeset
6071 *** Shell mode has been completely replaced.
Dave Love <fx@gnu.org>
parents:
diff changeset
6072 The basic idea is the same, but there are new commands available in
Dave Love <fx@gnu.org>
parents:
diff changeset
6073 this mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
6074
Dave Love <fx@gnu.org>
parents:
diff changeset
6075 TAB now completes the file name before point in the shell buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6076 To get a list of all possible completions, type M-?.
Dave Love <fx@gnu.org>
parents:
diff changeset
6077
Dave Love <fx@gnu.org>
parents:
diff changeset
6078 There is a new convenient history mechanism for repeating previous
Dave Love <fx@gnu.org>
parents:
diff changeset
6079 commands. Use the command M-p to recall the last command; it copies
Dave Love <fx@gnu.org>
parents:
diff changeset
6080 the text of that command to the place where you are editing. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
6081 repeat M-p, it replaces the copied command with the previous command.
Dave Love <fx@gnu.org>
parents:
diff changeset
6082 M-n is similar but goes in the opposite direction towards the present.
Dave Love <fx@gnu.org>
parents:
diff changeset
6083 When you find the command you wanted, you can edit it, or just
Dave Love <fx@gnu.org>
parents:
diff changeset
6084 resubmit it by typing RET.
Dave Love <fx@gnu.org>
parents:
diff changeset
6085
Dave Love <fx@gnu.org>
parents:
diff changeset
6086 You can also use M-r and M-s to search for (respectively) earlier or
Dave Love <fx@gnu.org>
parents:
diff changeset
6087 later inputs starting with a given string. First type the string,
Dave Love <fx@gnu.org>
parents:
diff changeset
6088 then type M-r to yank a previous input from the history which starts
Dave Love <fx@gnu.org>
parents:
diff changeset
6089 with that string. You can repeat M-r to find successively earlier
Dave Love <fx@gnu.org>
parents:
diff changeset
6090 inputs starting with the same string. You can start moving in the
Dave Love <fx@gnu.org>
parents:
diff changeset
6091 opposite direction (toward more recent inputs) by typing M-s instead
Dave Love <fx@gnu.org>
parents:
diff changeset
6092 of M-r. As long as you don't use any commands except M-r and M-s,
Dave Love <fx@gnu.org>
parents:
diff changeset
6093 they keep using the same string that you had entered initially.
Dave Love <fx@gnu.org>
parents:
diff changeset
6094
Dave Love <fx@gnu.org>
parents:
diff changeset
6095 C-c C-o kills the last batch of output from a shell command. This is
Dave Love <fx@gnu.org>
parents:
diff changeset
6096 useful if a shell command spews out lots of output that just gets in
Dave Love <fx@gnu.org>
parents:
diff changeset
6097 the way.
Dave Love <fx@gnu.org>
parents:
diff changeset
6098
Dave Love <fx@gnu.org>
parents:
diff changeset
6099 C-c C-r scrolls to display the beginning of the last batch of output
Dave Love <fx@gnu.org>
parents:
diff changeset
6100 at the top of the window; it also moves the cursor there.
Dave Love <fx@gnu.org>
parents:
diff changeset
6101
Dave Love <fx@gnu.org>
parents:
diff changeset
6102 C-a on a line that starts with a shell prompt moves to the end of the
Dave Love <fx@gnu.org>
parents:
diff changeset
6103 prompt, not to the very beginning of the line.
Dave Love <fx@gnu.org>
parents:
diff changeset
6104
Dave Love <fx@gnu.org>
parents:
diff changeset
6105 C-d typed at the end of the shell buffer sends EOF to the subshell.
Dave Love <fx@gnu.org>
parents:
diff changeset
6106 At any other position in the buffer, it deletes a character as usual.
Dave Love <fx@gnu.org>
parents:
diff changeset
6107
Dave Love <fx@gnu.org>
parents:
diff changeset
6108 If Emacs gets confused while trying to track changes in the shell's
Dave Love <fx@gnu.org>
parents:
diff changeset
6109 current directory, type M-x dirs to re-synchronize.
Dave Love <fx@gnu.org>
parents:
diff changeset
6110
Dave Love <fx@gnu.org>
parents:
diff changeset
6111 M-x send-invisible reads a line of text without echoing it, and
Dave Love <fx@gnu.org>
parents:
diff changeset
6112 sends it to the shell.
Dave Love <fx@gnu.org>
parents:
diff changeset
6113
Dave Love <fx@gnu.org>
parents:
diff changeset
6114 If you accidentally suspend your process, use M-x comint-continue-subjob
Dave Love <fx@gnu.org>
parents:
diff changeset
6115 to continue it.
Dave Love <fx@gnu.org>
parents:
diff changeset
6116
Dave Love <fx@gnu.org>
parents:
diff changeset
6117 *** There is now a convenient way to enable flow control on terminals
Dave Love <fx@gnu.org>
parents:
diff changeset
6118 where you can't win without it. Suppose you want to do this on
Dave Love <fx@gnu.org>
parents:
diff changeset
6119 VT-100 and H19 terminals; put the following in your `.emacs' file:
Dave Love <fx@gnu.org>
parents:
diff changeset
6120
Dave Love <fx@gnu.org>
parents:
diff changeset
6121 (enable-flow-control-on "vt100" "h19")
Dave Love <fx@gnu.org>
parents:
diff changeset
6122
Dave Love <fx@gnu.org>
parents:
diff changeset
6123 When flow control is enabled, you must type C-\ to get the effect of a
Dave Love <fx@gnu.org>
parents:
diff changeset
6124 C-s, and type C-^ to get the effect of a C-q.
Dave Love <fx@gnu.org>
parents:
diff changeset
6125
Dave Love <fx@gnu.org>
parents:
diff changeset
6126 The function `enable-flow-control' enables flow control unconditionally.
Dave Love <fx@gnu.org>
parents:
diff changeset
6127
Dave Love <fx@gnu.org>
parents:
diff changeset
6128 ** Changes in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
6129
Dave Love <fx@gnu.org>
parents:
diff changeset
6130 Dired has many new features which allow you to do these things:
Dave Love <fx@gnu.org>
parents:
diff changeset
6131
Dave Love <fx@gnu.org>
parents:
diff changeset
6132 - Rename, copy, or make links to many files at once.
Dave Love <fx@gnu.org>
parents:
diff changeset
6133
Dave Love <fx@gnu.org>
parents:
diff changeset
6134 - Make distinguishable types of marks for different operations.
Dave Love <fx@gnu.org>
parents:
diff changeset
6135
Dave Love <fx@gnu.org>
parents:
diff changeset
6136 - Display contents of subdirectories in the same Dired buffer as the
Dave Love <fx@gnu.org>
parents:
diff changeset
6137 parent directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
6138
Dave Love <fx@gnu.org>
parents:
diff changeset
6139 *** Setting and Clearing Marks
Dave Love <fx@gnu.org>
parents:
diff changeset
6140
Dave Love <fx@gnu.org>
parents:
diff changeset
6141 There are now two kinds of marker that you can put on a file in Dired:
Dave Love <fx@gnu.org>
parents:
diff changeset
6142 `D' for deletion, and `*' for any other kind of operation.
Dave Love <fx@gnu.org>
parents:
diff changeset
6143 The `x' command deletes only files marked with `D', and most
Dave Love <fx@gnu.org>
parents:
diff changeset
6144 other Dired commands operate only on the files marked with `*'.
Dave Love <fx@gnu.org>
parents:
diff changeset
6145
Dave Love <fx@gnu.org>
parents:
diff changeset
6146 To mark files with `D' (also called "flagging" the files), you
Dave Love <fx@gnu.org>
parents:
diff changeset
6147 can use `d' as usual. Here are some commands for marking with
Dave Love <fx@gnu.org>
parents:
diff changeset
6148 `*' (and also for unmarking):
Dave Love <fx@gnu.org>
parents:
diff changeset
6149
Dave Love <fx@gnu.org>
parents:
diff changeset
6150 **** `m' marks the current file with `*', for an operation other than
Dave Love <fx@gnu.org>
parents:
diff changeset
6151 deletion.
Dave Love <fx@gnu.org>
parents:
diff changeset
6152
Dave Love <fx@gnu.org>
parents:
diff changeset
6153 **** `*' marks all executable files. With a prefix argument, it
Dave Love <fx@gnu.org>
parents:
diff changeset
6154 unmarks all those files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6155
Dave Love <fx@gnu.org>
parents:
diff changeset
6156 **** `@' marks all symbolic links. With a prefix argument, it unmarks
Dave Love <fx@gnu.org>
parents:
diff changeset
6157 all those files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6158
Dave Love <fx@gnu.org>
parents:
diff changeset
6159 **** `/' marks all directory files except `.' and `..'. With a prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
6160 argument, it unmarks all those files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6161
Dave Love <fx@gnu.org>
parents:
diff changeset
6162 **** M-DEL removes a specific or all marks from every file. With an
Dave Love <fx@gnu.org>
parents:
diff changeset
6163 argument, queries for each marked file. Type your help character,
Dave Love <fx@gnu.org>
parents:
diff changeset
6164 usually C-h, at that time for help.
Dave Love <fx@gnu.org>
parents:
diff changeset
6165
Dave Love <fx@gnu.org>
parents:
diff changeset
6166 **** `c' replaces all marks that use the character OLD with marks that
Dave Love <fx@gnu.org>
parents:
diff changeset
6167 use the character NEW. You can use almost any character as a mark
Dave Love <fx@gnu.org>
parents:
diff changeset
6168 character by means of this command, to distinguish various classes of
Dave Love <fx@gnu.org>
parents:
diff changeset
6169 files. If OLD is ` ', then the command operates on all unmarked
Dave Love <fx@gnu.org>
parents:
diff changeset
6170 files; if NEW is ` ', then the command unmarks the files it acts on.
Dave Love <fx@gnu.org>
parents:
diff changeset
6171
Dave Love <fx@gnu.org>
parents:
diff changeset
6172 *** Operating on Multiple Files
Dave Love <fx@gnu.org>
parents:
diff changeset
6173
Dave Love <fx@gnu.org>
parents:
diff changeset
6174 The Dired commands to operate directly on files (rename them, copy
Dave Love <fx@gnu.org>
parents:
diff changeset
6175 them, and so on) have been generalized to work on multiple files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6176 There are also some additional commands in this series.
Dave Love <fx@gnu.org>
parents:
diff changeset
6177
Dave Love <fx@gnu.org>
parents:
diff changeset
6178 All of these commands use the same convention to decide which files to
Dave Love <fx@gnu.org>
parents:
diff changeset
6179 manipulate:
Dave Love <fx@gnu.org>
parents:
diff changeset
6180
Dave Love <fx@gnu.org>
parents:
diff changeset
6181 - If you give the command a numeric prefix argument @var{n}, it operates
Dave Love <fx@gnu.org>
parents:
diff changeset
6182 on the next @var{n} files, starting with the current file.
Dave Love <fx@gnu.org>
parents:
diff changeset
6183
Dave Love <fx@gnu.org>
parents:
diff changeset
6184 - Otherwise, if there are marked files, the commands operate on all the
Dave Love <fx@gnu.org>
parents:
diff changeset
6185 marked files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6186
Dave Love <fx@gnu.org>
parents:
diff changeset
6187 - Otherwise, the command operates on the current file only.
Dave Love <fx@gnu.org>
parents:
diff changeset
6188
Dave Love <fx@gnu.org>
parents:
diff changeset
6189 These are the commands:
Dave Love <fx@gnu.org>
parents:
diff changeset
6190
Dave Love <fx@gnu.org>
parents:
diff changeset
6191 **** `C' copies the specified files. You must specify a directory to
Dave Love <fx@gnu.org>
parents:
diff changeset
6192 copy into, or (if copying a single file) a new name.
Dave Love <fx@gnu.org>
parents:
diff changeset
6193
Dave Love <fx@gnu.org>
parents:
diff changeset
6194 If `dired-copy-preserve-time' is non-`nil', then copying sets
Dave Love <fx@gnu.org>
parents:
diff changeset
6195 the modification time of the new file to be the same as that of the old
Dave Love <fx@gnu.org>
parents:
diff changeset
6196 file.
Dave Love <fx@gnu.org>
parents:
diff changeset
6197
Dave Love <fx@gnu.org>
parents:
diff changeset
6198 **** `R' renames the specified files. You must specify a directory to
Dave Love <fx@gnu.org>
parents:
diff changeset
6199 rename into, or (if renaming a single file) a new name.
Dave Love <fx@gnu.org>
parents:
diff changeset
6200
Dave Love <fx@gnu.org>
parents:
diff changeset
6201 Dired automatically changes the visited file name of buffers associated
Dave Love <fx@gnu.org>
parents:
diff changeset
6202 with renamed files so that they refer to the new names.
Dave Love <fx@gnu.org>
parents:
diff changeset
6203
Dave Love <fx@gnu.org>
parents:
diff changeset
6204 **** `H' makes hard links to the specified files. You must specify a
Dave Love <fx@gnu.org>
parents:
diff changeset
6205 directory to make the links in, or (if making just one link) the name
Dave Love <fx@gnu.org>
parents:
diff changeset
6206 to give the link.
Dave Love <fx@gnu.org>
parents:
diff changeset
6207
Dave Love <fx@gnu.org>
parents:
diff changeset
6208 **** `S' makes symbolic links to the specified files. You must specify
Dave Love <fx@gnu.org>
parents:
diff changeset
6209 a directory to make the links in, or (if making just one link) the
Dave Love <fx@gnu.org>
parents:
diff changeset
6210 name to give the link.
Dave Love <fx@gnu.org>
parents:
diff changeset
6211
Dave Love <fx@gnu.org>
parents:
diff changeset
6212 **** `M' changes the mode of the specified files. This calls the
Dave Love <fx@gnu.org>
parents:
diff changeset
6213 `chmod' program, so you can describe the desired mode change with any
Dave Love <fx@gnu.org>
parents:
diff changeset
6214 argument that `chmod' would handle.
Dave Love <fx@gnu.org>
parents:
diff changeset
6215
Dave Love <fx@gnu.org>
parents:
diff changeset
6216 **** `G' changes the group of the specified files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6217
Dave Love <fx@gnu.org>
parents:
diff changeset
6218 **** `O' changes the owner of the specified files. (On normal systems,
Dave Love <fx@gnu.org>
parents:
diff changeset
6219 only the superuser can do this.)
Dave Love <fx@gnu.org>
parents:
diff changeset
6220
Dave Love <fx@gnu.org>
parents:
diff changeset
6221 The variable `dired-chown-program' specifies the name of the
Dave Love <fx@gnu.org>
parents:
diff changeset
6222 program to use to do the work (different systems put `chown' in
Dave Love <fx@gnu.org>
parents:
diff changeset
6223 different places.
Dave Love <fx@gnu.org>
parents:
diff changeset
6224
Dave Love <fx@gnu.org>
parents:
diff changeset
6225 **** `Z' compresses or uncompresses the specified files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6226
Dave Love <fx@gnu.org>
parents:
diff changeset
6227 **** `L' loads the specified Emacs Lisp files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6228
Dave Love <fx@gnu.org>
parents:
diff changeset
6229 **** `B' byte compiles the specified Emacs Lisp files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6230
Dave Love <fx@gnu.org>
parents:
diff changeset
6231 **** `P' prints the specified files. It uses the variables
Dave Love <fx@gnu.org>
parents:
diff changeset
6232 `lpr-command' and `lpr-switches' just as `lpr-file' does.
Dave Love <fx@gnu.org>
parents:
diff changeset
6233
Dave Love <fx@gnu.org>
parents:
diff changeset
6234 *** Shell Commands in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
6235
Dave Love <fx@gnu.org>
parents:
diff changeset
6236 `!' reads a shell command string in the minibuffer and runs the shell
Dave Love <fx@gnu.org>
parents:
diff changeset
6237 command on all the specified files. There are two ways of applying a
Dave Love <fx@gnu.org>
parents:
diff changeset
6238 shell command to multiple files:
Dave Love <fx@gnu.org>
parents:
diff changeset
6239
Dave Love <fx@gnu.org>
parents:
diff changeset
6240 - If you use `*' in the command, then the shell command runs just
Dave Love <fx@gnu.org>
parents:
diff changeset
6241 once, with the list of file names substituted for the `*'.
Dave Love <fx@gnu.org>
parents:
diff changeset
6242
Dave Love <fx@gnu.org>
parents:
diff changeset
6243 Thus, `! tar cf foo.tar * RET' runs `tar' on the entire list of file
Dave Love <fx@gnu.org>
parents:
diff changeset
6244 names, putting them into one tar file `foo.tar'. The file names are
Dave Love <fx@gnu.org>
parents:
diff changeset
6245 inserted in the order that they appear in the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6246
Dave Love <fx@gnu.org>
parents:
diff changeset
6247 - If the command string doesn't contain `*', then it runs once for
Dave Love <fx@gnu.org>
parents:
diff changeset
6248 each file, with the file name attached at the end. For example, `!
Dave Love <fx@gnu.org>
parents:
diff changeset
6249 uudecode RET' runs `uudecode' on each file.
Dave Love <fx@gnu.org>
parents:
diff changeset
6250
Dave Love <fx@gnu.org>
parents:
diff changeset
6251 To run the shell command once for each file but without being limited
Dave Love <fx@gnu.org>
parents:
diff changeset
6252 to putting the file name inserted in the middle, use a shell loop.
Dave Love <fx@gnu.org>
parents:
diff changeset
6253 For example, this shell command would run `uuencode' on each of the
Dave Love <fx@gnu.org>
parents:
diff changeset
6254 specified files, writing the output into a corresponding `.uu' file:
Dave Love <fx@gnu.org>
parents:
diff changeset
6255
Dave Love <fx@gnu.org>
parents:
diff changeset
6256 for file in *; uuencode $file $file >$file.uu; done
Dave Love <fx@gnu.org>
parents:
diff changeset
6257
Dave Love <fx@gnu.org>
parents:
diff changeset
6258 The working directory for the shell command is the top level directory
Dave Love <fx@gnu.org>
parents:
diff changeset
6259 of the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6260
Dave Love <fx@gnu.org>
parents:
diff changeset
6261 *** Regular Expression File Name Substitution
Dave Love <fx@gnu.org>
parents:
diff changeset
6262
Dave Love <fx@gnu.org>
parents:
diff changeset
6263 **** `% m REGEXP RET' marks all files whose names match the regular
Dave Love <fx@gnu.org>
parents:
diff changeset
6264 expression REGEXP.
Dave Love <fx@gnu.org>
parents:
diff changeset
6265
Dave Love <fx@gnu.org>
parents:
diff changeset
6266 Only the non-directory part of the file name is used in matching. Use
Dave Love <fx@gnu.org>
parents:
diff changeset
6267 `^' and `$' to anchor matches. Exclude subdirs by hiding them.
Dave Love <fx@gnu.org>
parents:
diff changeset
6268
Dave Love <fx@gnu.org>
parents:
diff changeset
6269 **** `% d REGEXP RET' flags for deletion all files whose names match
Dave Love <fx@gnu.org>
parents:
diff changeset
6270 the regular expression REGEXP.
Dave Love <fx@gnu.org>
parents:
diff changeset
6271
Dave Love <fx@gnu.org>
parents:
diff changeset
6272 **** `% R', `% C', `% H', `% S'
Dave Love <fx@gnu.org>
parents:
diff changeset
6273
Dave Love <fx@gnu.org>
parents:
diff changeset
6274 These four commands rename, copy, make hard links and make soft links,
Dave Love <fx@gnu.org>
parents:
diff changeset
6275 in each case computing the new name by regular expression substitution
Dave Love <fx@gnu.org>
parents:
diff changeset
6276 from the name of the old file. They effectively perform
Dave Love <fx@gnu.org>
parents:
diff changeset
6277 `query-replace-regexp' on the selected file names in the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6278
Dave Love <fx@gnu.org>
parents:
diff changeset
6279 The commands read two arguments: a regular expression, and a
Dave Love <fx@gnu.org>
parents:
diff changeset
6280 substitution pattern. Each selected file name is matched against the
Dave Love <fx@gnu.org>
parents:
diff changeset
6281 regular expression, and then the part which matched is replaced with
Dave Love <fx@gnu.org>
parents:
diff changeset
6282 the substitution pattern. You can use `\&' and `\DIGIT' in the
Dave Love <fx@gnu.org>
parents:
diff changeset
6283 substitution pattern to refer to all or part of the old file name.
Dave Love <fx@gnu.org>
parents:
diff changeset
6284
Dave Love <fx@gnu.org>
parents:
diff changeset
6285 If the regular expression matches more than once in a file name,
Dave Love <fx@gnu.org>
parents:
diff changeset
6286 only the first match is replaced.
Dave Love <fx@gnu.org>
parents:
diff changeset
6287
Dave Love <fx@gnu.org>
parents:
diff changeset
6288 Normally, the replacement process does not consider the directory names;
Dave Love <fx@gnu.org>
parents:
diff changeset
6289 it operates on the file name within the directory. If you specify a
Dave Love <fx@gnu.org>
parents:
diff changeset
6290 prefix argument of zero, then replacement affects entire file name.
Dave Love <fx@gnu.org>
parents:
diff changeset
6291
Dave Love <fx@gnu.org>
parents:
diff changeset
6292 To apply the command to all files matching the same regexp that you
Dave Love <fx@gnu.org>
parents:
diff changeset
6293 use in the command, mark those files with `% m REGEXP RET', then use
Dave Love <fx@gnu.org>
parents:
diff changeset
6294 the same regular expression in `% R'. To make this easier, `% R' uses
Dave Love <fx@gnu.org>
parents:
diff changeset
6295 as a default the last regular expression specified in a `%' command.
Dave Love <fx@gnu.org>
parents:
diff changeset
6296
Dave Love <fx@gnu.org>
parents:
diff changeset
6297 *** Dired Case Conversion
Dave Love <fx@gnu.org>
parents:
diff changeset
6298
Dave Love <fx@gnu.org>
parents:
diff changeset
6299 **** `% u' renames each of the selected files to an upper case name.
Dave Love <fx@gnu.org>
parents:
diff changeset
6300
Dave Love <fx@gnu.org>
parents:
diff changeset
6301 **** `% l' renames each of the selected files to a lower case name.
Dave Love <fx@gnu.org>
parents:
diff changeset
6302
Dave Love <fx@gnu.org>
parents:
diff changeset
6303 *** File Comparison with Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
6304
Dave Love <fx@gnu.org>
parents:
diff changeset
6305 **** `=' compares the current file with another file (the file at the
Dave Love <fx@gnu.org>
parents:
diff changeset
6306 mark), by running the `diff' program. The file at the mark is given
Dave Love <fx@gnu.org>
parents:
diff changeset
6307 to `diff' first.
Dave Love <fx@gnu.org>
parents:
diff changeset
6308
Dave Love <fx@gnu.org>
parents:
diff changeset
6309 **** `M-=' compares the current file with its backup file. If there
Dave Love <fx@gnu.org>
parents:
diff changeset
6310 are several numerical backups, it uses the most recent one. If this
Dave Love <fx@gnu.org>
parents:
diff changeset
6311 file is a backup, it is compared with its original.
Dave Love <fx@gnu.org>
parents:
diff changeset
6312
Dave Love <fx@gnu.org>
parents:
diff changeset
6313 The backup file is the first file given to `diff'.
Dave Love <fx@gnu.org>
parents:
diff changeset
6314
Dave Love <fx@gnu.org>
parents:
diff changeset
6315 *** Subdirectories in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
6316
Dave Love <fx@gnu.org>
parents:
diff changeset
6317 You can display more than one directory in one Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6318 The simplest way to do this is to specify the options `-lR' for
Dave Love <fx@gnu.org>
parents:
diff changeset
6319 running `ls'. That produces a recursive directory listing showing
Dave Love <fx@gnu.org>
parents:
diff changeset
6320 all subdirectories, all within the same Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6321
Dave Love <fx@gnu.org>
parents:
diff changeset
6322 You can also insert the contents of a particular subdirectory with the
Dave Love <fx@gnu.org>
parents:
diff changeset
6323 `i' command. Use this command on the line that describes a file which
Dave Love <fx@gnu.org>
parents:
diff changeset
6324 is a directory. Inserted subdirectory contents follow the top-level
Dave Love <fx@gnu.org>
parents:
diff changeset
6325 directory of the Dired buffer, just as they do in `ls -lR' output.
Dave Love <fx@gnu.org>
parents:
diff changeset
6326
Dave Love <fx@gnu.org>
parents:
diff changeset
6327 If the subdirectory's contents are already present in the buffer, the
Dave Love <fx@gnu.org>
parents:
diff changeset
6328 `i' command just moves to it (type `l' to refresh it). It sets the
Dave Love <fx@gnu.org>
parents:
diff changeset
6329 Emacs mark before moving, so C-x C-x takes you back to the old
Dave Love <fx@gnu.org>
parents:
diff changeset
6330 position in the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6331
Dave Love <fx@gnu.org>
parents:
diff changeset
6332 When you have subdirectories in the Dired buffer, you can use the page
Dave Love <fx@gnu.org>
parents:
diff changeset
6333 motion commands C-x [ and C-x ] to move by entire directories.
Dave Love <fx@gnu.org>
parents:
diff changeset
6334
Dave Love <fx@gnu.org>
parents:
diff changeset
6335 The following commands move up and down in the tree of directories
Dave Love <fx@gnu.org>
parents:
diff changeset
6336 in one Dired buffer:
Dave Love <fx@gnu.org>
parents:
diff changeset
6337
Dave Love <fx@gnu.org>
parents:
diff changeset
6338 **** C-M-u Go up to the parent directory's headerline.
Dave Love <fx@gnu.org>
parents:
diff changeset
6339
Dave Love <fx@gnu.org>
parents:
diff changeset
6340 **** C-M-d Go down in the tree, to the first subdirectory's
Dave Love <fx@gnu.org>
parents:
diff changeset
6341 headerline.
Dave Love <fx@gnu.org>
parents:
diff changeset
6342
Dave Love <fx@gnu.org>
parents:
diff changeset
6343 **** C-M-n Go to next subdirectory headerline, regardless of level.
Dave Love <fx@gnu.org>
parents:
diff changeset
6344
Dave Love <fx@gnu.org>
parents:
diff changeset
6345 **** C-M-p Go to previous subdirectory headerline, regardless of
Dave Love <fx@gnu.org>
parents:
diff changeset
6346 level.
Dave Love <fx@gnu.org>
parents:
diff changeset
6347
Dave Love <fx@gnu.org>
parents:
diff changeset
6348 *** Hiding Subdirectories
Dave Love <fx@gnu.org>
parents:
diff changeset
6349
Dave Love <fx@gnu.org>
parents:
diff changeset
6350 "Hiding" a subdirectory means to make it invisible, except for its
Dave Love <fx@gnu.org>
parents:
diff changeset
6351 headerline. Files inside a hidden subdirectory are never considered
Dave Love <fx@gnu.org>
parents:
diff changeset
6352 by Dired. For example, the commands to operate on marked files ignore
Dave Love <fx@gnu.org>
parents:
diff changeset
6353 files in hidden directories even if they are marked.
Dave Love <fx@gnu.org>
parents:
diff changeset
6354
Dave Love <fx@gnu.org>
parents:
diff changeset
6355 **** `$' hides or unhides the current subdirectory and move to next
Dave Love <fx@gnu.org>
parents:
diff changeset
6356 subdirectory. A prefix argument serves as a repeat count.
Dave Love <fx@gnu.org>
parents:
diff changeset
6357
Dave Love <fx@gnu.org>
parents:
diff changeset
6358 **** `M-$' hides all subdirectories, leaving only their header lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
6359 Or, if at least one subdirectory is currently hidden, it makes
Dave Love <fx@gnu.org>
parents:
diff changeset
6360 everything visible again. You can use this command to get an overview
Dave Love <fx@gnu.org>
parents:
diff changeset
6361 in very deep directory trees or to move quickly to subdirectories far
Dave Love <fx@gnu.org>
parents:
diff changeset
6362 away.
Dave Love <fx@gnu.org>
parents:
diff changeset
6363
Dave Love <fx@gnu.org>
parents:
diff changeset
6364 *** Editing the Dired Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
6365
Dave Love <fx@gnu.org>
parents:
diff changeset
6366 **** `l' updates the specified files in a Dired buffer. This means
Dave Love <fx@gnu.org>
parents:
diff changeset
6367 reading their current status from the file system and changing the
Dave Love <fx@gnu.org>
parents:
diff changeset
6368 buffer to reflect it properly.
Dave Love <fx@gnu.org>
parents:
diff changeset
6369
Dave Love <fx@gnu.org>
parents:
diff changeset
6370 If you use this command on a subdirectory header line, it updates the
Dave Love <fx@gnu.org>
parents:
diff changeset
6371 contents of the subdirectory.
Dave Love <fx@gnu.org>
parents:
diff changeset
6372
Dave Love <fx@gnu.org>
parents:
diff changeset
6373 **** `g' updates the entire contents of the Dired buffer. It preserves
Dave Love <fx@gnu.org>
parents:
diff changeset
6374 all marks except for those on files that have vanished. Hidden
Dave Love <fx@gnu.org>
parents:
diff changeset
6375 subdirectories are updated but remain hidden.
Dave Love <fx@gnu.org>
parents:
diff changeset
6376
Dave Love <fx@gnu.org>
parents:
diff changeset
6377 **** `k' kills all marked lines (not the files). With a prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
6378 argument, it kills that many lines starting with the current line.
Dave Love <fx@gnu.org>
parents:
diff changeset
6379
Dave Love <fx@gnu.org>
parents:
diff changeset
6380 This command does not delete files; it just deletes text from the Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
6381 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6382
Dave Love <fx@gnu.org>
parents:
diff changeset
6383 If you kill the line for a file that is a directory, then its contents
Dave Love <fx@gnu.org>
parents:
diff changeset
6384 are also deleted from the buffer. Typing `C-u k' on the header line
Dave Love <fx@gnu.org>
parents:
diff changeset
6385 for a subdirectory is another way to delete a subdirectory from the
Dave Love <fx@gnu.org>
parents:
diff changeset
6386 Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6387
Dave Love <fx@gnu.org>
parents:
diff changeset
6388 *** `find' and Dired.
Dave Love <fx@gnu.org>
parents:
diff changeset
6389
Dave Love <fx@gnu.org>
parents:
diff changeset
6390 To search for files with names matching a wildcard pattern use
Dave Love <fx@gnu.org>
parents:
diff changeset
6391 `find-name-dired'. Its arguments are DIRECTORY and
Dave Love <fx@gnu.org>
parents:
diff changeset
6392 PATTERN. It selects all the files in DIRECTORY or its
Dave Love <fx@gnu.org>
parents:
diff changeset
6393 subdirectories whose own names match PATTERN.
Dave Love <fx@gnu.org>
parents:
diff changeset
6394
Dave Love <fx@gnu.org>
parents:
diff changeset
6395 The files thus selected are displayed in a Dired buffer in which the
Dave Love <fx@gnu.org>
parents:
diff changeset
6396 ordinary Dired commands are available.
Dave Love <fx@gnu.org>
parents:
diff changeset
6397
Dave Love <fx@gnu.org>
parents:
diff changeset
6398 If you want to test the contents of files, rather than their names, use
Dave Love <fx@gnu.org>
parents:
diff changeset
6399 `find-grep-dired'. This command takes two minibuffer arguments,
Dave Love <fx@gnu.org>
parents:
diff changeset
6400 DIRECTORY and REGEXP; it selects all the files in
Dave Love <fx@gnu.org>
parents:
diff changeset
6401 DIRECTORY or its subdirectories that contain a match for
Dave Love <fx@gnu.org>
parents:
diff changeset
6402 REGEXP. It works by running `find' and `grep'.
Dave Love <fx@gnu.org>
parents:
diff changeset
6403
Dave Love <fx@gnu.org>
parents:
diff changeset
6404 The most general command in this series is `find-dired', which lets
Dave Love <fx@gnu.org>
parents:
diff changeset
6405 you specify any condition that `find' can test. It takes two
Dave Love <fx@gnu.org>
parents:
diff changeset
6406 minibuffer arguments, DIRECTORY and FIND-ARGS; it runs `find' in
Dave Love <fx@gnu.org>
parents:
diff changeset
6407 DIRECTORY with using FIND-ARGS as the arguments to `find' specifying
Dave Love <fx@gnu.org>
parents:
diff changeset
6408 which files to accept. To use this command, you need to know how to
Dave Love <fx@gnu.org>
parents:
diff changeset
6409 use `find'.
Dave Love <fx@gnu.org>
parents:
diff changeset
6410
Dave Love <fx@gnu.org>
parents:
diff changeset
6411 ** New amusements and novelties.
Dave Love <fx@gnu.org>
parents:
diff changeset
6412
Dave Love <fx@gnu.org>
parents:
diff changeset
6413 *** `M-x mpuz' displays a multiplication puzzle, in which each letter
Dave Love <fx@gnu.org>
parents:
diff changeset
6414 stands for a digit, and you must determine which digit. The puzzles
Dave Love <fx@gnu.org>
parents:
diff changeset
6415 are determined randomly, so they are always different.
Dave Love <fx@gnu.org>
parents:
diff changeset
6416
Dave Love <fx@gnu.org>
parents:
diff changeset
6417 *** `M-x gomoku' plays the game Gomoku with you. It needs more work.
Dave Love <fx@gnu.org>
parents:
diff changeset
6418
Dave Love <fx@gnu.org>
parents:
diff changeset
6419 *** `M-x spook' adds a line of randomly chosen keywords to an outgoing
Dave Love <fx@gnu.org>
parents:
diff changeset
6420 mail message. The keywords are chosen from a list of words that
Dave Love <fx@gnu.org>
parents:
diff changeset
6421 suggest you are discussing something subversive.
Dave Love <fx@gnu.org>
parents:
diff changeset
6422
Dave Love <fx@gnu.org>
parents:
diff changeset
6423 The idea is that the NSA reads all messages that contain keywords
Dave Love <fx@gnu.org>
parents:
diff changeset
6424 suggesting they might be interested, and that adding these lines could
Dave Love <fx@gnu.org>
parents:
diff changeset
6425 help to overload them. I would guess that they have modified their
Dave Love <fx@gnu.org>
parents:
diff changeset
6426 program by now to ignore these lines of keywords; perhaps the program
Dave Love <fx@gnu.org>
parents:
diff changeset
6427 can be updated if some clever hacker can determine what criterion they
Dave Love <fx@gnu.org>
parents:
diff changeset
6428 actually use now.
Dave Love <fx@gnu.org>
parents:
diff changeset
6429
Dave Love <fx@gnu.org>
parents:
diff changeset
6430 ** Installation changes
Dave Love <fx@gnu.org>
parents:
diff changeset
6431
Dave Love <fx@gnu.org>
parents:
diff changeset
6432 *** The configure script has been provided to help with the
Dave Love <fx@gnu.org>
parents:
diff changeset
6433 installation process. It takes the place of editing the Makefiles and
Dave Love <fx@gnu.org>
parents:
diff changeset
6434 src/config.h, and can often guess the appropriate operating system to
Dave Love <fx@gnu.org>
parents:
diff changeset
6435 use for a particular machine type. See INSTALL for a more detailed
Dave Love <fx@gnu.org>
parents:
diff changeset
6436 description of the steps required for installation.
Dave Love <fx@gnu.org>
parents:
diff changeset
6437
Dave Love <fx@gnu.org>
parents:
diff changeset
6438 *** If you create a Lisp file named `site-start.el', Emacs loads the file
Dave Love <fx@gnu.org>
parents:
diff changeset
6439 whenever it starts up.
Dave Love <fx@gnu.org>
parents:
diff changeset
6440
Dave Love <fx@gnu.org>
parents:
diff changeset
6441 *** A new Lisp variable, `data-directory', indicates the directory
Dave Love <fx@gnu.org>
parents:
diff changeset
6442 containing the DOC file, tutorial, copying agreement, and other
Dave Love <fx@gnu.org>
parents:
diff changeset
6443 familiar `etc' files. The value of `data-directory' is a simple string.
Dave Love <fx@gnu.org>
parents:
diff changeset
6444 The default should be set at build time, and the person installing
Dave Love <fx@gnu.org>
parents:
diff changeset
6445 Emacs should place all the data files in this directory. The `help.el'
Dave Love <fx@gnu.org>
parents:
diff changeset
6446 functions that look for docstrings and information files check this
Dave Love <fx@gnu.org>
parents:
diff changeset
6447 variable. All Emacs Lisp packages should also be coded so that they
Dave Love <fx@gnu.org>
parents:
diff changeset
6448 refer to `data-directory' to find data files.
Dave Love <fx@gnu.org>
parents:
diff changeset
6449
Dave Love <fx@gnu.org>
parents:
diff changeset
6450 *** The PURESIZE definition has been moved from config.h to its own
Dave Love <fx@gnu.org>
parents:
diff changeset
6451 file, puresize.h. Since almost every file of C source in the
Dave Love <fx@gnu.org>
parents:
diff changeset
6452 distribution depends on config.h, but only alloc.c and data.c depend
Dave Love <fx@gnu.org>
parents:
diff changeset
6453 on puresize.h, this means that changing the value of PURESIZE causes
Dave Love <fx@gnu.org>
parents:
diff changeset
6454 only those two files to be recompiled.
Dave Love <fx@gnu.org>
parents:
diff changeset
6455
Dave Love <fx@gnu.org>
parents:
diff changeset
6456 *** The makefile at the top of the Emacs source tree now supports a
Dave Love <fx@gnu.org>
parents:
diff changeset
6457 `dist' target, which creates a compressed tar file suitable for
Dave Love <fx@gnu.org>
parents:
diff changeset
6458 distribution, using the contents of the source tree. Object files,
Dave Love <fx@gnu.org>
parents:
diff changeset
6459 old file versions, executables, DOC files, and other
Dave Love <fx@gnu.org>
parents:
diff changeset
6460 architecture-specific or easy-to-recreate files are not included in
Dave Love <fx@gnu.org>
parents:
diff changeset
6461 the tar file.
Dave Love <fx@gnu.org>
parents:
diff changeset
6462
33149
a473fce1ed3a *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 30922
diff changeset
6463 * For older news, see the file ONEWS.4. For Lisp changes in (the first
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
6464 * release of) Emacs 19, see the file LNEWS.
Dave Love <fx@gnu.org>
parents:
diff changeset
6465
Dave Love <fx@gnu.org>
parents:
diff changeset
6466 ----------------------------------------------------------------------
Dave Love <fx@gnu.org>
parents:
diff changeset
6467 Copyright information:
Dave Love <fx@gnu.org>
parents:
diff changeset
6468
Dave Love <fx@gnu.org>
parents:
diff changeset
6469 Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
6470
Dave Love <fx@gnu.org>
parents:
diff changeset
6471 Permission is granted to anyone to make or distribute verbatim copies
Dave Love <fx@gnu.org>
parents:
diff changeset
6472 of this document as received, in any medium, provided that the
Dave Love <fx@gnu.org>
parents:
diff changeset
6473 copyright notice and this permission notice are preserved,
Dave Love <fx@gnu.org>
parents:
diff changeset
6474 thus giving the recipient permission to redistribute in turn.
Dave Love <fx@gnu.org>
parents:
diff changeset
6475
Dave Love <fx@gnu.org>
parents:
diff changeset
6476 Permission is granted to distribute modified versions
Dave Love <fx@gnu.org>
parents:
diff changeset
6477 of this document, or of portions of it,
Dave Love <fx@gnu.org>
parents:
diff changeset
6478 under the above conditions, provided also that they
Dave Love <fx@gnu.org>
parents:
diff changeset
6479 carry prominent notices stating who last changed them.
Dave Love <fx@gnu.org>
parents:
diff changeset
6480
Dave Love <fx@gnu.org>
parents:
diff changeset
6481 Local variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
6482 mode: outline
Dave Love <fx@gnu.org>
parents:
diff changeset
6483 paragraph-separate: "[ ]*$"
Dave Love <fx@gnu.org>
parents:
diff changeset
6484 end:
Dave Love <fx@gnu.org>
parents:
diff changeset
6485