-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNEWS.22
5607 lines (4103 loc) · 233 KB
/
NEWS.22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
GNU Emacs NEWS -- history of user-visible changes.
Copyright (C) 2001-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.
Please send Emacs bug reports to [email protected].
If possible, use M-x report-emacs-bug.
This file is about changes in Emacs version 22.
See files NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 for changes
in older Emacs versions.
You can narrow news to a specific version by calling `view-emacs-news'
with a prefix argument or by typing C-u C-h C-n.
* About external Lisp packages
When you upgrade to Emacs 22 from a previous version, some older
versions of external Lisp packages are known to behave badly.
So in general, it is recommended that you upgrade to the latest
versions of any external Lisp packages that you are using.
You should also be aware that many Lisp packages have been included
with Emacs 22 (see the extensive list below), and you should remove
any older versions of these packages to ensure that the Emacs 22
version is used. You can use M-x list-load-path-shadows to find such
older packages.
Some specific packages that are known to cause problems are given
below. Emacs tries to warn you about these through `bad-packages-alist'.
** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version.
** cua.el, cua-mode.el: remove old versions.
* Changes in Emacs 22.3
** Support for several obsolete platforms will be removed in the next
major version of Emacs: Apollo, Acorn, Alliant, Amdahl, Altos 3068,
Bull DPX/2, Bull SPS-7, AT&T UNIX 7300, AT&T 3b, Aviion Berkeley 4.1
to 4.3, Celerity, Clipper, Convergent S series, Convex, Cydra, DG/UX,
Dual, Elxsi, ESIX, Fujitsu F301, GEC 63, Gould, Honeywell XPS100,
i860, IBM ps/2 aix386, Harris CXUX, Harris Night Hawk 1200/3000,
Harris Power PC, HP 9000 series 200 or 300, HLH Orion, Hitachi
SR2001/SR2201, IBM PS/2, Integrated Solutions 386, Integrated
Solutions Optimum V, Iris, Irix < v6, ISC Unix, ISI 68000, Masscomp
5000, Megatest 68000, Motorola System V/88, ns16000, National
Semiconductor 32000, osf1 (s/osf*) Paragon i860, PFU A-series, Plexus,
Pyramid, RTU 3.0, RISCiX SCO 3.2, sh3el, Sinix, Stride, Sun 1-3, Sun
RoadRunner, Sequent Symmetry, Sony News, SunOS 4, System V rel 0 to 3,
Tadpole 68k machines, tahoe, Tandem Integrity S2, targon31, Tektronix,
TI Nu, NCR Tower 32, U-station, Ultrix, UMAX, UniPlus 5.2, Whitechapel
Computer Works MG1, Wicat, and Xenix.
*** Support for systems without alloca will be removed.
*** Support for Sun windows will be removed.
*** Support for VMS will be removed.
* Incompatible Editing Changes in Emacs 22.3
** The following input methods were removed in Emacs 22.2, but this was
not advertised: danish-alt-postfix, esperanto-alt-postfix,
finnish-alt-postfix, german-alt-postfix, icelandic-alt-postfix,
norwegian-alt-postfix, scandinavian-alt-postfix, spanish-alt-postfix,
and swedish-alt-postfix. Use the versions without "alt-", which are
identical.
* Installation Changes in Emacs 22.2
** Emacs is now licensed under the GNU GPL version 3 (or later).
** Support for GNU/kFreeBSD (GNU userland and FreeBSD kernel) was added.
** Deprecated machine types and operating systems
Certain machine types and operating systems have been deprecated. On
these systems, configure will print a warning and exit, and you must
edit the configure script for compilation to proceed. The deprecated
systems will not be supported at all in Emacs 23. We are not aware of
anyone running Emacs on these systems; if you are, please email
[email protected] to take it off the list of deprecated systems.
*** Deprecated machine types
pmax, hp9000s300, ibm370aix, ncr386, ews4800, mips-siemens, powerpcle,
and tandem-s2
*** Deprecated operating systems
bsd386, bsdos2-1, bsdos2, bsdos3, bsdos4, bsd4-1, bsd4-2, bsd4-3,
usg5-0, usg5-2-2, usg5-2, usg5-3, ultrix4-3, 386bsd, hpux, hpux8,
hpux9, hpux9shr, hpux10, hpux10-20, aix3-1, aix3-2-5, aix3-2, aix4-1,
nextstep, ux4800, uxpds, and uxpv
* Changes in Emacs 22.2
** `describe-project' is renamed to `describe-gnu-project'.
** `view-todo' is renamed to `view-emacs-todo'.
** `find-name-dired' now uses -iname rather than -name
for case-insensitive filesystems. The default behavior is determined
by the value of `read-file-name-completion-ignore-case'; if you don't
like that, customize the value of the new option `find-name-arg'.
** In Image mode, whenever the displayed image is wider and/or higher
than the window, the usual keys for moving the cursor cause the image
to be scrolled horizontally or vertically instead.
** Emacs can use stock icons in the tool bar when compiled with Gtk+.
However, this feature is disabled by default. To enable it, put
(setq icon-map-list '(x-gtk-stock-map))
in your .emacs or some other startup file. For more information, see
the documentation for the two variables icon-map-list and x-gtk-stock-map.
** Scrollbars follow the system theme on Windows XP and later.
Windows XP introduced themed scrollbars, but applications have to take
special steps to use them. Emacs now has the appropriate resources linked
in to make it use the scrollbars from the system theme.
** focus-follows-mouse defaults to nil on MS Windows.
Previously this variable was incorrectly documented as having no effect
on MS Windows, and the default was inappropriate for the majority of
Windows installations. Users of software which modifies the behavior of
Windows to cause focus to follow the mouse will now need to explicitly set
this variable.
** `bad-packages-alist' will warn about external packages that are known
to cause problems in this version of Emacs.
** The values of `dired-recursive-deletes' and `dired-recursive-copies'
have been changed to `top'. This means that the user is asked once,
before deleting/copying the indicated directory recursively.
** `browse-url-emacs' loads a URL into an Emacs buffer. Handy for *.el URLs.
** The command gdba has been removed as gdb works now for those cases where it
was needed. In text command mode, if you have problems before execution has
started, use M-x gud-gdb.
** desktop.el now detects conflicting uses of the desktop file.
When loading the desktop, desktop.el can now detect that the file is already
in use. The default behavior is to ask the user what to do, but you can
customize it with the new option `desktop-load-locked-desktop'. When saving,
desktop.el warns about attempts to overwrite a desktop file if it determines
that the desktop being saved is not an update of the one on disk.
** Compilation mode now correctly respects the value of
`compilation-scroll-output' between invocations. Previously, output
was mistakenly scrolled on compiles after the first. Customize
`compilation-scroll-output' if you want to retain the scrolling.
** `font-lock-comment-face' no longer differs from the default on
displays with fewer than 16 colors and dark background (e.g. older
xterms and the Linux console). On such displays, only the comment
delimiters will appear to be fontified (in the new face
`font-lock-comment-delimiter-face'). To restore the old appearance,
customize `font-lock-comment-face'. Another alternative is to use a
newer terminal emulator that supports more colors (256 is now common).
For example, for xterm compatible emulators that support 256 colors,
you can run emacs like this:
env TERM=xterm-256color emacs -nw
(This was new in Emacs 22.1, but was not described. In Emacs 22.1
this also happened for terminals with a light background, that is not
the case anymore).
* New Modes and Packages in Emacs 22.2
** bibtex-style-mode helps you write BibTeX's *.bst files.
** The new package css-mode.el provides a major mode for editing CSS files.
** The new package vera-mode.el provides a major mode for editing Vera files.
** The new package verilog-mode.el provides a major mode for editing Verilog files.
** The new package socks.el implements the SOCKS v5 protocol.
** VC
*** VC backends can provide completion of revision names.
*** VC backends can provide extra menu entries to the "Version Control" menu.
This can be used to add menu entries for backend specific functions.
*** VC has some support for Mercurial (Hg).
*** VC has some support for Monotone (Mtn).
*** VC has some support for Bazaar (Bzr).
*** VC has some support for Git.
* Incompatible Lisp Changes in Emacs 22.2
** shell.el no longer defines the aliases `dirtrack-toggle' and
`dirtrack-mode' for `shell-dirtrack-mode'. These names were removed
because they clash with commands provided by dirtrack.el. Use
`shell-dirtrack-mode' instead.
* Lisp Changes in Emacs 22.2.
** Frame-local variables are deprecated and are slated for removal.
They can easily be emulated. Rather than calling `make-variable-frame-local'
and accessing the variable value directly, explicitly check for a
frame-parameter, and if there is one, use its value in preference to
that of the variable. Note that buffer-local values should take
precedence over frame-local ones, so you may wish to check `local-variable-p'
first.
** The function invisible-p returns non-nil if the character
after a specified position is invisible.
** inhibit-modification-hooks is bound to t while running modification hooks.
As a happy consequence, after-change-functions and before-change-functions
are not bound to nil any more while running an (after|before)-change-function.
** New function `window-full-width-p' returns t if a window is as wide
as its frame.
** The new function `image-refresh' refreshes all images associated
with a given image specification.
** The new function `combine-and-quote-strings' concatenates a list of strings
using a specified separator. If a string contains double quotes, they
are escaped in the output.
** The new function `split-string-and-unquote' performs the inverse operation to
`combine-and-quote-strings', i.e. splits a single string into a list
of strings, undoing any quoting added by `combine-and-quote-strings'.
(For some separator/string combinations, the original strings cannot
be recovered.)
* Installation Changes in Emacs 22.1
** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
when you run configure. This requires Gtk+ 2.4 or newer. This port
provides a way to display multilingual text in menus (with some caveats).
** The Emacs Lisp Reference Manual is now part of the distribution.
The Emacs Lisp Reference Manual in Info format is built as part of the
Emacs build procedure and installed together with the Emacs User
Manual. A menu item was added to the menu bar to make it easily
accessible (Help->More Manuals->Emacs Lisp Reference).
** The Introduction to Programming in Emacs Lisp manual is now part of
the distribution.
This manual is now part of the standard distribution and is installed,
together with the Emacs User Manual, into the Info directory. A menu
item was added to the menu bar to make it easily accessible
(Help->More Manuals->Introduction to Emacs Lisp).
** Leim is now part of the Emacs distribution.
You no longer need to download a separate tarball in order to build
Emacs with Leim.
** Support for MacOS X was added.
See the files mac/README and mac/INSTALL for build instructions.
** Mac OS 9 port now uses the Carbon API by default. You can also
create a non-Carbon build by specifying `NonCarbon' as a target. See
the files mac/README and mac/INSTALL for build instructions.
** Support for a Cygwin build of Emacs was added.
** Support for GNU/Linux systems on X86-64 machines was added.
** Support for GNU/Linux systems on S390 machines was added.
** Support for GNU/Linux systems on Tensilica Xtensa machines was added.
** Support for FreeBSD/Alpha has been added.
** New translations of the Emacs Tutorial are available in the
following languages: Brazilian Portuguese, Bulgarian, Chinese (both
with simplified and traditional characters), French, Russian, and
Italian. Type `C-u C-h t' to choose one of them in case your language
setup doesn't automatically select the right one.
** New translations of the Emacs reference card are available in the
Brazilian Portuguese and Russian. The corresponding PostScript files
are also included.
** A French translation of the `Emacs Survival Guide' is available.
** Emacs now supports new configure options `--program-prefix',
`--program-suffix' and `--program-transform-name' that affect the names of
installed programs.
** By default, Emacs now uses a setgid helper program to update game
scores. The directory ${localstatedir}/games/emacs is the normal
place for game scores to be stored. You can control this with the
configure option `--with-game-dir'. The specific user that Emacs uses
to own the game scores is controlled by `--with-game-user'. If access
to a game user is not available, then scores will be stored separately
in each user's home directory.
** Emacs now includes support for loading image libraries on demand.
(Currently this feature is only used on MS Windows.) You can configure
the supported image types and their associated dynamic libraries by
setting the variable `image-library-alist'.
** Emacs can now be built without sound support.
** Emacs Lisp source files are compressed by default if `gzip' is available.
** All images used in Emacs have been consolidated in etc/images and subdirs.
See also the changes to `find-image', documented below.
** Emacs comes with a new set of icons.
These icons are displayed on the taskbar and/or titlebar when Emacs
runs in a graphical environment. Source files for these icons can be
found in etc/images/icons. (You can't change the icons displayed by
Emacs by changing these files directly. On X, the icon is compiled
into the Emacs executable; see gnu.h in the source tree. On MS
Windows, see nt/icons/emacs.ico.)
** The `emacsserver' program has been removed, replaced with Lisp code.
** The `yow' program has been removed.
Use the corresponding Emacs feature instead.
** The Emacs terminal emulation in term.el uses a different terminfo name.
The Emacs terminal emulation in term.el now uses "eterm-color" as its
terminfo name, since term.el now supports color.
** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the
contents of buffers from a core dump and save them to files easily, should
Emacs crash.
** Building with -DENABLE_CHECKING does not automatically build with union
types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
** When pure storage overflows while dumping, Emacs now prints how
much pure storage it will approximately need.
* Startup Changes in Emacs 22.1
** Init file changes
If the init file ~/.emacs does not exist, Emacs will try
~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file
~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh.
** Emacs can now be invoked in full-screen mode on a windowed display.
When Emacs is invoked on a window system, the new command-line options
`--fullwidth', `--fullheight', and `--fullscreen' produce a frame
whose width, height, or both width and height take up the entire
screen size. (For now, this does not work with some window managers.)
** Emacs now displays a splash screen by default even if command-line
arguments were given. The new command-line option --no-splash
disables the splash screen; see also the variable
`inhibit-splash-screen' (which is also aliased as
`inhibit-startup-message').
** New user option `inhibit-startup-buffer-menu'.
When loading many files, for instance with `emacs *', Emacs normally
displays a buffer menu. This option turns the buffer menu off.
** New command line option -nbc or --no-blinking-cursor disables
the blinking cursor on graphical terminals.
** The option --script FILE runs Emacs in batch mode and loads FILE.
It is useful for writing Emacs Lisp shell script files, because they
can start with this line:
#!/usr/bin/emacs --script
** The -f option, used from the command line to call a function,
now reads arguments for the function interactively if it is
an interactively callable function.
** The option --directory DIR now modifies `load-path' immediately.
Directories are added to the front of `load-path' in the order they
appear on the command line. For example, with this command line:
emacs -batch -L .. -L /tmp --eval "(require 'foo)"
Emacs looks for library `foo' in the parent directory, then in /tmp, then
in the other directories in `load-path'. (-L is short for --directory.)
** When you specify a frame size with --geometry, the size applies to
all frames you create. A position specified with --geometry only
affects the initial frame.
** Emacs built for MS-Windows now behaves like Emacs on X does,
with respect to its frame position: if you don't specify a position
(in your .emacs init file, in the Registry, or with the --geometry
command-line option), Emacs leaves the frame position to the Windows'
window manager.
** The command line option --no-windows has been changed to
--no-window-system. The old one still works, but is deprecated.
** If the environment variable DISPLAY specifies an unreachable X display,
Emacs will now startup as if invoked with the --no-window-system option.
** Emacs now reads the standard abbrevs file ~/.abbrev_defs
automatically at startup, if it exists. When Emacs offers to save
modified buffers, it saves the abbrevs too if they have changed. It
can do this either silently or asking for confirmation first,
according to the value of `save-abbrevs'.
** New command line option -Q or --quick.
This is like using -q --no-site-file, but in addition it also disables
the fancy startup screen.
** New command line option -D or --basic-display.
Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and
the blinking cursor.
** The default is now to use a bitmap as the icon.
The command-line options --icon-type, -i have been replaced with
options --no-bitmap-icon, -nbi to turn the bitmap icon off.
** If the environment variable EMAIL is defined, Emacs now uses its value
to compute the default value of `user-mail-address', in preference to
concatenation of `user-login-name' with the name of your host machine.
* Incompatible Editing Changes in Emacs 22.1
** You can now follow links by clicking Mouse-1 on the link.
See below for more details.
** When the undo information of the current command gets really large
(beyond the value of `undo-outer-limit'), Emacs discards it and warns
you about it.
** When Emacs prompts for file names, SPC no longer completes the file name.
This is so filenames with embedded spaces could be input without the
need to quote the space with a C-q. The underlying changes in the
keymaps that are active in the minibuffer are described below under
"New keymaps for typing file names".
If you want the old behavior back, add these two key bindings to your
~/.emacs init file:
(define-key minibuffer-local-filename-completion-map
" " 'minibuffer-complete-word)
(define-key minibuffer-local-must-match-filename-map
" " 'minibuffer-complete-word)
** The completion commands TAB, SPC and ? in the minibuffer apply only
to the text before point. If there is text in the buffer after point,
it remains unchanged.
** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special.
See below under "incremental search changes".
** M-g is now a prefix key.
M-g g and M-g M-g run goto-line.
M-g n and M-g M-n run next-error (like C-x `).
M-g p and M-g M-p run previous-error.
** C-u M-g M-g switches to the most recent previous buffer,
and goes to the specified line in that buffer.
When goto-line starts to execute, if there's a number in the buffer at
point then it acts as the default argument for the minibuffer.
** M-o now is the prefix key for setting text properties;
M-o M-o requests refontification.
** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer
a special case.
Since the default input is the current directory, this has the effect
of specifying the current directory. Normally that means to visit the
directory with Dired.
You can get the old behavior by typing C-x C-f M-n RET, which fetches
the actual file name into the minibuffer.
** In Dired's ! command (dired-do-shell-command), `*' and `?' now
control substitution of the file names only when they are surrounded
by whitespace. This means you can now use them as shell wildcards
too. If you want to use just plain `*' as a wildcard, type `*""'; the
doublequotes make no difference in the shell, but they prevent
special treatment in `dired-do-shell-command'.
** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
have been moved to C-h F, C-h K and C-h S.
** `apply-macro-to-region-lines' now operates on all lines that begin
in the region, rather than on all complete lines in the region.
** line-move-ignore-invisible now defaults to t.
** Adaptive filling misfeature removed.
It no longer treats `NNN.' or `(NNN)' as a prefix.
** The old bindings C-M-delete and C-M-backspace have been deleted,
since there are situations where one or the other will shut down
the operating system or your X server.
** The register compatibility key bindings (deprecated since Emacs 19)
have been removed:
C-x / point-to-register (Use: C-x r SPC)
C-x j jump-to-register (Use: C-x r j)
C-x x copy-to-register (Use: C-x r s)
C-x g insert-register (Use: C-x r i)
* Editing Changes in Emacs 22.1
** The max size of buffers and integers has been doubled.
On 32bit machines, it is now 256M (i.e. 268435455).
** !MEM FULL! at the start of the mode line indicates that Emacs
cannot get any more memory for Lisp data. This often means it could
crash soon if you do things that use more memory. On most systems,
killing buffers will get out of this state. If killing buffers does
not make !MEM FULL! disappear, you should save your work and start
a new Emacs.
** `undo-only' does an undo which does not redo any previous undo.
** Yanking text now discards certain text properties that can
be inconvenient when you did not expect them. The variable
`yank-excluded-properties' specifies which ones. Insertion
of register contents and rectangles also discards these properties.
** New command `kill-whole-line' kills an entire line at once.
By default, it is bound to C-S-<backspace>.
** M-SPC (just-one-space) when given a numeric argument N
converts whitespace around point to N spaces.
** You can now switch buffers in a cyclic order with C-x C-left
(previous-buffer) and C-x C-right (next-buffer). C-x left and
C-x right can be used as well. The functions keep a different buffer
cycle for each frame, using the frame-local buffer list.
** C-x 5 C-o displays a specified buffer in another frame
but does not switch to that frame. It's the multi-frame
analogue of C-x 4 C-o.
** `special-display-buffer-names' and `special-display-regexps' now
understand two new boolean pseudo-frame-parameters `same-frame' and
`same-window'.
** New commands to operate on pairs of open and close characters:
`insert-pair', `delete-pair', `raise-sexp'.
** M-x setenv now expands environment variable references.
Substrings of the form `$foo' and `${foo}' in the specified new value
now refer to the value of environment variable foo. To include a `$'
in the value, use `$$'.
** The default values of paragraph-start and indent-line-function have
been changed to reflect those used in Text mode rather than those used
in Paragraph-Indent Text mode.
** The default for the paper size (variable ps-paper-type) is taken
from the locale.
** Help command changes:
*** Changes in C-h bindings:
C-h e displays the *Messages* buffer.
C-h d runs apropos-documentation.
C-h r visits the Emacs Manual in Info.
C-h followed by a control character is used for displaying files
that do not change:
C-h C-f displays the FAQ.
C-h C-e displays the PROBLEMS file.
The info-search bindings on C-h C-f, C-h C-k and C-h C-i
have been moved to C-h F, C-h K and C-h S.
C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands.
- C-h c and C-h k report the actual command (after possible remapping)
run by the key sequence.
- C-h w and C-h f on a command which has been remapped now report the
command it is remapped to, and the keys which can be used to run
that command.
For example, if C-k is bound to kill-line, and kill-line is remapped
to new-kill-line, these commands now report:
- C-h c and C-h k C-k reports:
C-k runs the command new-kill-line
- C-h w and C-h f kill-line reports:
kill-line is remapped to new-kill-line which is on C-k, <deleteline>
- C-h w and C-h f new-kill-line reports:
new-kill-line is on C-k
*** The apropos commands now accept a list of words to match.
When more than one word is specified, at least two of those words must
be present for an item to match. Regular expression matching is still
available.
*** The new option `apropos-sort-by-scores' causes the matching items
to be sorted according to their score. The score for an item is a
number calculated to indicate how well the item matches the words or
regular expression that you entered to the apropos command. The best
match is listed first, and the calculated score is shown for each
matching item.
*** Help commands `describe-function' and `describe-key' now show function
arguments in lowercase italics on displays that support it. To change the
default, customize face `help-argument-name' or redefine the function
`help-default-arg-highlight'.
*** C-h v and C-h f commands now include a hyperlink to the C source for
variables and functions defined in C (if the C source is available).
*** Help mode now only makes hyperlinks for faces when the face name is
preceded or followed by the word `face'. It no longer makes
hyperlinks for variables without variable documentation, unless
preceded by one of the words `variable' or `option'. It now makes
hyperlinks to Info anchors (or nodes) if the anchor (or node) name is
enclosed in single quotes and preceded by `info anchor' or `Info
anchor' (in addition to earlier `info node' and `Info node'). In
addition, it now makes hyperlinks to URLs as well if the URL is
enclosed in single quotes and preceded by `URL'.
*** The new command `describe-char' (C-u C-x =) pops up a buffer with
description various information about a character, including its
encodings and syntax, its text properties, how to input, overlays, and
widgets at point. You can get more information about some of them, by
clicking on mouse-sensitive areas or moving there and pressing RET.
*** The command `list-text-properties-at' has been deleted because
C-u C-x = gives the same information and more.
*** New command `display-local-help' displays any local help at point
in the echo area. It is bound to `C-h .'. It normally displays the
same string that would be displayed on mouse-over using the
`help-echo' property, but, in certain cases, it can display a more
keyboard oriented alternative.
*** New user option `help-at-pt-display-when-idle' allows you to
automatically show the help provided by `display-local-help' on
point-over, after suitable idle time. The amount of idle time is
determined by the user option `help-at-pt-timer-delay' and defaults
to one second. This feature is turned off by default.
** Mark command changes:
*** A prefix argument is no longer required to repeat a jump to a
previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
to set the mark immediately after a jump.
*** Marking commands extend the region when invoked multiple times.
If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h
(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
extends each time, so you can mark the next two sexps with M-C-SPC
M-C-SPC, for example. This feature also works for
mark-end-of-sentence, if you bind that to a key. It also extends the
region when the mark is active in Transient Mark mode, regardless of
the last command. To start a new region with one of marking commands
in Transient Mark mode, you can deactivate the active region with C-g,
or set the new mark with C-SPC.
*** Some commands do something special in Transient Mark mode when the
mark is active--for instance, they limit their operation to the
region. Even if you don't normally use Transient Mark mode, you might
want to get this behavior from a particular command. There are two
ways you can enable Transient Mark mode and activate the mark, for one
command only.
One method is to type C-SPC C-SPC; this enables Transient Mark mode
and sets the mark at point. The other method is to type C-u C-x C-x.
This enables Transient Mark mode temporarily but does not alter the
mark or the region.
After these commands, Transient Mark mode remains enabled until you
deactivate the mark. That typically happens when you type a command
that alters the buffer, but you can also deactivate the mark by typing
C-g.
*** Movement commands `beginning-of-buffer', `end-of-buffer',
`beginning-of-defun', `end-of-defun' do not set the mark if the mark
is already active in Transient Mark mode.
*** M-h (mark-paragraph) now accepts a prefix arg.
With positive arg, M-h marks the current and the following paragraphs;
if the arg is negative, it marks the current and the preceding
paragraphs.
** Incremental Search changes:
*** M-% typed in isearch mode invokes `query-replace' or
`query-replace-regexp' (depending on search mode) with the current
search string used as the string to replace.
*** C-w in incremental search now grabs either a character or a word,
making the decision in a heuristic way. This new job is done by the
command `isearch-yank-word-or-char'. To restore the old behavior,
bind C-w to `isearch-yank-word' in `isearch-mode-map'.
*** C-y in incremental search now grabs the next line if point is already
at the end of a line.
*** C-M-w deletes and C-M-y grabs a character in isearch mode.
Another method to grab a character is to enter the minibuffer by `M-e'
and to type `C-f' at the end of the search string in the minibuffer.
*** Vertical scrolling is now possible within incremental search.
To enable this feature, customize the new user option
`isearch-allow-scroll'. User written commands which satisfy stringent
constraints can be marked as "scrolling commands". See the Emacs manual
for details.
*** Isearch no longer adds `isearch-resume' commands to the command
history by default. To enable this feature, customize the new
user option `isearch-resume-in-command-history'.
** Replace command changes:
*** When used interactively, the commands `query-replace-regexp' and
`replace-regexp' allow \,expr to be used in a replacement string,
where expr is an arbitrary Lisp expression evaluated at replacement
time. `\#' in a replacement string now refers to the count of
replacements already made by the replacement command. All regular
expression replacement commands now allow `\?' in the replacement
string to specify a position where the replacement string can be
edited for each replacement. `query-replace-regexp-eval' is now
deprecated since it offers no additional functionality.
*** query-replace uses isearch lazy highlighting when the new user option
`query-replace-lazy-highlight' is non-nil.
*** The current match in query-replace is highlighted in new face
`query-replace' which by default inherits from isearch face.
*** New user option `query-replace-skip-read-only': when non-nil,
`query-replace' and related functions simply ignore
a match if part of it has a read-only property.
** Local variables lists:
*** If the local variables list contains any variable-value pairs that
are not known to be safe, Emacs shows a prompt asking whether to apply
the local variables list as a whole. In earlier versions, a prompt
was only issued for variables explicitly marked as risky (for the
definition of risky variables, see `risky-local-variable-p').
At the prompt, you can choose to save the contents of this local
variables list to `safe-local-variable-values'. This new customizable
option is a list of variable-value pairs that are known to be safe.
Variables can also be marked as safe with the existing
`safe-local-variable' property (see `safe-local-variable-p').
However, risky variables will not be added to
`safe-local-variable-values' in this way.
*** The variable `enable-local-variables' controls how local variable
lists are handled. t, the default, specifies the standard querying
behavior. :safe means use only safe values, and ignore the rest.
:all means set all variables, whether or not they are safe.
nil means ignore them all. Anything else means always query.
*** The variable `safe-local-eval-forms' specifies a list of forms that
are ok to evaluate when they appear in an `eval' local variables
specification. Normally Emacs asks for confirmation before evaluating
such a form, but if the form appears in this list, no confirmation is
needed.
*** If a function has a non-nil `safe-local-eval-function' property,
that means it is ok to evaluate some calls to that function when it
appears in an `eval' local variables specification. If the property
is t, then any form calling that function with constant arguments is
ok. If the property is a function or list of functions, they are called
with the form as argument, and if any returns t, the form is ok to call.
If the form is not "ok to call", that means Emacs asks for
confirmation as before.
*** In processing a local variables list, Emacs strips the prefix and
suffix from every line before processing all the lines.
*** Text properties in local variables.
A file local variables list cannot specify a string with text
properties--any specified text properties are discarded.
** File operation changes:
*** Unquoted `$' in file names do not signal an error any more when
the corresponding environment variable does not exist.
Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
is only rarely needed.
*** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
Since the default input is the current directory, this has the effect
of specifying the current directory. Normally that means to visit the
directory with Dired.
*** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
against its file, so you can see what changes you would be saving.
*** Auto Compression mode is now enabled by default.
*** If the user visits a file larger than `large-file-warning-threshold',
Emacs asks for confirmation.
*** The commands copy-file, rename-file, make-symbolic-link and
add-name-to-file, when given a directory as the "new name" argument,
convert it to a file name by merging in the within-directory part of
the existing file's name. (This is the same convention that shell
commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET
/tmp RET copies ~/foo to /tmp/foo.
*** require-final-newline now has two new possible values:
`visit' means add a newline (as an undoable change) if it's needed
when visiting the file.
`visit-save' means add a newline (as an undoable change) if it's
needed when visiting the file, and also add a newline if it's needed
when saving the file.
*** The new option mode-require-final-newline controls how certain
major modes enable require-final-newline. Any major mode that's
designed for a kind of file that should normally end in a newline
sets require-final-newline based on mode-require-final-newline.
So you can customize mode-require-final-newline to control what these
modes do.
*** When you are root, and you visit a file whose modes specify
read-only, the Emacs buffer is now read-only too. Type C-x C-q if you
want to make the buffer writable. (As root, you can in fact alter the
file.)
*** find-file-read-only visits multiple files in read-only mode,
when the file name contains wildcard characters.
*** find-alternate-file replaces the current file with multiple files,
when the file name contains wildcard characters. It now asks if you
wish save your changes and not just offer to kill the buffer.
*** When used interactively, `format-write-file' now asks for confirmation
before overwriting an existing file, unless a prefix argument is
supplied. This behavior is analogous to `write-file'.
*** The variable `auto-save-file-name-transforms' now has a third element that
controls whether or not the function `make-auto-save-file-name' will
attempt to construct a unique auto-save name (e.g. for remote files).
*** The new option `write-region-inhibit-fsync' disables calls to fsync
in `write-region'. This can be useful on laptops to avoid spinning up
the hard drive upon each file save. Enabling this variable may result
in data loss, use with care.
** Minibuffer changes:
*** The completion commands TAB, SPC and ? in the minibuffer apply only
to the text before point. If there is text in the buffer after point,
it remains unchanged.
*** The new file-name-shadow-mode is turned ON by default, so that when
entering a file name, any prefix which Emacs will ignore is dimmed.
*** There's a new face `minibuffer-prompt'.
Emacs adds this face to the list of text properties stored in the
variable `minibuffer-prompt-properties', which is used to display the
prompt string.
*** Enhanced visual feedback in `*Completions*' buffer.
Completions lists use faces to highlight what all completions
have in common and where they begin to differ.
The common prefix shared by all possible completions uses the face
`completions-common-part', while the first character that isn't the
same uses the face `completions-first-difference'. By default,
`completions-common-part' inherits from `default', and
`completions-first-difference' inherits from `bold'. The idea of
`completions-common-part' is that you can use it to make the common
parts less visible than normal, so that the rest of the differing
parts is, by contrast, slightly highlighted.
Above fontification is always done when listing completions is
triggered at minibuffer. If you want to fontify completions whose
listing is triggered at the other normal buffer, you have to pass
the common prefix of completions to `display-completion-list' as
its second argument.
*** File-name completion can now ignore specified directories.
If an element of the list in `completion-ignored-extensions' ends in a
slash `/', it indicates a subdirectory that should be ignored when
completing file names. Elements of `completion-ignored-extensions'
which do not end in a slash are never considered when a completion
candidate is a directory.
*** New user option `history-delete-duplicates'.
If set to t when adding a new history element, all previous identical
elements are deleted from the history list.
** Redisplay changes:
*** The new face `mode-line-inactive' is used to display the mode line
of non-selected windows. The `mode-line' face is now used to display
the mode line of the currently selected window.
The new variable `mode-line-in-non-selected-windows' controls whether
the `mode-line-inactive' face is used.
*** The mode line position information now comes before the major mode.
When the file is maintained under version control, that information
appears between the position information and the major mode.
*** You can now customize the use of window fringes. To control this
for all frames, use M-x fringe-mode or the Show/Hide submenu of the
top-level Options menu, or customize the `fringe-mode' variable. To
control this for a specific frame, use the command M-x
set-fringe-style.
*** Angle icons in the fringes can indicate the buffer boundaries. In
addition, up and down arrow bitmaps in the fringe indicate which ways
the window can be scrolled.
This behavior is activated by setting the buffer-local variable
`indicate-buffer-boundaries' to a non-nil value. The default value of
this variable is found in `default-indicate-buffer-boundaries'.
If value is `left' or `right', both angle and arrow bitmaps are
displayed in the left or right fringe, resp.
The value can also be an alist which specifies the presence and
position of each bitmap individually.
For example, ((top . left) (t . right)) places the top angle bitmap
in left fringe, the bottom angle bitmap in right fringe, and both
arrow bitmaps in right fringe. To show just the angle bitmaps in the
left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)).
*** On window systems, lines which are exactly as wide as the window
(not counting the final newline character) are no longer broken into
two lines on the display (with just the newline on the second line).
Instead, the newline now "overflows" into the right fringe, and the
cursor will be displayed in the fringe when positioned on that newline.
The new user option 'overflow-newline-into-fringe' can be set to nil to
revert to the old behavior of continuing such lines.
*** A window can now have individual fringe and scroll-bar settings,
in addition to the individual display margin settings.
Such individual settings are now preserved when windows are split
horizontally or vertically, a saved window configuration is restored,
or when the frame is resized.
*** When a window has display margin areas, the fringes are now
displayed between the margins and the buffer's text area, rather than
outside those margins.
*** New face `escape-glyph' highlights control characters and escape glyphs.
*** Non-breaking space and hyphens are now displayed with a special
face, either nobreak-space or escape-glyph. You can turn this off or
specify a different mode by setting the variable `nobreak-char-display'.
*** The parameters of automatic hscrolling can now be customized.
The variable `hscroll-margin' determines how many columns away from
the window edge point is allowed to get before automatic hscrolling
will horizontally scroll the window. The default value is 5.
The variable `hscroll-step' determines how many columns automatic
hscrolling scrolls the window when point gets too close to the
window edge. If its value is zero, the default, Emacs scrolls the
window so as to center point. If its value is an integer, it says how
many columns to scroll. If the value is a floating-point number, it
gives the fraction of the window's width to scroll the window.
The variable `automatic-hscrolling' was renamed to
`auto-hscroll-mode'. The old name is still available as an alias.
*** Moving or scrolling through images (and other lines) taller than
the window now works sensibly, by automatically adjusting the window's
vscroll property.
*** Preemptive redisplay now adapts to current load and bandwidth.
To avoid preempting redisplay on fast computers, networks, and displays,
the arrival of new input is now performed at regular intervals during
redisplay. The new variable `redisplay-preemption-period' specifies
the period; the default is to check for input every 0.1 seconds.