annotate etc/ONEWS @ 36150:46e59561af4c

Display Vars node renamed Display Custom. Include info there about customizing cursor appearance. Clean up aggressive scrolling. Clarify horizontal scrolling discussion. Fix index entries for line number mode.
author Richard M. Stallman <rms@gnu.org>
date Sat, 17 Feb 2001 16:45:37 +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