1 |
GNU Emacs NEWS -- history of user-visible changes. |
2 |
|
3 |
Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. |
4 |
See the end of the file for license conditions. |
5 |
|
6 |
Please send Emacs bug reports to emacs-pretest-bug@gnu.org. |
7 |
If possible, use M-x report-emacs-bug. |
8 |
|
9 |
This file is about changes in Emacs version 23. |
10 |
|
11 |
See files NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 |
12 |
for changes in older Emacs versions. |
13 |
|
14 |
You can narrow news to a specific version by calling `view-emacs-news' |
15 |
with a prefix argument or by typing C-u C-h C-n. |
16 |
|
17 |
|
18 |
Temporary note: |
19 |
+++ indicates that the appropriate manual has already been updated. |
20 |
--- means no change in the manuals is called for. |
21 |
When you add a new item, please add it without either +++ or --- |
22 |
so we will look at it and add it to the manual. |
23 |
|
24 |
|
25 |
* Installation Changes in Emacs 23.2 |
26 |
|
27 |
** New configure options for Emacs developers |
28 |
These are not new features; only the configure flags are new. |
29 |
|
30 |
*** --enable-profiling builds Emacs with profiling enabled. |
31 |
This might not work on all platforms. |
32 |
|
33 |
*** --enable-checking[=OPTIONS] builds emacs with extra runtime checks. |
34 |
|
35 |
--- |
36 |
** `make install' now consistently ignores umask, creating a |
37 |
world-readable install. |
38 |
|
39 |
** Emacs compiles with Gconf support by default, if it is detected. |
40 |
Use the configure option --without-gconf to disable this. |
41 |
|
42 |
* Startup Changes in Emacs 23.2 |
43 |
|
44 |
** The command-line option -Q (--quick) also inhibits loading X resources. |
45 |
However, if Emacs is compiled with the Lucid or Motif toolkit, X |
46 |
resource settings for the graphical widgets are still applied. |
47 |
On Windows, the -Q option causes Emacs to ignore Registry settings, |
48 |
but environment variables set on the Registry are still honored. |
49 |
|
50 |
*** The new variable `inhibit-x-resources' shows whether X resources |
51 |
were loaded. |
52 |
|
53 |
+++ |
54 |
** New command-line option -mm (--maximized) maximizes the initial frame. |
55 |
|
56 |
* Changes in Emacs 23.2 |
57 |
|
58 |
** The maximum size of buffers (and the largest fixnum) is doubled. |
59 |
On typical 32bit systems, buffers can now be up to 512MB. |
60 |
|
61 |
** The default value of `trash-directory' is now nil. |
62 |
This means that `move-file-to-trash' trashes files according to |
63 |
freedesktop.org specifications, the same method used by the Gnome, |
64 |
KDE, and XFCE desktops. (This change has no effect on Windows, which |
65 |
uses `system-move-file-to-trash' for trashing.) |
66 |
|
67 |
** The pointer now becomes invisible when typing. |
68 |
Customize `make-pointer-invisible' to disable this feature. |
69 |
|
70 |
** Font changes |
71 |
|
72 |
*** Emacs can use the system default monospaced font in Gnome. |
73 |
To enable this feature, set `font-use-system-font' to non-nil (it is |
74 |
nil by default). If the system default changes, Emacs changes also. |
75 |
This feature requires Gconf support, which is automatically included |
76 |
at compile-time if configure detects the gconf libraries (you can |
77 |
disable this with the configure option --without-gconf). |
78 |
|
79 |
*** On X11, Emacs reacts to Xft changes made by configuration tools, |
80 |
via the XSETTINGS mechanism. This includes antialias, hinting, |
81 |
hintstyle, RGBA, DPI and lcdfilter changes. |
82 |
|
83 |
** Killing a buffer with a running process now asks for confirmation. |
84 |
To remove this query, remove `process-kill-buffer-query-function' from |
85 |
`kill-buffer-query-functions', or set the appropriate process flag |
86 |
with `set-process-query-on-exit-flag'. |
87 |
|
88 |
** File-local variable changes |
89 |
|
90 |
*** Specifying a minor mode as a local variables enables that mode, |
91 |
unconditionally. The previous behavior, toggling the mode, was |
92 |
neither reliable nor generally desirable. |
93 |
|
94 |
*** New commands for adding and removing file-local variables: |
95 |
`add-file-local-variable', `delete-file-local-variable', |
96 |
`add-file-local-variable-prop-line', and |
97 |
`delete-file-local-variable-prop-line'. |
98 |
|
99 |
*** New commands for adding and removing directory-local variables, |
100 |
and copying them to and from file-local variable lists: |
101 |
`add-dir-local-variable', `delete-dir-local-variable', |
102 |
`copy-dir-locals-to-file-locals', |
103 |
`copy-dir-locals-to-file-locals-prop-line' and |
104 |
`copy-file-locals-to-dir-locals'. |
105 |
|
106 |
** Internationalization changes |
107 |
|
108 |
*** Unibyte sessions are now considered obsolete. |
109 |
This refers to the EMACS_UNIBYTE environment variable as well as the |
110 |
--unibyte, --multibyte, --no-multibyte, and --no-unibyte command line |
111 |
arguments. Customizing enable-multibyte-characters and setting |
112 |
default-enable-multibyte-characters are also deprecated. |
113 |
|
114 |
*** New coding system `utf-8-hfs'. |
115 |
This is suitable for default-file-name-coding-system on Mac OS X; see |
116 |
international/ucs-normalize.el. |
117 |
|
118 |
** Function arguments in *Help* buffers are now shown in upper-case. |
119 |
Customize `help-downcase-arguments' to t to show them in lower-case. |
120 |
|
121 |
|
122 |
* Editing Changes in Emacs 23.2 |
123 |
|
124 |
** Kill-ring and selection changes |
125 |
+++ |
126 |
*** If `select-active-regions' is t, any active region automatically |
127 |
becomes the primary selection (for interaction with other window |
128 |
applications). If you enable this, you might want to bind |
129 |
`mouse-yank-primary' to Mouse-2. |
130 |
|
131 |
*** When `save-interprogram-paste-before-kill' is non-nil, the kill |
132 |
commands save the interprogram-paste selection into the kill ring |
133 |
before doing anything else. This avoids losing the selection. |
134 |
|
135 |
*** When `kill-do-not-save-duplicates' is non-nil, identical |
136 |
subsequent kills are not duplicated in the `kill-ring'. |
137 |
|
138 |
** Completion changes |
139 |
|
140 |
*** The new command `completion-at-point' provides mode-sensitive completion. |
141 |
|
142 |
*** tab-always-indent set to `complete' lets TAB do completion as well. |
143 |
|
144 |
*** The new completion-style `initials' is available. |
145 |
For instance, this can complete M-x lch to list-command-history. |
146 |
|
147 |
*** The new variable `completions-format' determines how completions |
148 |
are displayed in the *Completions* buffer. If you set it to |
149 |
`vertical', completions are sorted vertically in columns. |
150 |
|
151 |
+++ |
152 |
** The default value of `blink-matching-paren-distance' is increased. |
153 |
|
154 |
** M-n provides more default values in the minibuffer for commands |
155 |
that read file names. These include the file name at point (when ffap |
156 |
is loaded without ffap-bindings), the file name on the current line |
157 |
(in Dired buffers), and the directory names of adjacent Dired windows |
158 |
(for Dired commands that operate on several directories, such as copy, |
159 |
rename, or diff). |
160 |
|
161 |
** M-r is bound to the new `move-to-window-line-top-bottom'. |
162 |
This moves point to the window center, top and bottom on successive |
163 |
invocations, in the same spirit as the C-l (recenter-top-bottom) |
164 |
command. |
165 |
|
166 |
** The new variable `recenter-positions' determines the default |
167 |
cycling order of C-l (`recenter-top-bottom'). |
168 |
|
169 |
|
170 |
* Changes in Specialized Modes and Packages in Emacs 23.2 |
171 |
|
172 |
** The bookmark menu has a narrowing search via bookmark-bmenu-search. |
173 |
|
174 |
** LaTeX mode now provides completion (via completion-at-point) |
175 |
|
176 |
** sym-comp.el is now declared obsolete, superceded by completion-at-point. |
177 |
|
178 |
** lucid.el and levents.el are now declared obsolete. |
179 |
|
180 |
** pcomplete provides a new command `pcomplete-std-completion' which |
181 |
is similar to `pcomplete' but using the standard completion UI code. |
182 |
|
183 |
** .calc.el and .abbrev_defs obey user-emacs-directory. |
184 |
|
185 |
** Calc graphing commands (`g f' etc.) now work on MS-Windows, |
186 |
if you have the native Windows port of Gnuplot version 3.8 or later |
187 |
installed. |
188 |
|
189 |
** Calendar and diary |
190 |
|
191 |
+++ |
192 |
*** Fancy diary display is now the default. |
193 |
If you prefer the simple display, customize `diary-display-function'. |
194 |
|
195 |
+++ |
196 |
*** The diary's fancy display now enables view-mode. |
197 |
|
198 |
--- |
199 |
*** The command `calendar-current-date' accepts an optional argument |
200 |
giving an offset from today. |
201 |
|
202 |
** Desktop |
203 |
--- |
204 |
*** The default value for `desktop-buffers-not-to-save' is nil. |
205 |
This means Desktop will try restoring all buffers, when you restart |
206 |
your Emacs session. Also, `desktop-buffers-not-to-save' is only |
207 |
effective for buffers that have no associated file. If you want to |
208 |
exempt buffers that do correspond to files, customize the value of |
209 |
`desktop-files-not-to-save' instead. |
210 |
|
211 |
** Dired |
212 |
|
213 |
*** The new variable `dired-auto-revert-buffer' allows to revert |
214 |
dired buffers automatically on revisiting. |
215 |
|
216 |
** DocView |
217 |
|
218 |
*** When `doc-view-continuous' is non-nil, scrolling a line |
219 |
on the page edge advances to the next/previous page. |
220 |
|
221 |
** gdb-mi |
222 |
|
223 |
*** GDB User Interface migrated to GDB Machine Interface and now |
224 |
supports multithread non-stop debugging and debugging of several |
225 |
threads simultaneously. |
226 |
|
227 |
** Grep |
228 |
|
229 |
A new command `zrgrep' searches recursively in gzipped files. |
230 |
|
231 |
** Info |
232 |
|
233 |
*** The new command `Info-virtual-index' bound to "I" displays a menu of |
234 |
matched topics found in the index. |
235 |
|
236 |
*** The new command `info-finder' replaces finder.el with a virtual Info |
237 |
manual that generates an Info file which gives the same information |
238 |
through a menu structure. |
239 |
|
240 |
** Message mode is now the default mode for composing mail. |
241 |
|
242 |
The default for `mail-user-agent' is now message-user-agent, so the |
243 |
C-x m (`compose-mail') command uses Message mode instead of Mail mode. |
244 |
|
245 |
Message mode has been included in Emacs, as part of the Gnus package, |
246 |
for several years. It provides several features that are absent in |
247 |
Mail mode, such as MIME handling. |
248 |
|
249 |
*** If the user has not customized mail-user-agent, `compose-mail' |
250 |
checks for Mail mode customizations, and issues a warning if these |
251 |
customizations are found. This alerts users who may otherwise be |
252 |
unaware that their mail configuration has changed. |
253 |
|
254 |
To disable this check, set compose-mail-user-agent-warnings to nil. |
255 |
|
256 |
** nXML mode is now the default for editing XML files. |
257 |
|
258 |
** Shell |
259 |
|
260 |
*** ansi-color is now enabled by default. |
261 |
To disable it, set ansi-color-for-comint-mode to nil. |
262 |
|
263 |
+++ |
264 |
** Tramp |
265 |
|
266 |
*** New connection methods "rsyncc", "imap" and "imaps". |
267 |
On systems which support GVFS-Fuse, Tramp offers also the new |
268 |
connection methods "dav", "davs", "obex" and "synce". |
269 |
|
270 |
** VC and related modes |
271 |
|
272 |
*** When using C-x v v or C-x v i on a unregistered file that is in a |
273 |
directory not controlled by any VCS, ask the user what VC backend to |
274 |
use to create a repository, create a new repository and register the |
275 |
file. |
276 |
|
277 |
*** FIXME: add info about the new VC functions: vc-root-diff and |
278 |
vc-root-print-log once they stabilize. |
279 |
|
280 |
*** The log functions (C-x v l and C-x v L) do not show the full log |
281 |
by default anymore. The number of entries shown can be chosen |
282 |
interactively with a prefix argument, by customizing |
283 |
vc-log-show-limit. The log buffer display buttons that can be used |
284 |
to change the number of entries shown. |
285 |
RCS, SCCS, CVS do not support this feature. |
286 |
|
287 |
*** vc-annotate supports annotations through file copies and renames, |
288 |
it displays the old names for the files and it can show logs/diffs for |
289 |
the corresponding lines. Currently only Git and Mercurial take |
290 |
advantage of this feature. |
291 |
|
292 |
*** The log command in vc-annotate can display a single log entry |
293 |
instead of redisplaying the full log. The RCS, CVS and SCCS VC |
294 |
backends do not support this. |
295 |
|
296 |
*** When a file is not found, VC will not try to check it out of RCS anymore. |
297 |
|
298 |
*** Diff and log operations can be used from dired buffers. |
299 |
|
300 |
*** vc-git changes |
301 |
|
302 |
**** The short log format for git makes use of the graph display, so |
303 |
it's not supported on git versions earlier than 1.5. |
304 |
|
305 |
**** The new variable vc-git-add-signoff can be used to add a |
306 |
Signed-off-by line when committing. |
307 |
|
308 |
**** Support for operating with stashes has been added to vc-dir: the stash list is |
309 |
displayed in the *vc-dir* header, stashes can be created, removed, applied and |
310 |
their content displayed. |
311 |
|
312 |
**** vc-dir displays the stash status |
313 |
|
314 |
*** vc-bzr supports operating with shelves: the shelve list is |
315 |
displayed in the *vc-dir* header, shelves can be created, removed and applied. |
316 |
|
317 |
*** log-edit-strip-single-file-name controls whether or not single filenames |
318 |
are stripped when copying text from the ChangeLog to the *VC-Log* buffer. |
319 |
|
320 |
** Elint |
321 |
|
322 |
--- |
323 |
*** Elint now uses compilation-mode. |
324 |
|
325 |
--- |
326 |
*** Elint can now scan individual files and whole directories, |
327 |
and can be run in batch mode. |
328 |
|
329 |
--- |
330 |
*** Elint does a more thorough initialization, and recognizes more built-in |
331 |
functions and variables. Customize `elint-scan-preloaded' if you want |
332 |
to sacrifice some accuracy for a faster startup. |
333 |
|
334 |
--- |
335 |
*** Elint attempts some basic understanding of featurep and (f)boundp tests. |
336 |
|
337 |
--- |
338 |
*** Customize `elint-ignored-warnings' to suppress some warnings. |
339 |
|
340 |
** Miscellaneous |
341 |
|
342 |
*** The new command `async-shell-command' bound globally to `M-&' executes |
343 |
the command asynchronously without the need to manually add ampersand to |
344 |
the end of the command. Its output appears in the buffer `*Async Shell |
345 |
Command*'. |
346 |
|
347 |
*** Isearch searches in the comint/shell input history when the new variable |
348 |
`comint-history-isearch' is non-nil. New commands `comint-history-isearch-backward' |
349 |
and `comint-history-isearch-backward-regexp' (bound to M-r) start Isearch |
350 |
in the input history regardless of the value of `comint-history-isearch'. |
351 |
|
352 |
*** Interactively `multi-isearch-buffers' and `multi-isearch-buffers-regexp' |
353 |
read buffer names to search, one by one, ended with RET. With a prefix |
354 |
argument, they ask for a regexp, and search in buffers whose names match |
355 |
the specified regexp. Interactively `multi-isearch-files' and |
356 |
`multi-isearch-files-regexp' read file names to search, one by one, |
357 |
ended with RET. With a prefix argument, they ask for a wildcard, and |
358 |
search in file buffers whose file names match the specified wildcard. |
359 |
|
360 |
+++ |
361 |
*** Autorevert Tail mode now works also for remote files. |
362 |
|
363 |
+++ |
364 |
*** The new built-in commands `su' and `sudo' support Tramp. |
365 |
That means, they change `default-directory' to the new users value, |
366 |
and let commands run under that user permissions. It works even when |
367 |
`default-directory' is already remote. Calling the external commands |
368 |
is possible by `*su' or `*sudo', repectively. |
369 |
|
370 |
*** When running in a new enough xterm (newer than version 242), emacs |
371 |
asks xterm what the background color is and it sets up faces |
372 |
accordingly for a dark background if needed (the current default is to |
373 |
consider the background light). |
374 |
|
375 |
|
376 |
* New Modes and Packages in Emacs 23.2 |
377 |
|
378 |
** CEDET (the Collection of Emacs Development Tools) is now in Emacs. |
379 |
This is a collection of packages to aid with using Emacs as an IDE |
380 |
(integrated development environment): |
381 |
|
382 |
*** The Semantic package allows the use of parsers to intelligently |
383 |
edit and navigate source code. Parsers for C/C++, Java, Javascript, |
384 |
and several other languages are included by default, and Semantic can |
385 |
also interface with external tools such as GNU Global and GNU Idutils. |
386 |
|
387 |
To enable Semantic, use the global minor mode `semantic-mode'. |
388 |
See the Semantic manual for details. |
389 |
|
390 |
*** EDE (Emacs Development Environment) is a package for managing code |
391 |
projects, including features such as automatic Makefile generation. |
392 |
|
393 |
To enable EDE, use the minor mode `global-ede-mode'. |
394 |
See the EDE manual for details. |
395 |
|
396 |
*** SRecode is a library for recoding Semantic tags back into source |
397 |
code. It is currently used by some parts of Semantic and EDE; in the |
398 |
future, it may be used for code generation features. |
399 |
|
400 |
*** The EIEIO library implements a subset of the Common Lisp Object |
401 |
System (CLOS). It is used by the other CEDET packages. |
402 |
|
403 |
** mpc.el is a front end for the Music Player Daemon. Run it with M-x mpc. |
404 |
|
405 |
** htmlfontify.el turns a fontified Emacs buffer into an HTML page. |
406 |
|
407 |
** js.el is a new major mode for JavaScript files. |
408 |
|
409 |
** imap-hash.el is a new library to address IMAP mailboxes as hashtables. |
410 |
|
411 |
|
412 |
* Incompatible Lisp Changes in Emacs 23.2 |
413 |
|
414 |
** Several obsolete functions removed. |
415 |
The functions have been obsolete since Emacs 19, and are unlikely to |
416 |
be in use: |
417 |
|
418 |
time-stamp-month-dd-yyyy, time-stamp-dd/mm/yyyy, time-stamp-mon-dd-yyyy |
419 |
time-stamp-dd-mon-yy, time-stamp-yy/mm/dd, time-stamp-yyyy/mm/dd, |
420 |
time-stamp-yyyy-mm-dd, time-stamp-yymmdd, time-stamp-hh:mm:ss, |
421 |
time-stamp-hhmm, baud-rate |
422 |
|
423 |
--- |
424 |
** Support for generating Emacs 18 compatible bytecode (by setting |
425 |
the variable `byte-compile-compatibility') has been removed. |
426 |
|
427 |
** In image-mode.el `image-mode-maybe' is obsolete. Instead, you can |
428 |
either use `image-mode' that displays an image file as the actual image |
429 |
inititally, or `image-mode-as-text' when you want to display an image file |
430 |
as text inititally. `image-mode-as-text' is a combination of a non-image |
431 |
mode from `auto-mode-alist' (or Fundamental mode) and `image-minor-mode'. |
432 |
`image-minor-mode' provides `C-c C-c' key binding to toggle image display. |
433 |
`image-toggle-display-text' removes image properties. |
434 |
`image-toggle-display-image' adds image properties. |
435 |
`image-toggle-display' toggles between `image-mode-as-text' and |
436 |
`image-mode'. |
437 |
|
438 |
|
439 |
* Lisp changes in Emacs 23.2 |
440 |
|
441 |
** make-network-socket can now also create `seqpacket' Unix sockets. |
442 |
|
443 |
** New function `completion-in-region' to use the standard completion |
444 |
facilities on a particular region of text. |
445 |
|
446 |
** The 4th arg to all-completions (aka hide-spaces) is declared obsolete. |
447 |
|
448 |
** read-file-name-predicate is obsolete. It was used to pass the predicate |
449 |
to read-file-name-internal because read-file-name-internal abused its `pred' |
450 |
argument to pass the current directory, but this hack is not needed |
451 |
any more. |
452 |
|
453 |
** Frame parameter changes |
454 |
|
455 |
*** You can give the `fullscreen' frame parameter the value `maximized'. |
456 |
This maximizes the frame. |
457 |
|
458 |
+++ |
459 |
*** The new frame parameter `sticky' makes Emacs frames sticky in |
460 |
virtual desktops. |
461 |
|
462 |
** completion-base-size is obsoleted by completion-base-position. |
463 |
This change causes a few backward incompatibilities, mostly with |
464 |
choose-completion-string-functions where the `mini-p' argument has |
465 |
been replaced by a `base-position' argument, and where the `base-size' |
466 |
argument is now always nil. |
467 |
|
468 |
** called-interactively-p now takes one argument and replaces interactive-p |
469 |
which is now marked obsolete. |
470 |
** New function set-advertised-calling-convention makes it possible |
471 |
to obsolete arguments as well as make some arguments mandatory. |
472 |
** eval-next-after-load is obsolete. |
473 |
** New hook `after-load-functions' run after loading an Elisp file. |
474 |
|
475 |
** You can control which binding is preferentially shown in menus and |
476 |
docstrings by adding a `:advertised-binding' property to the corresponding |
477 |
command's symbol. That property can hold a single binding or a list |
478 |
of bindings. |
479 |
|
480 |
** New macro with-silent-modifications to tweak text properties without |
481 |
affecting the buffer's modification state. |
482 |
** All the default-FOO variables that hold the default value of the FOO |
483 |
variable, are now declared obsolete. |
484 |
|
485 |
** read-key is a function halfway between read-event and read-key-sequence. |
486 |
It reads a single key, but obeys input and escape sequence decoding. |
487 |
|
488 |
** start-process-shell-command and start-file-process-shell-command |
489 |
now only take a single `command' argument. |
490 |
|
491 |
** The variable `process-file-side-effects' shall be bound to nil, if |
492 |
a `process-file' call does not change a remote file. By this, file |
493 |
name handlers like Tramp can apply optimizations. |
494 |
|
495 |
** Hash tables have a new printed representation that is readable. |
496 |
The feature `hashtable-print-readable' identifies this new |
497 |
functionality. |
498 |
|
499 |
** Functions performing Unicode normalization are added. They are: |
500 |
ucs-normalize-NFD-region, ucs-normalize-NFD-string, |
501 |
ucs-normalize-NFC-region, ucs-normalize-NFC-string, |
502 |
ucs-normalize-NFKD-region, ucs-normalize-NFKD-string, |
503 |
ucs-normalize-NFKC-region, ucs-normalize-NFKC-string, |
504 |
ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFD-string, |
505 |
ucs-normalize-HFS-NFC-region, ucs-normalize-HFS-NFC-string. |
506 |
|
507 |
** completion-annotate-function specifies how to compute annotations |
508 |
for completions displayed in *Completions*. |
509 |
|
510 |
+++ |
511 |
** Face aliases can now be marked as obsolete, using the macro |
512 |
`define-obsolete-face-alias'. |
513 |
|
514 |
--- |
515 |
** Changing the file-names generated by byte-compilation by redefining |
516 |
the function `byte-compile-dest-file' before loading bytecomp.el is obsolete. |
517 |
Instead, customize byte-compile-dest-file-function. |
518 |
|
519 |
--- |
520 |
** `byte-compile-warnings' has new members, `constants' and `suspicious'. |
521 |
|
522 |
** `delete-directory' has an optional parameter RECURSIVE. |
523 |
|
524 |
** New function `copy-directory', which copies a directory recursively. |
525 |
|
526 |
+++ |
527 |
** New function `window-full-height-p', analogous to the full-width version. |
528 |
|
529 |
|
530 |
* Changes in Emacs 23.2 on non-free operating systems |
531 |
|
532 |
--- |
533 |
** On MS-Windows, `display-time' now displays the system load average |
534 |
as well as the time, as it does on GNU and Unix. |
535 |
|
536 |
|
537 |
* Installation Changes in Emacs 23.1 |
538 |
|
539 |
** The default X toolkit is now Gtk+, rather than Lucid. |
540 |
The configure option `--with-gtk' has been removed. Gtk is now the |
541 |
default toolkit, but you can use --with-x-toolkit=gtk if necessary. |
542 |
|
543 |
** New font code. |
544 |
Fonts are handled by new code capable of dealing with multiple font |
545 |
backends. This uses the freetype and fontconfig libraries. |
546 |
|
547 |
*** Emacs now accepts font names supplied in the fontconfig format |
548 |
(e.g. "monospace-12:bold") and GTK format (e.g. "Monospace Bold 12"). |
549 |
|
550 |
*** Added support for local fonts (fonts installed on the machine |
551 |
where Emacs is running). |
552 |
|
553 |
*** Added support for the Xft library for antialiasing. |
554 |
|
555 |
*** Added support for the otf library for complex text layout by |
556 |
OpenType fonts. |
557 |
|
558 |
*** Added support for the m17n library for text shaping. |
559 |
|
560 |
** Changes to image support |
561 |
|
562 |
*** configure now checks for libgif before libungif when searching for |
563 |
a GIF library. |
564 |
|
565 |
*** Emacs now supports the SVG image format through librsvg2. |
566 |
|
567 |
*** Emacs now supports multi-page TIFF images. |
568 |
|
569 |
** New NeXTSTEP-based port |
570 |
This provides support for GNUstep (via the GNUstep libraries) and Mac |
571 |
OS X (via the Cocoa libraries). |
572 |
|
573 |
Specify --with-ns to configure for this. By default, a self-contained |
574 |
app will be built (containing all lisp). To install/share lisp with |
575 |
other emacsen (e.g. X11 build) use --disable-ns-self-contained. See |
576 |
nextstep/README and nextstep/INSTALL in the Emacs source directory. |
577 |
|
578 |
** Mac OS X is no longer supported via Carbon. |
579 |
Use the NeXTSTEP port, described above. |
580 |
|
581 |
** The new configuration option "--with-dbus" enables D-Bus language |
582 |
bindings for Emacs. |
583 |
|
584 |
** Support for many obsolete platforms has been removed. |
585 |
See the list at the end of etc/MACHINES for details. |
586 |
|
587 |
*** Support for systems without alloca has been removed. |
588 |
|
589 |
*** Support for Sun windows has been removed. |
590 |
|
591 |
*** The `emacstool' utility has been removed. |
592 |
|
593 |
** The following platforms will be removed in a future Emacs version: |
594 |
If you are still using Emacs on one of these platforms, please email |
595 |
emacs-devel@gnu.org to inform the Emacs developers. |
596 |
|
597 |
*** Old GNU/Linux systems based on libc version 5. |
598 |
|
599 |
*** Old FreeBSD, NetBSD, and OpenBSD systems based on the COFF |
600 |
executable format. |
601 |
|
602 |
*** Solaris versions 2.6 and below. |
603 |
|
604 |
*** Solaris on IBM RS6000 machines. |
605 |
|
606 |
*** UNIX System V (the original SysV, not later platforms based on it). |
607 |
|
608 |
*** Unixware on non-x86 machines. |
609 |
|
610 |
*** Platforms not supporting shared libraries (i.e., requiring the |
611 |
NO_SHARED_LIBS compilation flag). |
612 |
|
613 |
** The configure options `--with-gcc', `--without-gcc' have been removed. |
614 |
Configure will use gcc by default. Set the CC environment variable if |
615 |
you need control over which C compiler is used. |
616 |
|
617 |
** The refcards are now shipped as PDF files. |
618 |
|
619 |
** The manuals are now licensed under the GNU Free Documentation License v1.3, |
620 |
or any later version. |
621 |
|
622 |
** Emacs 23 comes with a new set of default icons. |
623 |
Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png. |
624 |
The Emacs 22 icon is available as `emacs22.png' in the same location. |
625 |
|
626 |
* Changes in Emacs 23.1 |
627 |
|
628 |
** Improved X Window System support |
629 |
|
630 |
*** Emacs now supports using both X displays and ttys in one session. |
631 |
With an Emacs server active (M-x server-start), `emacsclient -t' |
632 |
creates a tty frame connected to the running emacs server. You can |
633 |
use any number of different ttys. `emacsclient -c' creates a new X11 |
634 |
frame on the current $DISPLAY (or a tty frame if $DISPLAY is not set). |
635 |
There may be problems if a display exits unexpectedly and Emacs is compiled |
636 |
with Gtk+, see etc/PROBLEMS. |
637 |
|
638 |
You can test for the presence of this feature in your Lisp code by |
639 |
testing for the `multi-tty' feature. |
640 |
|
641 |
*** Emacs starts in the background, as a daemon, when given the |
642 |
--daemon command line argument. It disconnects from the terminal and |
643 |
starts the server. Clients can connect and create graphical or |
644 |
terminal frames using emacsclient. |
645 |
|
646 |
**** emacsclient starts emacs in daemon mode and connects to it when |
647 |
--alternate-editor="" is used (or when the evironment variable |
648 |
ALTERNATE_EDITOR is set to "") and emacsclient cannot connect to an |
649 |
emacs server. |
650 |
|
651 |
*** The new command close-display-connection closes a connection to a |
652 |
remote display. There are some bugs for Gtk+. See etc/PROBLEMS. |
653 |
|
654 |
*** Emacs now supports the XEmbed specification. |
655 |
You can embed Emacs in another application on X11. The new command line |
656 |
option --parent-id is used to pass the parent window id to Emacs. See |
657 |
http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html |
658 |
for details about XEmbed. |
659 |
|
660 |
*** Emacs can now set the frame opacity. |
661 |
The opacity of a frame can be controlled by setting the `alpha' frame |
662 |
parameter. This only takes effect on a compositing window manager for |
663 |
the X Window System, such as Compiz, Beryl and Compiz Fusion, on Mac |
664 |
OS X, or on Windows 2000 and later versions of Windows. |
665 |
|
666 |
The alpha parameter should be an integer between 0 (transparent) and |
667 |
100 (opaque), or a float number between 0.0 and 1.0. It can also be a |
668 |
cons cell (ACTIVE . INACTIVE), where ACTIVE is the opacity of an |
669 |
active frame and INACTIVE is the opacity of non-active frames. |
670 |
|
671 |
The variable `frame-alpha-lower-limit' defines a lower bound for the |
672 |
opacity; the default is 20. |
673 |
|
674 |
** Internationalization changes |
675 |
|
676 |
*** The Emacs character set is now a superset of Unicode. |
677 |
(It has about four times the code space, which should be plenty). |
678 |
|
679 |
The internal encoding used for buffers and strings is now |
680 |
Unicode-based and called `utf-8-emacs' (`emacs-internal' is an alias |
681 |
for this). This encoding is backward-compatible with Unicode's UTF-8 |
682 |
encoding. The internal encoding previously used by Emacs, |
683 |
`emacs-mule', is still available for reading and writing files. |
684 |
|
685 |
During byte-compilation, Emacs 23 uses `utf-8-emacs' to write files. |
686 |
As a result, byte-compiled files containing non-ASCII characters can't |
687 |
be read by earlier versions of Emacs. Files compiled by Emacs 20, 21, |
688 |
or 22 are loaded correctly as `emacs-mule' (whether or not they |
689 |
contain multibyte characters). This takes somewhat more time, so it |
690 |
may be worth recompiling existing .elc files which don't need to be |
691 |
shared with older Emacsen. |
692 |
|
693 |
*** There are new coding systems/aliases; see M-x list-coding-systems. |
694 |
|
695 |
*** There is a new charset implementation with many new charsets. |
696 |
See M-x list-character-sets. New charsets can be defined conveniently |
697 |
as tables of unicodes. |
698 |
|
699 |
*** There are new language environments for Chinese-GBK, |
700 |
Chinese-GB18030, Khmer, Bengali, Punjabi, Gujarati, Oriya, Telugu, |
701 |
Sinhala, and TaiViet. |
702 |
|
703 |
*** The minor modes unify-8859-on-encoding-mode and |
704 |
unify-8859-on-decoding-mode are obsolete. |
705 |
|
706 |
*** `ucs-insert' is bound to `C-x 8 RET' and in addition to hex numbers |
707 |
accepts numbers in hash notation (e.g. #o21430 for octal, or #10r8984 for |
708 |
decimal). It also accepts Unicode character names with completion. |
709 |
|
710 |
*** The `cyrillic-translit' input method supports many new characters. |
711 |
Common typographical characters available from Unicode were added to |
712 |
`cyrillic-translit': punctuation marks, accented characters, fractions, |
713 |
and others. |
714 |
|
715 |
** Emacs now supports serial port access on GNU/Linux, Unix, and |
716 |
Windows. The new command `serial-term' starts an interactive terminal |
717 |
on a serial port. The serial port can be configured at runtime with |
718 |
the mode-line mouse menu. |
719 |
|
720 |
** Menu Bar changes |
721 |
|
722 |
*** In the Options menu, the "Set Default Font" item applies the |
723 |
selected font to the `default' face on all frames, not just the |
724 |
current frame. Furthermore, if Emacs is compiled with both GTK and |
725 |
Fontconfig support, the "Set Default Font" item uses the GTK font |
726 |
selection dialog instead of an Emacs pop-up menu. |
727 |
|
728 |
*** The font setting chosen by "Set Default Font" is saved if the |
729 |
"Save Options" item is used. |
730 |
|
731 |
*** The Tools menu contains a new Encryption/Decryption submenu. |
732 |
This contains commands provided by EasyPG, the newly-included |
733 |
interface to GnuPG (see New Modes and Packages). |
734 |
|
735 |
*** In the Options menu, the "Truncate Long Lines in the Buffer" entry |
736 |
has been replaced with a submenu offering three different ways to |
737 |
handle long lines: truncation, continuation at the window edge, and |
738 |
the new word wrapping behavior (see Editing Changes, below). |
739 |
|
740 |
*** Improvements to menus for major and minor modes |
741 |
More major and minor modes now have a mode specific menu, and existing |
742 |
mode menus have been improved to include more functionality. |
743 |
|
744 |
** Mode-line changes |
745 |
|
746 |
*** The mode-line displays a `@', instead of `-', if the |
747 |
default-directory for the current buffer is on a remote machine. |
748 |
|
749 |
*** The mode-line displays a mode menu when mouse-1 is clicked on a |
750 |
minor mode, in the same way as it already did for major modes. |
751 |
|
752 |
*** The `mode-line-emphasis' face is used to highlight certain |
753 |
mode-line information (e.g. waiting for a VC command to finish). |
754 |
|
755 |
*** The mode-line tooltips have been improved to provide more details. |
756 |
|
757 |
*** The VC, line/colum number and minor mode indicators on the mode |
758 |
line are now interactive: mouse-1 can be used on them to pop up a menu. |
759 |
|
760 |
** File deletion can make use of the Recycle Bin or system Trash folder. |
761 |
Set `delete-by-moving-to-trash' non-nil to use this. Deleted files |
762 |
and directories will then be sent to the Recycle Bin on Windows, and |
763 |
to `trash-directory' on other systems. |
764 |
|
765 |
** Directory-local variables can now be defined. |
766 |
By default, Emacs looks in .dir-locals.el for directory-local |
767 |
variables. For more information, see `dir-locals-set-directory-class' |
768 |
and `dir-locals-set-class-variables'. |
769 |
|
770 |
** Emacs can now use `auth-source' for authentication. |
771 |
`smtpmail' and `url' (Tramp and Gnus also) use `auth-source' to obtain |
772 |
login names and passwords. The match, if found, is reported |
773 |
in *Messages* with the password blanked out. |
774 |
|
775 |
** `where-is-preferred-modifier' can specify your favorite modifier. |
776 |
|
777 |
|
778 |
* Startup Changes in Emacs 23.1 |
779 |
|
780 |
** The option `inhibit-startup-screen' (with aliases to old names |
781 |
`inhibit-splash-screen' and `inhibit-startup-message') doesn't inhibit |
782 |
display of the initial message in the *scratch* buffer. If you don't |
783 |
want to display the initial message in the *scratch* buffer at startup, |
784 |
you can set the option `initial-scratch-message' to nil. |
785 |
|
786 |
** New user option `initial-buffer-choice' specifies what to display |
787 |
after starting Emacs: startup screen, *scratch* buffer, visiting a |
788 |
file or directory. |
789 |
|
790 |
** New alias `argv' for `command-line-args-left' |
791 |
This is a convenience alias, so that one can write `(pop argv)' |
792 |
inside of --eval command line arguments in order to access |
793 |
following arguments. |
794 |
|
795 |
** The abbrev file is no longer read at startup in batch mode. |
796 |
|
797 |
** Emacs now supports invocation by an X session manager. |
798 |
It can save a session and restore it later. See the documentation of |
799 |
the functions `emacs-session-save' and `emacs-session-restore'. |
800 |
(Actually, this feature was introduced with Emacs 22, but it was not |
801 |
documented.) |
802 |
|
803 |
* Incompatible Editing Changes in Emacs 23.1 |
804 |
|
805 |
** In Dired, `dired-flag-garbage-files' is rebound from `&' to `%&' |
806 |
on the regexp command prefix map. |
807 |
|
808 |
** In Dired-x, all command guesses for ! are now added to the default |
809 |
list accessible by M-n instead of pushing all guesses temporarily into |
810 |
the history list. |
811 |
|
812 |
** In Isearch mode, a special case of typing `C-w' at the beginning of |
813 |
the minibuffer that toggles word search (i.e. using key sequences |
814 |
`C-s RET C-w' or `C-s M-e C-w') is obsolete. You can use the global key |
815 |
`M-s w' to start word search, or type `M-s w' in Isearch mode to |
816 |
toggle word search. To start nonincremental word search you can now use |
817 |
`M-s w RET' and `M-s w C-r RET' instead of `C-s RET C-w' and `C-r RET C-w'. |
818 |
|
819 |
** In Info, `Info-search' is unbound from `M-s' to allow using `M-s w' |
820 |
for word search as well as other search commands from the global prefix |
821 |
key `M-s'. `Info-search' is still bound to `s', and also incremental |
822 |
search commands `C-s', `C-M-s', `C-r', `C-M-r' are available for searching |
823 |
through multiple Info nodes, together with their nonincremental versions |
824 |
`C-s RET', `C-r RET', `C-M-s RET', `C-M-r RET', `M-s w RET'. |
825 |
|
826 |
** In Text mode, `center-line' and `center-paragraph' are rebound from |
827 |
`M-s' and `M-S' to global keys `M-o M-s' and `M-o M-S' on the global |
828 |
prefix map `M-o', which is intended for such formatting commands. |
829 |
|
830 |
** The following input methods were removed in Emacs 22.2, but this was |
831 |
not advertised: danish-alt-postfix, esperanto-alt-postfix, |
832 |
finnish-alt-postfix, german-alt-postfix, icelandic-alt-postfix, |
833 |
norwegian-alt-postfix, scandinavian-alt-postfix, spanish-alt-postfix, |
834 |
and swedish-alt-postfix. Use the versions without "alt-", which are |
835 |
identical. |
836 |
|
837 |
|
838 |
* Editing Changes in Emacs 23.1 |
839 |
|
840 |
** The C-n and C-p line-motion commands now move by screen lines, |
841 |
taking continued lines and variable-width characters into account. |
842 |
Setting `line-move-visual' to nil reverts this to the previous |
843 |
behavior (i.e., motion by logical lines based on buffer contents |
844 |
alone). |
845 |
|
846 |
** C-x C-c now invokes `save-buffers-kill-terminal', and C-z now |
847 |
invokes `suspend-frame'. These changes are for compatibility with the |
848 |
new multi-tty support (see `Improved X Window System support' above). |
849 |
|
850 |
** Mark changes |
851 |
|
852 |
*** Transient Mark mode is now on by default. |
853 |
|
854 |
*** mark-even-if-inactive now defaults to t |
855 |
|
856 |
*** When Transient Mark mode is on, C-SPC C-SPC pushes a mark without |
857 |
activating it. |
858 |
|
859 |
*** When Transient Mark mode is on, M-q now fills the region if the |
860 |
region is active. Otherwise, it fills the current paragraph. |
861 |
|
862 |
*** When Transient Mark mode is on, M-$ now checks spelling of the |
863 |
region if the region is active. Otherwise, it checks spelling of the |
864 |
word at point. |
865 |
|
866 |
*** When Transient Mark mode is on, TAB now indents the region if the |
867 |
region is active. |
868 |
|
869 |
*** The variable `use-empty-active-region' controls whether an empty |
870 |
active region in Transient Mark mode should make commands operate on |
871 |
that empty region. |
872 |
|
873 |
** Temporarily active regions |
874 |
|
875 |
*** The new variable shift-select-mode, non-nil by default, controls |
876 |
shift-selection. When Shift Select mode is on, shift-translated |
877 |
motion keys (e.g. S-left and S-down) activate and extend a temporary |
878 |
region, similar to mouse-selection. |
879 |
|
880 |
*** Temporarily active regions, created using shift-selection or |
881 |
mouse-selection, are not necessarily deactivated in the next command. |
882 |
They are only deactivated after point motion commands that are not |
883 |
shift-translated, or after commands that would ordinarily deactivate |
884 |
the mark in Transient Mark mode (e.g., any command that modifies the |
885 |
buffer). |
886 |
|
887 |
** Minibuffer and completion changes |
888 |
|
889 |
*** Emacs may ask for confirmation before opening a non-existent file |
890 |
or buffer. By default, Emacs requests confirmation if you type RET |
891 |
immediately after TAB, and the resulting input is not an existing file |
892 |
or buffer; this usually happens when the minibuffer input did not |
893 |
complete far enough and you entered RET by mistake. In that case, |
894 |
Emacs puts the message "[Confirm]" in the minibuffer; type RET again |
895 |
to create the file or buffer. |
896 |
|
897 |
The new variable confirm-nonexistent-file-or-buffer determines whether |
898 |
Emacs asks for confirmation. The default value is `after-completion'. |
899 |
If you change it to t, Emacs always asks for confirmation; if you |
900 |
change it to nil, Emacs never asks for confirmation. |
901 |
|
902 |
*** The rules for performing completion have been changed. |
903 |
When generating completion alternatives, Emacs now takes the |
904 |
minibuffer text after point, if any, into account: this text is |
905 |
treated as a substring of the remaining part of the completion |
906 |
alternative (i.e., the part not matched by the minibuffer text before |
907 |
point). If no completion alternatives are found this way, Emacs |
908 |
attempts to perform partial-completion. If still no completion |
909 |
alternatives are found, we fall back on the Emacs 22 rules for |
910 |
performing completion. |
911 |
|
912 |
The new variable `completion-styles' can be customized to choose your |
913 |
favorite completion style. |
914 |
|
915 |
*** When M-n in the minibuffer reaches the end of the list of defaults, |
916 |
it adds the completion list to the end, so next M-n continues putting |
917 |
completion items to the minibuffer. The same principle applies to |
918 |
incremental search commands as well: C-s or C-M-s starts searching |
919 |
the default values and after the end of defaults they continue |
920 |
searching minibuffer completion items. |
921 |
|
922 |
*** Minibuffer input of shell commands now comes with completion. |
923 |
|
924 |
*** In the `C-x d' (Dired) prompt, typing M-n gives the visited file |
925 |
name of the current buffer. |
926 |
|
927 |
*** In the M-! (shell-command) prompt, M-n provides some default commands. |
928 |
These are guessed using the file extension of the current file, based |
929 |
on the file-handlers specified in the operating system's `mailcap' |
930 |
file. The ! command in Dired (dired-do-shell-command) works |
931 |
similarly, using the file displayed on the current line. |
932 |
|
933 |
*** A list of regexp default values is available via M-n for `occur', |
934 |
`keep-lines', `flush-lines' and `how-many'. This list includes the active |
935 |
region in transient-mark-mode, the word under the cursor, the last Isearch |
936 |
regexp, the last Isearch string and the last replacement regexp. |
937 |
|
938 |
*** When enable-recursive-minibuffers is non-nil, operations which use |
939 |
switch-to-buffer (such as C-x b and C-x C-f) do not fail any more when |
940 |
used in a minibuffer or a dedicated window. Instead, they fallback on |
941 |
using pop-to-buffer, which will use some other window. This change |
942 |
has no effect when enable-recursive-minibuffers is nil (the default). |
943 |
|
944 |
*** Isearch started in the minibuffer searches in the minibuffer history. |
945 |
Reverse Isearch commands (C-r, C-M-r) search in previous minibuffer |
946 |
history elements, and forward Isearch commands (C-s, C-M-s) search in |
947 |
next history elements. When the reverse search reaches the first history |
948 |
element, it wraps to the last history element, and the forward search |
949 |
wraps to the first history element. When the search is terminated, the |
950 |
history element containing the search string becomes the current. |
951 |
|
952 |
*** The variable read-file-name-completion-ignore-case overrides |
953 |
completion-ignore-case for file name completion. |
954 |
|
955 |
*** The variable read-buffer-completion-ignore-case overrides |
956 |
completion-ignore-case for buffer name completion. |
957 |
|
958 |
*** The new command `minibuffer-force-complete' chooses one of the |
959 |
possible completions, rather than stopping at the common prefix. |
960 |
|
961 |
*** If `completion-auto-help' is `lazy', Emacs shows the completions |
962 |
buffer only on the second attempt to complete. This was already |
963 |
supported in `partial-completion-mode'. |
964 |
|
965 |
** Face changes |
966 |
|
967 |
*** S-down-mouse-1 now pops up a menu for changing the font and text |
968 |
size of the default face in the current buffer. The face is changed |
969 |
via face remapping (see Lisp changes, below). |
970 |
|
971 |
*** New commands to change the default face size in the current buffer. |
972 |
To increase it, type `C-x C-+' or `C-x C-='. To decrease it, type |
973 |
`C-x C--'. To restore the default (global) face size, type `C-x C-0'. |
974 |
These work via Text Scale mode, a new minor mode. |
975 |
|
976 |
The final key in the above commands may be repeated without the |
977 |
leading `C-x', e.g. `C-x C-= C-= C-=' increases the face height by |
978 |
three steps. Each step scales the height of the default face by the |
979 |
value of the variable `text-scale-mode-step'. |
980 |
|
981 |
*** The commands buffer-face-mode and buffer-face-set can be used to |
982 |
remap the default face in the current buffer. See "Buffer Face mode", |
983 |
under New Modes and Packages. |
984 |
|
985 |
** Primary selection changes |
986 |
|
987 |
*** You can disable kill ring commands from accessing the primary |
988 |
selection by setting `x-select-enable-primary' to nil. |
989 |
|
990 |
** Continuation lines can now be wrapped at word boundaries |
991 |
(word-wrapping). This is controlled by the new per-buffer variable |
992 |
`word-wrap'. Word wrapping does not take place if continuation lines |
993 |
are not shown, e.g. if truncate-lines is non-nil. The most convenient |
994 |
way to enable word-wrapping is using the new minor mode Visual Line |
995 |
mode; in addition to setting `word-wrap' to t, this rebinds some |
996 |
editing commands to work on screen lines rather than text lines. See |
997 |
New Modes and Packages, below. |
998 |
|
999 |
** Window management changes |
1000 |
|
1001 |
*** truncate-partial-width-windows now accepts integer values, which |
1002 |
specify a minimum window width for partial-width windows, below which |
1003 |
lines are truncated. The default has been changed to 50. |
1004 |
|
1005 |
*** The new command balance-windows-area balances windows both |
1006 |
vertically and horizontally. |
1007 |
|
1008 |
*** pop-to-buffer now always sets input focus when the popped-to window |
1009 |
is on a different frame. |
1010 |
|
1011 |
** Miscellaneous changes: |
1012 |
|
1013 |
*** C-l is bound to the new command recenter-top-bottom, rather than recenter. |
1014 |
This moves the current line to window center, top and bottom on |
1015 |
successive invocations. |
1016 |
|
1017 |
*** scroll-preserve-screen-position also preserves the column position. |
1018 |
|
1019 |
*** If `yank-pop-change-selection' is t, rotating the kill ring also |
1020 |
updates the selection or clipboard to the current yank, just as M-w |
1021 |
would do so with the text it copies to the kill ring. |
1022 |
|
1023 |
*** C-M-% now shows replacement as it would look in the buffer, with |
1024 |
`\N' and `\&' substituted according to the match. Old behavior can be |
1025 |
restored by customizing `query-replace-show-replacement'. |
1026 |
|
1027 |
*** The command shell prompts for the default directory, when it is |
1028 |
called with a prefix and the default directory is a remote file name. |
1029 |
This is because some file name handlers (like ange-ftp) are not able to |
1030 |
run processes remotely. |
1031 |
|
1032 |
*** The new command kill-matching-buffers kills buffers whose name |
1033 |
matches a regexp. |
1034 |
|
1035 |
*** The value of comment-style now defaults to `indent'. |
1036 |
Thefore, comment-start markers are inserted at the current indentation |
1037 |
of the region to comment, rather than the leftmost column. |
1038 |
|
1039 |
*** The new commands `pp-macroexpand-expression' and |
1040 |
`pp-macroexpand-last-sexp' pretty-print macro expansions. |
1041 |
|
1042 |
*** The new command `set-file-modes' allows to set file's mode bits. |
1043 |
The mode bits can be specified in symbolic notation, like with GNU |
1044 |
Coreutils, in addition to an octal number. `chmod' is a new |
1045 |
convenience alias for this function. |
1046 |
|
1047 |
*** `next-error-recenter' specifies how next-error should recenter the |
1048 |
visited source file. Its value can be a number (for example, 0 for |
1049 |
top line, -1 for bottom line), or nil for no recentering. |
1050 |
|
1051 |
*** When typing in a password in the echo area, C-y yanks the current |
1052 |
kill into the password. |
1053 |
|
1054 |
*** Tooltip frame parameters `font' and `color' in `tooltip-frame-parameters' |
1055 |
are ignored. Customize the `tooltip' face instead. |
1056 |
|
1057 |
*** `mkdir' is a new convenience alias for `make-directory'. |
1058 |
|
1059 |
* New Modes and Packages in Emacs 23.1 |
1060 |
|
1061 |
** Auto Composition Mode is a minor mode that composes characters |
1062 |
automatically when they are displayed. It is globally on by default. |
1063 |
It uses `auto-composition-function' (default `auto-compose-chars'). |
1064 |
|
1065 |
** Bubbles, a new game, is similar to SameGame. |
1066 |
|
1067 |
** Buffer Face mode is a minor mode for remapping the default face in |
1068 |
the current buffer. The variable `buffer-face-mode-face' specifies |
1069 |
the face to remap to. The command `buffer-face-set' prompts for a |
1070 |
face name, sets `buffer-face-mode-face' to it, and enables |
1071 |
buffer-face-mode. See "Face changes", under Editing Changes, for a |
1072 |
description of face remapping. |
1073 |
|
1074 |
** butterfly flips the desired bit on the drive platter. |
1075 |
See http://xkcd.com/378/ |
1076 |
|
1077 |
** bug-reference.el provides clickable links to bug reports. |
1078 |
|
1079 |
** dbus.el provides D-Bus language bindings. |
1080 |
D-Bus is an inter-process communication mechanism for applications |
1081 |
residing on the same host. See the manual for details. |
1082 |
|
1083 |
** DocView mode allows viewing of PDF, PostScript and DVI documents. |
1084 |
One can also search for a regular expression in the document. For |
1085 |
details, see the commentary in doc-view.el. |
1086 |
|
1087 |
PDF and DVI files are now opened in Doc View mode by default. |
1088 |
|
1089 |
In Postcript mode, C-c C-c launches Doc View minor mode for viewing |
1090 |
the postscript file. |
1091 |
|
1092 |
** EasyPG provides an interface to the GNU Privacy Guard (GnuPG). |
1093 |
It includes a GnuPG keyring browser, cryptographic operations on |
1094 |
regions and files, and automatic encryption of *.gpg files. For |
1095 |
details, see the EasyPG Assistant User's Manual. |
1096 |
|
1097 |
** json.el is a library for parsing and generating JSON |
1098 |
(JavaScript Object Notation), a lightweight data-interchange format. |
1099 |
|
1100 |
** linum.el is a new minor mode to display line numbers for the |
1101 |
current buffer. |
1102 |
|
1103 |
** mairix.el is an interface to mairix, a free tool for indexing and |
1104 |
searching locally stored mail. It allows you to query mairix and |
1105 |
display the search results with Rmail, Gnus and VM. Note that there |
1106 |
is an existing Gnus back end, nnmairix.el, which should be used with |
1107 |
Maildir/MH setups. |
1108 |
|
1109 |
** minibuffer-depth-indicate-mode shows the minibuffer depth in the prompt. |
1110 |
|
1111 |
** nXML Mode |
1112 |
This is a new mode for editing XML documents. It allows a schema to |
1113 |
be associated with the XML document being edited, using Relax NG as |
1114 |
the schema language. The schema is used to provide two key features: |
1115 |
|
1116 |
*** Continuous validation. nXML validates as you type, highlighting |
1117 |
any invalid parts of your document. |
1118 |
|
1119 |
*** Completion. nXML can assist you in entering an element name, |
1120 |
attribute name or data value by using information about what is |
1121 |
allowed by the schema in that context. |
1122 |
|
1123 |
** proced.el provides a Dired-like interface for operating on |
1124 |
processes. Proced makes an Emacs buffer containing a listing of the |
1125 |
current processes. You can use the normal Emacs commands to move |
1126 |
around in this buffer, and special Proced commands to operate on the |
1127 |
processes listed. It is currently only functional on GNU/Linux, |
1128 |
MS-Windows and Solaris. |
1129 |
|
1130 |
** Remember Mode is a mode for jotting down things to remember. |
1131 |
Notes can be saved to a Diary file. For details, see the Remember |
1132 |
Manual. |
1133 |
|
1134 |
** RST mode is a major mode for editing reStructuredText files. |
1135 |
|
1136 |
** Ruby mode is a major mode for Ruby files. |
1137 |
|
1138 |
** Visual Line mode provides support for editing by visual lines. |
1139 |
It turns on word-wrapping in the current buffer, and rebinds C-a, C-e, |
1140 |
and C-k to commands that operate by visual lines instead of logical |
1141 |
lines. This is a more reliable replacement for longlines-mode. |
1142 |
This can also be turned on using the menu bar, via |
1143 |
Options -> Line Wrapping in this Buffer -> Word Wrap |
1144 |
|
1145 |
** xesam.el is an implementation of Xesam, an interface to (desktop) |
1146 |
search engines like Beagle, Strigi, and Tracker. The Xesam API |
1147 |
requires D-Bus for communication. |
1148 |
|
1149 |
** zeroconf.el offers service discovery and service publishing |
1150 |
interfaces according to the zeroconf specification. It communicates |
1151 |
with Avahi, a zeroconf implementation, via D-Bus messages on systems |
1152 |
which have installed this software. |
1153 |
|
1154 |
** There is a new `whitespace' package. |
1155 |
(The pre-existing one has been renamed to `old-whitespace'.) |
1156 |
Now, besides reporting bogus blanks, the whitespace package has a |
1157 |
minor mode and a global minor mode to visualize blanks (TAB, (HARD) |
1158 |
SPACE and NEWLINE). The visualization is made via faces and/or display |
1159 |
table. It can also indicate lines that extend beyond a given column, |
1160 |
trailing blanks, and empty lines at the start or end of a buffer. |
1161 |
See `whitespace-style' for more details. The `whitespace-action' option |
1162 |
specifies what to do when a buffer is visited, killed, or written. |
1163 |
|
1164 |
|
1165 |
* Changes in Specialized Modes and Packages in Emacs 23.1 |
1166 |
|
1167 |
** Abbrev has been rewritten in Elisp and extended with more flexibility. |
1168 |
|
1169 |
*** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put, |
1170 |
abbrev-table-p, abbrev-insert, abbrev-table-menu. |
1171 |
|
1172 |
*** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'. |
1173 |
|
1174 |
*** `make-abbrev-table', `define-abbrev', `define-abbrev-table' all take |
1175 |
extra arguments for arbitrary properties. |
1176 |
|
1177 |
*** New variable `abbrev-minor-mode-table-alist'. |
1178 |
|
1179 |
*** `local-abbrev-table' can hold a list of abbrev-tables. |
1180 |
|
1181 |
*** Abbrevs have now the following special properties: |
1182 |
`:count', `:system', `:enable-function', `:case-fixed'. |
1183 |
|
1184 |
*** Abbrev-tables have now the following special properties: |
1185 |
`:parents', `:case-fixed', `:enable-function', `:regexp', |
1186 |
`abbrev-table-modiff'. |
1187 |
|
1188 |
** Apropos |
1189 |
|
1190 |
*** `apropos-library' describes the elements defined in a given library. |
1191 |
|
1192 |
*** Set `apropos-compact-layout' is you want a more compact (but wider) layout. |
1193 |
|
1194 |
** Archive Mode has basic support to browse Rar archives. |
1195 |
Note, however, that the free version of the unrar command only handles |
1196 |
versions 1 and 2 of the Rar format. |
1197 |
|
1198 |
** BibTeX mode |
1199 |
|
1200 |
*** New command `bibtex-initialize' (re)initializes BibTeX buffers. |
1201 |
|
1202 |
*** New `bibtex-entry-format' options `whitespace', `braces', and |
1203 |
`string', disabled by default. |
1204 |
|
1205 |
*** New variable `bibtex-cite-matcher-alist' contains rules to |
1206 |
identify cited keys in BibTeX entries, used by `bibtex-find-crossref'. |
1207 |
|
1208 |
*** Command `bibtex-url' allows multiple URLs per entry. |
1209 |
|
1210 |
** Bookmarks |
1211 |
|
1212 |
*** bookmark.el saves bookmarks in a pre-Emacs-23-incompatible file format |
1213 |
bookmark.el can read a .emacs.bmk file saved by an older Emacs, but an |
1214 |
older Emacs cannot read one saved by Emacs 23. |
1215 |
|
1216 |
** Calendar and diary |
1217 |
|
1218 |
*** There is a new date style, `iso', essentially year/month/day. |
1219 |
The variable `european-calendar-style' is obsolete - use `calendar-date-style'. |
1220 |
Similarly, the commands `american-calendar' and `european-calendar' |
1221 |
should be replaced by `calendar-set-date-style'. |
1222 |
|
1223 |
*** The calendar namespace has been rationalized. |
1224 |
All functions and variables now begin with a `calendar-', `diary-', or |
1225 |
`holiday-' prefix. The various calendar systems have secondary |
1226 |
prefixes, eg `calendar-french-'. The old names you are likely to use |
1227 |
directly still exist, for the time being, as aliases, but please start |
1228 |
using the new names. |
1229 |
|
1230 |
*** The whitespace in the calendar layout can be customized. |
1231 |
See the variables: |
1232 |
calendar-left-margin, calendar-intermonth-spacing, calendar-column-width, |
1233 |
calendar-day-header-width, and calendar-day-digit-width. |
1234 |
|
1235 |
*** Text (e.g. ISO weeks) can be displayed between the calendar months. |
1236 |
See the variables calendar-intermonth-header and calendar-intermonth-text. |
1237 |
|
1238 |
*** The function `holiday-chinese' computes holidays on the Chinese calendar. |
1239 |
It has been used to add items to the list `holiday-oriental-holidays'. |
1240 |
|
1241 |
*** `diary-remind' accepts a negative number -DAYS as a shorthand for |
1242 |
the list (1 2 ... DAYS). |
1243 |
|
1244 |
** Change Log mode |
1245 |
|
1246 |
*** The new command C-c C-f (change-log-find-file) finds the file |
1247 |
associated with the current log entry. |
1248 |
|
1249 |
*** The new command C-c C-c (change-log-goto-source) goes to the |
1250 |
source code associated with a log entry. |
1251 |
|
1252 |
** Compile and grep modes |
1253 |
|
1254 |
*** The mode-line entry for the *compilation* and *grep* buffer is color coded. |
1255 |
It has different colors for to show that: (a) the command is still |
1256 |
running, (b) successful completion, (c) error. |
1257 |
|
1258 |
*** compilation-auto-jump-to-first-error tells `compile' to jump to |
1259 |
the first error encountered during compilations. |
1260 |
|
1261 |
*** compilation-scroll-output accepts a new value, `first-error', which |
1262 |
says to stop auto scrolling at the first error that occurs. |
1263 |
|
1264 |
*** The `cc' alias for C++ files in `grep-file-aliases' has been |
1265 |
improved. `hh' can be used to match C++ header files and `cchh' both |
1266 |
C++ sources and headers. |
1267 |
|
1268 |
** Copyright |
1269 |
|
1270 |
*** You can specify your copyright holders' names. |
1271 |
Only copyright lines with holders matching `copyright-names-regexp' are |
1272 |
considered for update. |
1273 |
|
1274 |
*** Copyrights can be at the end of the buffer. |
1275 |
This is controlled by `copyright-at-end-flag' (used by, e.g., change-log-mode). |
1276 |
|
1277 |
** Custom |
1278 |
|
1279 |
*** defcustom accepts new keyword arguments, `:safe' and `:risky', which |
1280 |
set a variable's `safe-local-variable' and `risky-local-variable' property. |
1281 |
|
1282 |
** Diff mode |
1283 |
|
1284 |
*** diff-refine-hunk highlights word-level details of changes in a diff hunk. |
1285 |
It's used automatically as you move through hunks, see |
1286 |
diff-auto-refine-mode. It is bound to `C-c C-b'. |
1287 |
|
1288 |
*** diff-add-change-log-entries-other-window iterates through the diff |
1289 |
buffer and tries to create ChangeLog entries for each change. |
1290 |
It is bound to `C-x 4 A'. |
1291 |
|
1292 |
*** Turning on `whitespace-mode' in a diff buffer will show trailing |
1293 |
whitespace problems in the modified lines. |
1294 |
|
1295 |
** Dired |
1296 |
|
1297 |
*** In Dired, C-x C-q now runs the command wdired-change-to-wdired-mode, |
1298 |
and C-x C-q in wdired-mode exits it with asking a question about |
1299 |
saving changes. |
1300 |
|
1301 |
*** `&' runs the command `dired-do-async-shell-command' that executes |
1302 |
the command asynchronously without the need to manually add ampersand |
1303 |
to the end of the command. Its output appears in the buffer `*Async Shell |
1304 |
Command*'. |
1305 |
|
1306 |
*** `M-s f C-s' and `M-s f M-C-s' run Isearch that matches only at file names. |
1307 |
When a new user option `dired-isearch-filenames' is t, then even ordinary |
1308 |
Isearch started with `C-s' and `C-M-s' matches only at file names in the |
1309 |
Dired buffer. When `dired-isearch-filenames' is `dwim' then activation of |
1310 |
file name Isearch depends on the position of point - if point is on a file |
1311 |
name initially, then Isearch matches only file names, otherwise it matches |
1312 |
everywhere in the Dired buffer. You can toggle file names matching on or |
1313 |
off by typing `M-s f' in Isearch mode. |
1314 |
|
1315 |
*** `M-s a C-s' and `M-s a M-C-s' run multi-file Isearch on the marked files. |
1316 |
They visit the first marked file in the sequence and display the usual Isearch |
1317 |
prompt for a string or a regexp where all Isearch commands are available. |
1318 |
|
1319 |
*** `Q' in Dired provides two new keys for multi-file replacement. |
1320 |
The upper case key `Y' replaces all remaining matches in all remaining files |
1321 |
with no more questions. The upper case key `N' stops doing replacements |
1322 |
in the current file and skips to the next file. These multi-file keys |
1323 |
are available for all commands that use `tags-query-replace' |
1324 |
including `dired-do-query-replace-regexp', `vc-dir-query-replace-regexp', |
1325 |
`reftex-query-replace-document'. |
1326 |
|
1327 |
** Fortran |
1328 |
|
1329 |
*** The line length of fixed-form Fortran is not fixed at 72 any more. |
1330 |
Customize the variable `fortran-line-length' to change it. |
1331 |
|
1332 |
*** In Fortran mode, M-; is now bound to the standard comment-dwim, |
1333 |
rather than fortran-indent-comment. |
1334 |
|
1335 |
*** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax. |
1336 |
|
1337 |
** Gnus |
1338 |
|
1339 |
*** The Gnus package has been updated |
1340 |
There are many news features, bug fixes and improvements; see the file |
1341 |
GNUS-NEWS or the node "No Gnus" in the Gnus manual for details. |
1342 |
|
1343 |
*** In Emacs 23, Gnus uses Emacs' new internal coding system `utf-8-emacs' for |
1344 |
saving articles drafts and ~/.newsrc.eld. These file may not be read |
1345 |
correctly in Emacs 22 and below. If you want to Gnus across different Emacs |
1346 |
versions, you may set `mm-auto-save-coding-system' to `emacs-mule'. |
1347 |
|
1348 |
*** Passwords are consistently loaded through `auth-source' |
1349 |
Gnus can use `auth-source' for POP and IMAP passwords. Also see that |
1350 |
`smtpmail' and `url' support `auth-source' for SMTP and HTTP/HTTPS/RSS |
1351 |
authentication respectively. |
1352 |
|
1353 |
** Help mode |
1354 |
|
1355 |
*** New macro `with-help-window' should set up help windows better |
1356 |
than `with-output-to-temp-buffer' with `print-help-return-message'. |
1357 |
|
1358 |
*** New option `help-window-select' permits to customize whether help |
1359 |
window shall be automatically selected when invoking help. |
1360 |
|
1361 |
*** New variable `help-window-point-marker' permits one to specify a new |
1362 |
position for point in help window (for example in `view-lossage'). |
1363 |
|
1364 |
** Isearch |
1365 |
|
1366 |
*** New command `isearch-forward-word' bound globally to `M-s w' starts |
1367 |
incremental word search. New command `isearch-toggle-word' bound to the |
1368 |
same key `M-s w' in Isearch mode toggles word searching on or off |
1369 |
while Isearch is active. |
1370 |
|
1371 |
*** New command `isearch-highlight-regexp' bound to `M-s h r' in Isearch |
1372 |
mode runs `highlight-regexp' (`hi-lock-face-buffer') with the current |
1373 |
search string as its regexp argument. The same key `M-s h r' and |
1374 |
other keys on the `M-s h' prefix are bound globally to the command |
1375 |
`highlight-regexp' and other hi-lock commands. |
1376 |
|
1377 |
*** New command `isearch-occur' bound to `M-s o' in Isearch mode |
1378 |
runs `occur' with the current search string. The same key `M-s o' |
1379 |
is bound globally to the command `occur'. |
1380 |
|
1381 |
*** Isearch can now search through multiple ChangeLog files. |
1382 |
When running Isearch in a ChangeLog file, if the search fails, |
1383 |
then another C-s tries searching the previous ChangeLog, |
1384 |
if there is one (e.g. going from ChangeLog to ChangeLog.12). |
1385 |
This is enabled if multi-isearch-search is non-nil. |
1386 |
|
1387 |
*** Two new commands to start Isearch on a list of marked buffers |
1388 |
for buff-menu.el and ibuffer.el are bound to the keys `M-s a C-s' and |
1389 |
`M-s a M-C-s'. |
1390 |
|
1391 |
*** The part of an Isearch that failed to match is highlighted in |
1392 |
`isearch-fail' face. |
1393 |
|
1394 |
*** `C-h C-h' in Isearch mode displays isearch-specific Help screen, |
1395 |
`C-h b' displays all Isearch key bindings, `C-h k' displays the full |
1396 |
documentation of the given Isearch key sequence, `C-h m' displays |
1397 |
documentation of Isearch mode. All the rest Help commands exit Isearch mode |
1398 |
and execute their global definitions. |
1399 |
|
1400 |
*** When started in the minibuffer, Isearch searches in the minibuffer |
1401 |
history. See `Minibuffer changes', above. |
1402 |
|
1403 |
** MH-E |
1404 |
|
1405 |
*** Upgraded to MH-E version 8.2. See MH-E-NEWS for details. |
1406 |
|
1407 |
** Python |
1408 |
*** The file etc/emacs.py now supports both Python 2 and 3, meaning |
1409 |
that either version can be used as inferior Python by python.el. |
1410 |
|
1411 |
*** Python mode now has `pdbtrack' functionality. When using pdb to |
1412 |
debug a Python program, pdbtrack notices the pdb prompt and displays |
1413 |
the source file and line that the program is stopped at, much the same |
1414 |
way as gud-mode does for debugging C programs with gdb. |
1415 |
|
1416 |
** Recentf |
1417 |
|
1418 |
*** The default value of `recentf-keep' prevents from checking of |
1419 |
remote files, if there is no established connection to the |
1420 |
corresponding remote host. |
1421 |
|
1422 |
** Rmail |
1423 |
|
1424 |
*** Rmail no longer converts the messages to Babyl format. |
1425 |
Instead, it uses UNIX mbox format, both on disk and in Rmail buffers, |
1426 |
and does conversion and decoding when a message is displayed. |
1427 |
|
1428 |
The first time you visit an Rmail file in Babyl format, Rmail |
1429 |
automatically converts it to mbox format. This is a one-time |
1430 |
conversion, but it can take a few minutes, depending on how fast is |
1431 |
your machine and on the size of the file. You should find the rest of |
1432 |
Rmail usage unaltered. |
1433 |
|
1434 |
However, M-x set-rmail-inbox-list now lasts only for one session |
1435 |
because there is no way to save the list of inbox files in an |
1436 |
mbox-format file. |
1437 |
|
1438 |
Also, whereas with Babyl format M-x find-file would switch to Rmail |
1439 |
mode, with mbox format this is no longer the case (there being no way |
1440 |
to add an "-*- rmail-*-" cookie to an mbox file). Use C-u M-x rmail |
1441 |
instead. |
1442 |
|
1443 |
If you have written any extensions to Rmail, they are likely to need |
1444 |
updating. Conceptually, the Rmail buffer that you see is no longer |
1445 |
just a narrowed portion of the whole. So you cannot access the whole |
1446 |
of a message (or message collection) by a simple save-restriction and |
1447 |
widen. Instead, there are two buffers: the rmail-buffer, and the |
1448 |
rmail-view-buffer. The former is the buffer that you see, the latter |
1449 |
is invisible. Most of the time, the invisible `view' buffer contains |
1450 |
the full contents of the Rmail file, and the Rmail buffer contains a |
1451 |
decoded copy of the current message (with only a subset of the |
1452 |
headers). In this state, Rmail is said to be `swapped'. |
1453 |
|
1454 |
You may find the following functions useful: |
1455 |
|
1456 |
`rmail-get-header' and `rmail-set-header' get or set the value of a |
1457 |
message header, whether or not it is currently visible. |
1458 |
|
1459 |
`rmail-apply-in-message' is a general purpose function that calls a |
1460 |
function (with arguments) which you specify on the full text of a given |
1461 |
message. To further narrow to just the headers, search forward for "\n\n". |
1462 |
|
1463 |
*** The new command `rmail-mime' displays MIME messages. |
1464 |
It is bound to `v' in Rmail buffers and summaries. It displays plain |
1465 |
text and multipart messages in a temporary buffer, and offers buttons |
1466 |
to save attachments. |
1467 |
|
1468 |
*** The command `rmail-redecode-body' no longer accepts the optional arg RAW. |
1469 |
Since Rmail now holds messages in their original undecoded form in a |
1470 |
separate buffer, `rmail-redecode-body' no longer encodes the original |
1471 |
message, and therefore there should be no need to avoid encoding it. |
1472 |
|
1473 |
*** The o command is now `rmail-output'. It is an all-purpose command |
1474 |
for copying messages from Rmail and appending them to files. It |
1475 |
handles Babyl-format files as well as mbox-format files, and it |
1476 |
handles both kinds properly when they are visited in Emacs. It always |
1477 |
copies the full headers of the message. |
1478 |
|
1479 |
*** The C-o command is now `rmail-output-as-seen'. It uses |
1480 |
the message as displayed, appending it to an mbox file. |
1481 |
|
1482 |
*** The modified status of the Rmail buffer is reported in the mode-line. |
1483 |
Previously, this information was hidden. |
1484 |
|
1485 |
** TeX modes |
1486 |
|
1487 |
*** New option latex-indent-within-escaped-parens |
1488 |
permits to customize indentation of LaTeX environments delimited |
1489 |
by escaped parens. |
1490 |
|
1491 |
** T-mouse Mode |
1492 |
|
1493 |
*** If the gpm mouse server is running and t-mouse-mode is enabled, |
1494 |
Emacs uses a Unix socket in a GNU/Linux console to talk to server, |
1495 |
rather than faking events using the client program mev. This C level |
1496 |
approach provides mouse highlighting and help echoing in the |
1497 |
minibuffer. |
1498 |
|
1499 |
** Tramp |
1500 |
|
1501 |
*** New connection methods. |
1502 |
The new methods "plinkx", "plink2", "psftp", "sftp" and "fish" have |
1503 |
been introduced. There are also new so-called gateway methods |
1504 |
"tunnel" and "socks". |
1505 |
|
1506 |
*** IPv6 addresses. |
1507 |
IPv6 addresses are supported now as host names. They must be embedded |
1508 |
in square brackets, like in "/ssh:[::1]:". |
1509 |
|
1510 |
*** Multihop syntax has been removed. |
1511 |
The pseudo-method "multi" has been removed. Instead, multi hops |
1512 |
can be specified by the new variable `tramp-default-proxies-alist'. |
1513 |
|
1514 |
*** More default settings. |
1515 |
Default values can be set via the variables `tramp-default-user', |
1516 |
`tramp-default-user-alist' and `tramp-default-host'. |
1517 |
|
1518 |
*** Connection information is cached. |
1519 |
In order to reduce connection setup, information about used |
1520 |
connections is kept persistently in a file. The name of this file is |
1521 |
defined in the variable `tramp-persistency-file-name'. |
1522 |
|
1523 |
*** Control of remote processes. |
1524 |
Running processes on a remote host can be controlled by settings in |
1525 |
`tramp-remote-path' and `tramp-remote-process-environment'. |
1526 |
|
1527 |
*** Success of remote copy is checked. |
1528 |
When the variable `file-precious-flag' is set, the success of a remote |
1529 |
file copy is checked via the file's checksum. |
1530 |
|
1531 |
*** Passwords can be read from an authentification file. |
1532 |
Tramp uses the package `auth-source' to read passwords from a file, if |
1533 |
necessary. |
1534 |
|
1535 |
** VC and related modes |
1536 |
|
1537 |
*** VC now supports applying VC operations to a set of files at a time. |
1538 |
This enables VC to work much more effectively with changeset-oriented |
1539 |
version-control systems such as Subversion, GNU Arch, Mercurial, Git |
1540 |
and Bzr. VC will now pass a multiple-file commit to these systems as |
1541 |
a single changeset. |
1542 |
|
1543 |
*** vc-dir is a new command that displays file names and their VC |
1544 |
status. It allows to apply various VC operations to a file, a |
1545 |
directory or a set of files/directories. |
1546 |
|
1547 |
*** VC switches are no longer appended, rather the first non-nil value is used. |
1548 |
(This was for the most part true in Emacs 22, but was not advertised). |
1549 |
This is because there is an increasing variety of VC systems, and they |
1550 |
do not all accept the same "common" options. For example, a CVS diff |
1551 |
command used to append the values of `vc-cvs-diff-switches', |
1552 |
`vc-diff-switches', and `diff-switches'. Now the first non-nil value |
1553 |
from that sequence is used. The special value `t' means "no switches". |
1554 |
|
1555 |
*** Clicking on the VC mode-line entry now pops the VC menu. |
1556 |
|
1557 |
*** The VC mode-line entry now has a tooltip that explains the VC file status. |
1558 |
|
1559 |
*** In VC Annotate mode, the key bindings have changed to use lower |
1560 |
case keys instead of the upper case keys used in the past. |
1561 |
|
1562 |
*** In VC Annotate mode, for VC systems that support changesets, you can |
1563 |
see the diff for the whole changeset (not only for the current file) |
1564 |
by typing the D key. Using the "Show changeset diff of revision at |
1565 |
line" menu entry does the same thing. |
1566 |
|
1567 |
*** In VC Annotate mode, you can type v to toggle the annotation visibility. |
1568 |
|
1569 |
*** In VC Annotate mode, you can type f to show the file revision on |
1570 |
the current line. |
1571 |
|
1572 |
*** Asynchronous VC commands display [Waiting...] in the mode-line |
1573 |
of the corresponding buffer as long as the asynchronous process is |
1574 |
active. |
1575 |
|
1576 |
*** Log entries can be modified using the key "e" in log-view. |
1577 |
For now only CVS, RCS, SCCS and SVN support this functionality. |
1578 |
This is done by the `modify-change-comment' backend function. |
1579 |
|
1580 |
*** In log-view-mode, for VC systems that support changesets, you can |
1581 |
see the diff for the whole changeset (not only for the current file) |
1582 |
by typing the D key or using the "Changeset Diff" menu entry. |
1583 |
|
1584 |
*** In Log Edit mode, C-c C-d now shows the diff for the files involved. |
1585 |
|
1586 |
*** vc-git supports the "git grep" command. |
1587 |
|
1588 |
*** VC Support for Meta-CVS has been removed for lack of a maintainer able |
1589 |
to update it to the new VC. |
1590 |
|
1591 |
** Miscellaneous |
1592 |
|
1593 |
*** comint-mode uses `start-file-process' now (see Lisp Changes). |
1594 |
If `default-directory' is a remote file name, subprocesses are started |
1595 |
on the corresponding remote system. |
1596 |
|
1597 |
*** Eldoc highlights the function argument under point |
1598 |
with the face `eldoc-highlight-function-argument'. |
1599 |
|
1600 |
*** In Etags, the --members option is now the default. |
1601 |
Use --no-members if you want the old default behavior of not tagging |
1602 |
struct members in C, members variables in C++ and variables in PHP. |
1603 |
|
1604 |
*** The `gdb' command only works with the graphical interface now. |
1605 |
Use `gud-gdb' if you want the (old) text command mode. |
1606 |
|
1607 |
*** goto-address.el provides two new minor modes, goto-address-mode and |
1608 |
goto-address-prog-mode, which buttonize URLS and email addresses. |
1609 |
|
1610 |
*** The new command `eshell/info' runs info in an eshell buffer. |
1611 |
|
1612 |
*** The new variable `ffap-rfc-directories' specifies a list of local |
1613 |
directories in which `ffap-rfc' will first search for RFCs. |
1614 |
|
1615 |
*** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them. |
1616 |
See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'. |
1617 |
|
1618 |
*** `icomplete-prospects-height' now supercedes `icomplete-prospects-length'. |
1619 |
|
1620 |
*** Info displays breadcrumbs in the header of the page. |
1621 |
See Info-breadcrumbs-depth to control it. |
1622 |
|
1623 |
*** net-utils has an `iwconfig' command, similar to the existing `ifconfig'. |
1624 |
It is used to configure wireless interfaces. |
1625 |
|
1626 |
*** The pcmpl-unix package supports hostname completion for ssh and scp. |
1627 |
|
1628 |
*** sgml-electric-tag-pair-mode lets you simultaneously edit matched tag pairs. |
1629 |
|
1630 |
*** smerge-refine highlights word-level details of changes in conflict. |
1631 |
It's used automatically as you move through conflicts, see |
1632 |
smerge-auto-refine-mode. |
1633 |
|
1634 |
*** talk.el has been extended for multiple tty support. |
1635 |
|
1636 |
*** A new command `display-time-world' has been added to the Time |
1637 |
package. It creates a buffer with an updating time display using |
1638 |
several time zones. |
1639 |
|
1640 |
*** The appearance of superscript and subscript in TeX is more customizable. |
1641 |
See the documentation of the variables: tex-fontify-script, |
1642 |
tex-font-script-display, tex-suscript-height-ratio, and |
1643 |
tex-suscript-height-minimum. |
1644 |
|
1645 |
*** view-remove-frame-by-deleting is now by default t |
1646 |
since users found iconification of view-mode frames distracting. |
1647 |
|
1648 |
*** WoMan tries to add locale-specific manual page directories to the |
1649 |
search path. This can be disabled by setting `woman-locale' to nil. |
1650 |
|
1651 |
|
1652 |
* Changes in Emacs 23.1 on non-free operating systems |
1653 |
|
1654 |
** Case is now considered significant in completion on MS-Windows. |
1655 |
The default value of `completion-ignore-case' is now nil on |
1656 |
MS-Windows, the same as it is for other operating systems. The |
1657 |
variable doesn't apply to reading a file name -- in that case Emacs |
1658 |
heeds `read-file-name-completion-ignore-case' instead. |
1659 |
|
1660 |
** IPv6 is supported on MS-Windows. |
1661 |
Emacs now supports IPv6 on Windows XP and later, and earlier versions |
1662 |
of Windows with third party IPv6 stacks installed. In Emacs 22, IPv6 was |
1663 |
supported on other platforms, but not on Windows due to using the winsock |
1664 |
1.1 header file, even though Emacs was linking to the winsock 2 library. |
1665 |
|
1666 |
** Busy cursor (hourglass) now displays on MS-Windows. |
1667 |
When Emacs is busy, an hourglass mouse cursor is displayed on Windows. |
1668 |
In Emacs 22 only X supported the busy cursor. |
1669 |
|
1670 |
** Battery status is available on MS-Windows |
1671 |
Emacs can now display the battery status in the mode-line when enabled with |
1672 |
display-battery-mode or from the Options menu. More verbose battery |
1673 |
information is also available with the command `battery'. In Emacs 22 |
1674 |
battery status was supported only on GNU/Linux and Mac. |
1675 |
|
1676 |
** More keys available on MS-Windows. |
1677 |
Keys normally associated with IMEs, and some exotic keys not normally found |
1678 |
on standard keyboards have been given names so they can be bound to functions |
1679 |
inside Emacs. If there are keys on your keyboard that have not been exposed |
1680 |
to Emacs in the past, try C-h k to see if they are available now. |
1681 |
|
1682 |
Emacs can now bind functions to the extra buttons for media player and |
1683 |
browser control present on some keyboards. These buttons are disabled |
1684 |
by default, since enabling them prevents their system-wide use when |
1685 |
Emacs has focus. To enable them, set the variable |
1686 |
w32-pass-multimedia-buttons to nil. See the doc string of that variable |
1687 |
for the list of extra keys that are available. |
1688 |
|
1689 |
** BDF fonts no longer supported on MS-Windows. |
1690 |
The font backend was completely rewritten for this release. The focus |
1691 |
on Windows has been getting acceptable performance and full unicode |
1692 |
support, including complex script shaping for native Windows fonts. A |
1693 |
rewrite of the BDF font support has not happened due to lack of time |
1694 |
and developers. If demand still exists for such a backend even with |
1695 |
the improved language support for native Windows fonts, future |
1696 |
development in this direction will most likely be based on the |
1697 |
freetype library, giving access to a wider range of font formats. |
1698 |
|
1699 |
|
1700 |
* Incompatible Lisp Changes in Emacs 23.1 |
1701 |
|
1702 |
** Variables cannot be both buffer-local and frame-local any more. |
1703 |
|
1704 |
** `functionp' returns nil for special forms. |
1705 |
I.e., it only returns t for objects that can be passed to `funcall'. |
1706 |
|
1707 |
** The behavior of map-char-table has changed. It may call the |
1708 |
specified function with a cons (FROM . TO) as a key if characters in |
1709 |
that range have the same value. |
1710 |
|
1711 |
** Process changes |
1712 |
|
1713 |
*** The function `dired-call-process' has been removed. |
1714 |
|
1715 |
*** The multibyteness of process filters is now determined by the |
1716 |
coding-system used for decoding. The functions |
1717 |
`process-filter-multibyte-p' and `set-process-filter-multibyte' are |
1718 |
obsolete. |
1719 |
|
1720 |
** The variable `byte-compile-warnings' can now be a list starting with `not', |
1721 |
meaning to disable the specified warnings. The meaning of this list |
1722 |
may therefore be the reverse of what you expect (of course, this is |
1723 |
only an issue if you make use of the new `not' syntax). Rather than |
1724 |
checking/manipulating elements directly, use the new functions |
1725 |
`byte-compile-warning-enabled-p', `byte-compile-disable-warning', and |
1726 |
`byte-compile-enable-warning.' |
1727 |
|
1728 |
** `mode-name' is no longer guaranteed to be a string. |
1729 |
Use `(format-mode-line mode-name)' to ensure a string value. |
1730 |
|
1731 |
** The function x-font-family-list has been removed. |
1732 |
Use the new function font-family-list (see Lisp Changes, below). |
1733 |
|
1734 |
** Internationalization changes |
1735 |
|
1736 |
*** The value of the function `charset-id' is now always 0. |
1737 |
|
1738 |
*** The functions `register-char-codings' and `coding-system-spec' |
1739 |
have been removed. |
1740 |
|
1741 |
*** The cpXXX coding systems are now supported automatically. |
1742 |
The functions cp-...-codepage, which you had to use in Emacs 22 to |
1743 |
enable support for these coding systems, have been deleted. |
1744 |
|
1745 |
*** The following features have been removed. They were used for |
1746 |
displaying various scripts with specific fonts, and are no longer |
1747 |
needed now that OpenType font support is available: |
1748 |
|
1749 |
**** `devanagari' and `devan-util', and all associated devanagari-* and |
1750 |
dev-* functions and variables (formerly used for Devanagari script). |
1751 |
|
1752 |
**** `kannada' and `knd-util', and all associated kannada-* and knd-* |
1753 |
functions and variables (formerly used for Kannada script). |
1754 |
|
1755 |
**** `malayalam' and `mlm-util', and all associated malayalam-* and |
1756 |
mlm-* functions and variables (formerly used for Malayalam script). |
1757 |
|
1758 |
**** `tamil' and `tml-util, and all associated tamil-* and tml-* |
1759 |
functions and variables (formerly used for Tamil script). |
1760 |
|
1761 |
*** The meaning of NAME argument of `set-fontset-font' is changed. |
1762 |
Previously nil is accepted as the default fontset. Now, nil is for |
1763 |
the fontset of the selected frame and t is for the default fontset. |
1764 |
|
1765 |
*** The meaning of FONTSET argument of `print-fontset' is changed. |
1766 |
Now, nil is for the fontset of the selected frame and t is for the |
1767 |
default fontset. |
1768 |
|
1769 |
** If a function in write-region-annotate-functions returns with a |
1770 |
different buffer current, Emacs no longer kills that buffer |
1771 |
automatically. This behavior existed in previous versions of Emacs, |
1772 |
but was undocumented. To kill a buffer after write-region, give the |
1773 |
variable `write-region-post-annotation-function' a buffer-local value |
1774 |
of `kill-buffer'. |
1775 |
|
1776 |
** The variable temp-file-name-pattern has been removed. |
1777 |
This variable was only used by call-process-region, which now uses |
1778 |
temporary-file-directory instead. |
1779 |
|
1780 |
** The COUNT and SYSTEM-FLAG arguments to define-abbrev have been |
1781 |
removed. The function now takes extra arguments for specifying |
1782 |
arbitrary abbrev properties. |
1783 |
|
1784 |
** end-of-defun-function is now guaranteed to work only when called |
1785 |
from the start of a defun. It must now leave point exactly at the end |
1786 |
of defun, since `end-of-defun' now itself moves forward over |
1787 |
whitespace after calling it. |
1788 |
|
1789 |
|
1790 |
* Lisp Changes in Emacs 23.1 |
1791 |
|
1792 |
** The new variable `generate-autoload-cookie' controls the magic comment |
1793 |
string used by `update-file-autoloads' to find autoloaded forms. The |
1794 |
variable `generated-autoload-file' similarly controls the name of the |
1795 |
file where `update-file-autoloads' writes the calls to `autoload'. |
1796 |
The default values are ";;;###autoload" and `loaddefs.el', |
1797 |
respectively. |
1798 |
|
1799 |
** New primitives `list-system-processes' and `process-attributes' |
1800 |
let Lisp programs access the processes that are running on the local |
1801 |
machine. See the doc strings of these functions for more details. |
1802 |
Not all platforms support accessing this information; on those that |
1803 |
don't, these primitives will return nil. |
1804 |
|
1805 |
** New variable `user-emacs-directory'. |
1806 |
Use this instead of "~/.emacs.d". |
1807 |
|
1808 |
** If a local hook function has a non-nil `permanent-local-hook' |
1809 |
property, `kill-all-local-variables' does not remove it from the local |
1810 |
value of the hook variable; it remains even if you change major modes. |
1811 |
|
1812 |
** `frame-inherited-parameters' lets new frames inherit parameters from |
1813 |
the selected frame. |
1814 |
|
1815 |
** New keymap `input-decode-map' overrides like key-translation-map, but |
1816 |
applies before function-key-map. Also it is terminal-local contrary to |
1817 |
key-translation-map. Terminal-specific key-sequences are generally added to |
1818 |
this map rather than to function-key-map now. |
1819 |
|
1820 |
** `ignore-errors' is now a standard macro (does not require the CL package). |
1821 |
|
1822 |
** `interprogram-paste-function' can now return one string or a list |
1823 |
of strings. In the latter case, Emacs puts the second and following |
1824 |
strings on the kill ring. |
1825 |
|
1826 |
** In `condition-case', a handler can specify "let the debugger run first". |
1827 |
You do this by writing `debug' in the list of conditions to be handled, |
1828 |
like this: |
1829 |
|
1830 |
(condition-case nil |
1831 |
(foo bar) |
1832 |
((debug error) nil)) |
1833 |
|
1834 |
** clone-indirect-buffer now runs the clone-indirect-buffer-hook. |
1835 |
|
1836 |
** `beginning-of-defun-function' now takes one argument, the count given to |
1837 |
`beginning-of-defun'. (N.B. `end-of-defun-function' doesn't take any |
1838 |
arguments.) |
1839 |
|
1840 |
** `file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED. |
1841 |
IDENTIFICATION specifies which part of the remote identifier has to be |
1842 |
returned. With CONNECTED passed non-nil, it is checked whether a |
1843 |
remote connection has been established already. |
1844 |
|
1845 |
** The new macro `declare-function' suppresses compiler warnings about |
1846 |
undefined functions. |
1847 |
|
1848 |
** Changes to interactive function handling |
1849 |
|
1850 |
*** The new interactive spec code ^ says to first call |
1851 |
handle-shift-selection if shift-select-mode is non-nil, before reading |
1852 |
the command arguments. This is used for shift-selection (see above). |
1853 |
|
1854 |
*** Built-in functions can now have an interactive specification that |
1855 |
is not a prompt string. If the `intspec' parameter of a `DEFUN' |
1856 |
starts with a `(', the string is evaluated as a Lisp form. |
1857 |
|
1858 |
*** The interactive-form of a function can be added post-facto via the |
1859 |
`interactive-form' symbol property. Mostly useful to add complex |
1860 |
interactive forms to subroutines. |
1861 |
|
1862 |
** Region changes |
1863 |
|
1864 |
*** Commands should use `use-region-p' to test whether there is |
1865 |
an active region that they should operate on. |
1866 |
|
1867 |
*** `region-active-p' returns non-nil when Transient Mark mode is |
1868 |
enabled and the mark is active. Most commands that act specially on |
1869 |
the active region in Transient Mark mode should use `use-region-p' |
1870 |
instead of `region-active-p', because `use-region-p' obeys the new |
1871 |
user option `use-empty-active-region' (see Editing Changes, above). |
1872 |
|
1873 |
*** If a command sets `transient-mark-mode' to (only . OLDVAL), that |
1874 |
means to activate transient-mark-mode temporarily, until the next |
1875 |
unshifted point motion command or mark deactivation. Afterwards, |
1876 |
reset transient-mark-mode to the value OLDVAL. The values `only' and |
1877 |
`identity', introduced in Emacs 22, are now deprecated. |
1878 |
|
1879 |
** Emacs session information |
1880 |
|
1881 |
*** The new variables `before-init-time' and `after-init-time' record the |
1882 |
value of `current-time' before and after Emacs loads the init files. |
1883 |
|
1884 |
*** The new function `emacs-uptime' returns the uptime of an Emacs instance. |
1885 |
|
1886 |
*** The new function `emacs-init-time' returns the duration of the |
1887 |
Emacs initialization. |
1888 |
|
1889 |
** Changes affecting display-buffer |
1890 |
|
1891 |
*** display-buffer tries to be smarter when splitting windows. |
1892 |
The new option split-window-preferred-function lets you specify your own |
1893 |
function to pop up new windows. Its default value split-window-sensibly |
1894 |
can split a window either vertically or horizontally, whichever seems |
1895 |
more suitable in the current configuration. You can tune the behavior |
1896 |
of split-window-sensibly by customizing split-height-threshold and the |
1897 |
new option split-width-threshold. Both options now take the value nil |
1898 |
to inhibit splitting in one direction. Setting split-width-threshold to |
1899 |
nil inhibits horizontal splitting and gets you the behavior of Emacs 22 |
1900 |
in this respect. In any case, display-buffer may now split the largest |
1901 |
window vertically even when it is not as wide as the containing frame. |
1902 |
|
1903 |
*** If pop-up-frames has the value `graphic-only', display-buffer only |
1904 |
makes a separate frame on graphic displays. |
1905 |
|
1906 |
*** select-frame and set-frame-selected-window have a new optional |
1907 |
argument NORECORD. If non-nil, this will avoid messing with the order |
1908 |
of recently selected windows and the buffer list. |
1909 |
|
1910 |
** Window parameters can now be defined. |
1911 |
These are analogous to frame parameters, but are associated with |
1912 |
individual windows. |
1913 |
|
1914 |
*** The new functions window-parameters, window-parameter, and |
1915 |
set-window-parameter are used to query and set window parameters. |
1916 |
|
1917 |
** Minibuffer and completion changes |
1918 |
|
1919 |
*** A list of default values can be specified for the DEFAULT argument of |
1920 |
functions `read-from-minibuffer', `read-string', `read-command', |
1921 |
`read-variable', `read-buffer', `completing-read'. Elements of this list |
1922 |
are available for inserting into the minibuffer by typing `M-n'. |
1923 |
For empty input these functions return the first element of this list. |
1924 |
|
1925 |
*** New function `read-regexp' uses the regexp history and some useful |
1926 |
regexp defaults (string at point, last Isearch/replacement regexp/string) |
1927 |
via M-n when reading a regexp in the minibuffer. |
1928 |
|
1929 |
*** minibuffer-local-must-match-filename-map is now named |
1930 |
minibuffer-local-filename-must-match-map. |
1931 |
|
1932 |
*** The `require-match' argument to `completing-read' accepts the new |
1933 |
values `confirm-only' and `confirm-after-completion'. |
1934 |
|
1935 |
** Search and replacement changes |
1936 |
|
1937 |
*** The regexp form \(?<num>:<regexp>\) specifies the group number explicitly. |
1938 |
|
1939 |
*** New function `match-substitute-replacement' returns the result of |
1940 |
`replace-match' without actually using it in the buffer. |
1941 |
|
1942 |
*** The new variable `replace-search-function' determines the function |
1943 |
to use for searching in query-replace and replace-string. The |
1944 |
function it specifies is called by `perform-replace' when its 4th |
1945 |
argument is nil. |
1946 |
|
1947 |
*** The new variable `replace-re-search-function' determines the |
1948 |
function to use for searching in `query-replace-regexp', |
1949 |
`replace-regexp', `query-replace-regexp-eval', and |
1950 |
`map-query-replace-regexp'. The function it specifies is called by |
1951 |
`perform-replace' when its 4th argument is non-nil. |
1952 |
|
1953 |
*** New keymap `search-map' bound to `M-s' provides global bindings |
1954 |
for search related commands. |
1955 |
|
1956 |
*** New keymap `multi-query-replace-map' contains additonal keys bound |
1957 |
to `automatic-all' and `exit-current' for multi-buffer interactive replacement. |
1958 |
|
1959 |
*** The variable `inhibit-changing-match-data', if non-nil, prevents |
1960 |
the search and match primitives from changing the match data. |
1961 |
|
1962 |
*** New functions `word-search-forward-lax' and `word-search-backward-lax'. |
1963 |
These are like `word-search-forward and `word-search-backward', except |
1964 |
that the end of the search string need not match a word boundary, |
1965 |
unless it ends in whitespace. |
1966 |
|
1967 |
** File handling changes |
1968 |
|
1969 |
*** set-file-modes is now interactive and can take the mode value in |
1970 |
symbolic notation thanks to auxiliary functions. |
1971 |
|
1972 |
*** file-local-variables-alist stores an alist of file-local |
1973 |
variables defined in the current buffer. |
1974 |
|
1975 |
** Face-remapping |
1976 |
|
1977 |
*** Each face can be remapped to a different face definition using the |
1978 |
variable `face-remapping-alist'. This is an alist that maps faces to |
1979 |
replacement definitions (which can be face names, lists of face names, |
1980 |
or attribute/value plists. If this variable is buffer-local, the |
1981 |
remapping occurs only in that buffer. |
1982 |
|
1983 |
*** text-scale-mode remaps the default face to a larger or smaller |
1984 |
size in the current buffer. This feature is used by the Buffer Face |
1985 |
menu and the new `C-x C-+', `C-x C--', and `C-x C-0' commands (see |
1986 |
Editing Changes, above). |
1987 |
|
1988 |
*** New functions: |
1989 |
|
1990 |
**** `face-remap-add-relative' adds a face remapping entry to the |
1991 |
current buffer. |
1992 |
|
1993 |
**** ``face-remap-remove-relative' removes a face remapping entry from |
1994 |
the current buffer. |
1995 |
|
1996 |
**** `face-remap-reset-base' restores a face to its global definition. |
1997 |
|
1998 |
**** `face-remap-set-base' sets the base remapping of a face. |
1999 |
|
2000 |
** Process changes |
2001 |
|
2002 |
*** The new function `start-file-process' is similar to `start-process', |
2003 |
but obeys file handlers. The file handler is chosen based on |
2004 |
`default-directory'. The functions `start-file-process-shell-command' |
2005 |
and `process-file-shell-command' are also new; they call internally |
2006 |
`start-file-process' and `process-file', respectively. |
2007 |
|
2008 |
*** The new function `process-lines' executes an external program and |
2009 |
returns its output as a list of lines. |
2010 |
|
2011 |
** Character code, representation, and charset changes. |
2012 |
|
2013 |
*** In multibyte buffers and strings, characters are represented by |
2014 |
UTF-8 byte sequences. The character code space is now 0x0..0x3FFFFF |
2015 |
with no gap; code points 0x0..0x10FFFF are Unicode characters of the |
2016 |
same code points, while code points 0x3FFF80..0x3FFFFF are raw 8-bit |
2017 |
bytes. |
2018 |
|
2019 |
*** Generic characters no longer exist. |
2020 |
|
2021 |
*** The concept of a charset has changed. A single character may |
2022 |
belong to multiple charsets (e.g. a-grave, U+00E0, belongs to charsets |
2023 |
unicode, iso-8859-1, iso-8859-3, etc). |
2024 |
|
2025 |
**** The dimension of a charset is now 1, 2, 3, or 4, and the size of |
2026 |
each dimension is no longer limited to 94 or 96. |
2027 |
|
2028 |
**** A dynamic charset priority list is used to infer the charset of |
2029 |
characters for display. |
2030 |
|
2031 |
*** The functions `split-char' and `make-char' now accept up to 4 |
2032 |
positional codes instead of just 2. |
2033 |
|
2034 |
*** The functions `encode-char' and `decode-char' now accept any character sets. |
2035 |
|
2036 |
*** The function `define-charset' now accepts a completely different |
2037 |
form of arguments (old-style arguments still work). |
2038 |
|
2039 |
*** The value of the function `char-charset' depends on the current |
2040 |
priorities of charsets. |
2041 |
|
2042 |
*** The function get-char-code-property now accepts many Unicode base |
2043 |
character properties. They are `name', `general-category', |
2044 |
`canonical-combining-class', `bidi-class', `decomposition', |
2045 |
`decimal-digit-value', `digit-value', `numeric-value', `mirrored', |
2046 |
`old-name', `iso-10646-comment', `uppercase', `lowercase', and |
2047 |
`titlecase'. |
2048 |
|
2049 |
*** The functions `modify-syntax-entry' and `modify-category-entry' now |
2050 |
accept a cons of characters as the first argument, and modify all |
2051 |
entries in that range of characters. |
2052 |
|
2053 |
*** Use of `translation-table-for-input' for character code unification |
2054 |
is now obsolete, since Emacs 23.1 and later uses Unicode as basis for |
2055 |
internal representation of characters. |
2056 |
|
2057 |
*** New functions: |
2058 |
|
2059 |
**** `characterp' returns t if and only if the argument is a character. |
2060 |
This replaces `char-valid-p', which is now obsolete. |
2061 |
|
2062 |
**** `max-char' returns the maximum character code (currently #x3FFFFF). |
2063 |
|
2064 |
**** `define-charset-alias' defines an alias of a charset. |
2065 |
|
2066 |
**** `set-charset-priority' sets priorities of charsets. |
2067 |
|
2068 |
**** `charset-priority-list' returns a prioritized list of charsets. |
2069 |
|
2070 |
**** `unibyte-string' makes a unibyte string from bytes. |
2071 |
|
2072 |
**** `define-char-code-property' defines a character code property. |
2073 |
|
2074 |
**** `char-code-property-description' returns the description string of |
2075 |
a character code property. |
2076 |
|
2077 |
*** New variables: |
2078 |
|
2079 |
**** `find-word-boundary-function-table' is a char-table of functions to |
2080 |
search for a word boundary. |
2081 |
|
2082 |
**** `char-script-table' is a char-table of script names. |
2083 |
|
2084 |
**** `char-width-table' is a char-table of character widths. |
2085 |
|
2086 |
**** `print-charset-text-property' controls how to handle `charset' text |
2087 |
property on printing a string. |
2088 |
|
2089 |
**** `printable-chars' is a char-table of printable characters. |
2090 |
|
2091 |
** Code conversion changes |
2092 |
|
2093 |
*** The new function `define-coding-system' should be used to define a |
2094 |
coding system instead of `make-coding-system' (which is now obsolete). |
2095 |
|
2096 |
*** The functions `encode-coding-region' and `decode-coding-region' |
2097 |
have an optional 4th argument to specify where the result of |
2098 |
conversion should go. |
2099 |
|
2100 |
*** The functions `encode-coding-string' and `decode-coding-string' |
2101 |
have an optional 4th argument specifying a buffer to store the result |
2102 |
of conversion. |
2103 |
|
2104 |
*** The new variable `inhibit-null-byte-detection' controls whether to |
2105 |
consider text with null bytes as binary data. By default, it is |
2106 |
`nil', and Emacs uses `no-conversion' for any text containing null |
2107 |
bytes. |
2108 |
|
2109 |
*** The functions `set-coding-priority' and `make-coding-system' are obsolete. |
2110 |
|
2111 |
*** New functions: |
2112 |
|
2113 |
**** `with-coding-priority' executes Lisp code using the specified |
2114 |
coding system priority order. |
2115 |
|
2116 |
**** `check-coding-systems-region' checks if the text in the region is |
2117 |
encodable by the specified coding systems. |
2118 |
|
2119 |
**** `coding-system-aliases' returns a list of aliases of a coding system. |
2120 |
|
2121 |
**** `coding-system-charset-list' returns a list of charsets supported |
2122 |
by a coding system. |
2123 |
|
2124 |
**** `coding-system-priority-list' returns a list of coding systems |
2125 |
ordered by their priorities. |
2126 |
|
2127 |
**** `set-coding-system-priority' sets priorities of coding systems. |
2128 |
|
2129 |
**** `coding-system-from-name' returns a coding system matching with |
2130 |
the argument name. |
2131 |
|
2132 |
|
2133 |
** There is a new input method, Robin, different from Quail. |
2134 |
It has three functionalities: |
2135 |
i) a simple input method (converts an ASCII sequence into a string). |
2136 |
ii) converts an existing buffer substring into another string |
2137 |
iii) reverse conversion (each character produced by a |
2138 |
robin rule can hold the original ASCII sequence as a char-code-property) |
2139 |
|
2140 |
*** The new function `robin-define-package' defines a Robin package. |
2141 |
|
2142 |
*** The new function `robin-modify-package' modifies an existing Robin package. |
2143 |
|
2144 |
*** The new function `robin-use-package' starts using a Robin package |
2145 |
as an input method. |
2146 |
|
2147 |
*** The new function `string-to-unibyte' is like `string-as-unibyte' |
2148 |
but signals an error if STRING contains a non-ASCII, non-eight-bit |
2149 |
character. |
2150 |
|
2151 |
** Changes related to the new font backend |
2152 |
|
2153 |
*** Which font backends to use can be specified by the X resource |
2154 |
"FontBackend". For instance, to use both X core fonts and Xft fonts: |
2155 |
|
2156 |
Emacs.FontBackend: x,xft |
2157 |
|
2158 |
If this resource is not set, Emacs tries to use all font backends |
2159 |
available on your graphic device. |
2160 |
|
2161 |
*** New frame parameter `font-backend' specifies a list of |
2162 |
font-backends supported by the frame's graphic device. On X, they are |
2163 |
currently `x' and `xft'. |
2164 |
|
2165 |
*** The function `set-fontset-font' now accepts a script name as the |
2166 |
second argument, and has an optional 5th argument to control how to |
2167 |
set the font. |
2168 |
|
2169 |
*** New functions: |
2170 |
|
2171 |
**** `fontp' checks if the argument is a font-spec or font-entity. |
2172 |
|
2173 |
**** `font-spec' creates a new font-spec object. |
2174 |
|
2175 |
**** `font-get' returns a font property value. |
2176 |
|
2177 |
**** `font-put' sets a font property value. |
2178 |
|
2179 |
**** `font-face-attributes' returns a plist of face attributes set by a font. |
2180 |
|
2181 |
**** `list-fonts' returns a list of font-entities matching a font spec. |
2182 |
|
2183 |
**** `find-font' returns the font-entity best matching the given font spec. |
2184 |
|
2185 |
**** `font-family-list' returns a list of family names of available fonts. |
2186 |
|
2187 |
**** `font-xlfd-name' returns an XLFD name of a given font spec, font |
2188 |
entity, or font object. |
2189 |
|
2190 |
**** `clear-font-cache' clears all font caches. |
2191 |
|
2192 |
** Changes related to multiple-terminal (multi-tty) support |
2193 |
|
2194 |
*** $TERM is now set to `dumb' for subprocesses. If you want to know the |
2195 |
$TERM inherited by Emacs you will have to look inside initial-environment. |
2196 |
|
2197 |
*** $DISPLAY is now dynamically inherited from the frame's `display'. |
2198 |
|
2199 |
*** The `window-system' variable is now frame-local. The new |
2200 |
`initial-window-system' variable contains the `window-system' value |
2201 |
for the first frame. `window-system' is also now a function that |
2202 |
takes a frame argument. |
2203 |
|
2204 |
*** The `keyboard-translate-table' variable and the terminal and |
2205 |
keyboard coding systems are now terminal-local. |
2206 |
|
2207 |
*** You can specify a terminal device (`tty' parameter) and a terminal |
2208 |
type (`tty-type' parameter) to `make-terminal-frame'. |
2209 |
|
2210 |
*** The function `make-frame-on-display' now works during a tty |
2211 |
session. |
2212 |
|
2213 |
*** A new `terminal' data type. |
2214 |
The functions `get-device-terminal', `terminal-parameters', |
2215 |
`terminal-parameter', `set-terminal-parameter' use this data type. |
2216 |
|
2217 |
*** Function key sequences are now mapped using `local-function-key-map', |
2218 |
a new variable. This inherits from the global variable function-key-map, |
2219 |
which is not used directly any more. |
2220 |
|
2221 |
*** New hooks: |
2222 |
|
2223 |
**** before-hack-local-variables-hook is called after setting new |
2224 |
variable file-local-variables-alist, and before actually applying the |
2225 |
file-local variables. |
2226 |
|
2227 |
**** `suspend-tty-functions' and `resume-tty-functions' are called |
2228 |
after a tty frame has been suspended or resumed, respectively. The |
2229 |
functions are called with the terminal id of the frame being |
2230 |
suspended/resumed as a parameter. |
2231 |
|
2232 |
**** The special hook `delete-terminal-functions' is called before |
2233 |
deleting a terminal. |
2234 |
|
2235 |
*** New functions: |
2236 |
|
2237 |
**** `delete-terminal' |
2238 |
|
2239 |
**** `suspend-tty' |
2240 |
|
2241 |
**** `resume-tty'. |
2242 |
|
2243 |
*** `initial-environment' holds the environment inherited from Emacs's parent. |
2244 |
|
2245 |
** Redisplay changes |
2246 |
|
2247 |
*** For underlined characters, the distance between the underline and |
2248 |
the baseline is controlled by a new variable, `underline-minimum-offset'. |
2249 |
|
2250 |
*** You can now pass the value of the `invisible' property to |
2251 |
invisible-p to check whether it would cause the text to be invisible. |
2252 |
This is convenient when checking invisibility of text with no buffer |
2253 |
position (e.g. in before/after-strings). |
2254 |
|
2255 |
*** `clear-image-cache' can be told to flush only images of a specific file. |
2256 |
|
2257 |
*** `vertical-motion' can now be given a goal column. |
2258 |
It now accepts a cons cell (COLS . LINES) in its first argument, which |
2259 |
says to stop, where possible, at a pixel x-position equal to COLS |
2260 |
times the default column width. |
2261 |
|
2262 |
*** redisplay-end-trigger-functions, set-window-redisplay-end-trigger, |
2263 |
and window-redisplay-end-trigger are obsolete. Use `jit-lock-register' |
2264 |
instead. |
2265 |
|
2266 |
*** The new variables `wrap-prefix' and `line-prefix' specify display |
2267 |
specs which are appended at display-time to every continuation line |
2268 |
and non-continuation line, respectively. In addition, Emacs |
2269 |
recognizes the `wrap-prefix' and `line-prefix' text or overlay |
2270 |
properties; these have the same effects as the variables of the same |
2271 |
name, but take precedence. |
2272 |
|
2273 |
** The Lisp interpreter now treats non-breaking space as whitespace. |
2274 |
|
2275 |
** Miscellaneous new functions |
2276 |
|
2277 |
*** `apply-partially' performs a "curried" application of a function. |
2278 |
|
2279 |
*** `buffer-swap-text' swaps text between two buffers. This can be |
2280 |
useful for modes such as tar-mode, archive-mode, RMAIL. |
2281 |
|
2282 |
*** `combine-and-quote-strings' produces a single string from a list of strings |
2283 |
sticking a separator string in between each pair, and quoting those |
2284 |
strings that include the separator as their substring. Useful for |
2285 |
consing shell command lines from the individual arguments. |
2286 |
|
2287 |
*** `custom-note-var-changed' tells Custom to treat the change in a |
2288 |
certain variable as having been made within Custom. |
2289 |
|
2290 |
*** `face-all-attributes' returns an alist describing all the basic |
2291 |
attributes of a given face. |
2292 |
|
2293 |
*** `format-seconds' converts a number of seconds into a readable |
2294 |
string of days, hours, etc. |
2295 |
|
2296 |
*** `image-refresh' refreshes all images associated with a given image |
2297 |
specification. |
2298 |
|
2299 |
*** `locate-user-emacs-file' helps packages to select the appropriate |
2300 |
place to save user-specific files. It defaults to `user-emacs-directory' |
2301 |
unless the file already exists at $HOME. |
2302 |
|
2303 |
*** `read-color' reads a color name using the minibuffer. |
2304 |
|
2305 |
*** `read-shell-command' does what its name says, with completion. It |
2306 |
uses the minibuffer-local-shell-command-map for that. |
2307 |
|
2308 |
*** `split-string-and-unquote' splits a string into a list of substrings |
2309 |
on the boundaries of a given delimiter, and unquotes the substrings that |
2310 |
are quoted. Useful for taking apart shell commands. |
2311 |
|
2312 |
*** The two new functions `looking-at-p' and `string-match-p' can do |
2313 |
the same matching as `looking-at' and `string-match' without changing |
2314 |
the match data. |
2315 |
|
2316 |
*** The two new functions `make-serial-process' and |
2317 |
`serial-process-configure' provide a Lisp interface to the new serial |
2318 |
port support (see Emacs changes, above). |
2319 |
|
2320 |
** Miscellaneous new variables |
2321 |
|
2322 |
*** `auto-save-include-big-deletions', if non-nil, means auto-save is |
2323 |
not turned off automatically after a big deletion. |
2324 |
|
2325 |
*** `read-circle', if nil, disables the reading of recursive Lisp |
2326 |
structures using the #N= and #N# syntax. |
2327 |
|
2328 |
*** `this-command-keys-shift-translated' is non-nil if the key |
2329 |
sequence invoking the current command was found by shift-translation. |
2330 |
|
2331 |
*** `window-point-insertion-type' determines the insertion-type of the |
2332 |
marker used for window-point. |
2333 |
|
2334 |
*** bookmark provides `bookmark-make-record-function' so special major |
2335 |
modes like Info can teach bookmark.el how to save and restore the |
2336 |
relevant data. |
2337 |
|
2338 |
*** `fill-forward-paragraph-function' specifies which function the |
2339 |
filling code should use to find paragraph boundaries. |
2340 |
|
2341 |
|
2342 |
* New Packages for Lisp Programming in Emacs 23.1 |
2343 |
|
2344 |
** The new package avl-tree.el deals with the AVL tree data structure. |
2345 |
|
2346 |
** The new package check-declare.el verifies the accuracy of |
2347 |
declare-function macros (see Lisp Changes, above). |
2348 |
|
2349 |
** find-cmd.el can build `find' commands using lisp syntax. |
2350 |
|
2351 |
** The package misearch.el has been added. It allows Isearch to search |
2352 |
through multiple buffers. A variable `multi-isearch-next-buffer-function' |
2353 |
defines the function to call to get the next buffer to search in the series |
2354 |
of multiple buffers. Top-level functions `multi-isearch-buffers', |
2355 |
`multi-isearch-buffers-regexp', `multi-isearch-files' and |
2356 |
`multi-isearch-files-regexp' accept a single argument that specifies |
2357 |
a list of buffers/files to search for a string/regexp. |
2358 |
|
2359 |
** The new major mode `special-mode' is intended as a parent for |
2360 |
major modes such as those that set the "'mode-class 'special" property. |
2361 |
|
2362 |
|
2363 |
---------------------------------------------------------------------- |
2364 |
This file is part of GNU Emacs. |
2365 |
|
2366 |
GNU Emacs is free software: you can redistribute it and/or modify |
2367 |
it under the terms of the GNU General Public License as published by |
2368 |
the Free Software Foundation, either version 3 of the License, or |
2369 |
(at your option) any later version. |
2370 |
|
2371 |
GNU Emacs is distributed in the hope that it will be useful, |
2372 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
2373 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2374 |
GNU General Public License for more details. |
2375 |
|
2376 |
You should have received a copy of the GNU General Public License |
2377 |
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
2378 |
|
2379 |
|
2380 |
Local variables: |
2381 |
mode: outline |
2382 |
paragraph-separate: "[ ]*$" |
2383 |
end: |
2384 |
|
2385 |
arch-tag: e759449d-88b3-4de4-9900-3a6c3dfa23e2 |