Appendix E Emacs 21 Antinews
For those users who live backwards in time, here is information about
downgrading to Emacs version 21.4. We hope you will enjoy the greater
simplicity that results from the absence of many Emacs 22.0.50
- The buffer position and line number are now displayed at the end of
the mode line, where they can be more easily seen.
- The mode line of the selected window is no longer displayed with a
special face. All mode lines are created equal. Meanwhile, you can
use the variable
mode-line-inverse-video to control whether
mode lines are highlighted at all—
nil means don't highlight
- Clicking on a link with the left mouse button (mouse-1) will
always set point at the position clicked, instead of following the
link. If you want to follow the link, use the middle mouse button
- Emacs is tired of X droppings. If you drop a file or a piece of text
onto an Emacs window, nothing will happen.
- On an xterm, Emacs provides a more convincing simulation of a text
terminal by not responding to mouse-clicks on the mode-line,
header-line, or display margin.
- For simplicity, windows always have fringes. We wouldn't want to
in-fringe anyone's windows. Likewise, horizontal scrolling always
works in the same automatic way.
- The horizontal-bar cursor shape has been removed.
- If command line arguments are given, Emacs will not display a splash
screen, so that you can immediately get on with your editing. The
command-line option ‘--no-splash’ is therefore obsolete, and has
- The command line options ‘--color’, ‘--fullwidth’,
‘--fullheight’, ‘--fullscreen’, ‘--no-blinking-cursor’,
‘--no-desktop’, and ‘-Q’ have also been removed.
- The ‘--geometry’ option applies only to the initial frame, and
the ‘-f’ option will not read arguments for interactive
- We have standardized on one location for the user init file: the file
named .emacs in your home directory. Emacs will not look for
the init file in ~/.emacs.d/init.el. Similarly, don't try
putting .emacs_SHELL in ~/.emacs.d; Emacs won't find it.
- Emacs will not read ~/.abbrev_defs automatically. If you want
to load abbrev definitions from a file, you must always do so
- When you are logged in as root, all files now give you writable
buffers, reflecting the fact that you can write any files.
- The maximum size of buffers and integer variables has been halved. On
32-bit machines, the maximum buffer size is now 128 megabytes.
- An unquoted ‘$’ in a file name is now an error, if the following
name is not recognized as an environment variable. Thus,
the file name foo$bar would probably be an error. Meanwhile,
setenv command does not expand ‘$’ at all.
- Emacs will not query you if a command accumulates too much undo
information. If Emacs runs out of memory as a result, it will handle
this by crashing.
- Many commands have been removed from the menus or rearranged.
- The C-h (help) subcommands have been rearranged—especially
those that display specific files. Type C-h C-h to see a list
of these commands; that will show you what is different.
- The C-h v and C-h f commands no longer show a hyperlink to
the C source code, even if it is available. If you want to find the
source code, grep for it.
- The apropos commands will not accept a list of words to match, in
order to encourage users to be more specific. Also, the user option
apropos-sort-by-scores has been removed.
- The minibuffer prompt is now displayed using the default face.
The colon is enough to show you what part is the prompt.
- Minibuffer completion commands always complete the entire minibuffer
contents, just as if you had typed them at the end of the minibuffer,
no matter where point is actually located.
- The command
backward-kill-sexp is now bound to C-M-delete
and C-M-backspace. Be careful when using these key sequences!
It may shut down your X server, or reboot your operating system.
- Commands to set the mark at a place away from point, including
M-@, M-h, etc., don't do anything special when you repeat
them. In most cases, typing these commands multiple times is
equivalent to typing them once. M-h ignores numeric arguments.
- If you want to repeat a jump to a previous mark, you should supply the
prefix argument explicitly. So, instead of typing C-u C-SPC
C-SPC C-SPC, type C-u C-SPC C-u C-SPC C-u C-SPC.
- C-<SPC> C-<SPC> has no special meaning–it just sets the
mark twice. Neither does C-u C-x C-x, which simply exchanges
point and mark like C-x C-x.
- The function
sentence-end has been eliminated in favor of a
more straightforward approach: directly setting the variable
sentence-end. For example, to end each sentence with a single
(setq sentence-end "[.?!]\"')}]*\\($\\|[ \t]\\)[ \t\n]*")
- The variable
fill-nobreak-predicate is no longer customizable,
and it can only hold a single function.
- Nobreak spaces and hyphens are displayed just like normal characters,
and the user option
nobreak-char-display has been removed.
- C-w in an incremental search always grabs an entire word
into the search string. More precisely, it grabs text through
the next end of a word.
- Yanking now preserves all text properties that were in the killed
text. The variable
yank-excluded-properties has been removed.
- Occur mode, Info mode, and Comint-derived modes now control
fontification in their own way, and M-x font-lock-mode has
nothing to do with it. To control fontification in Info mode, use the
- The Grep package has been merged with Compilation mode. Many
grep-specific commands and user options have thus been eliminated.
Also, M-x grep never tries the GNU grep ‘-H’ option,
and instead silently appends /dev/null to the command line.
- In Dired's ! command, ‘*’ and ‘?’ now
cause substitution of the file names wherever they appear—not
only when they are surrounded by whitespace.
- When a file is managed with version control, the command C-x C-q
(whose general meaning is to make a buffer read-only or writable) now
does so by checking the file in or out. Checking the file out makes
the buffer writable; checking it in makes the buffer read-only.
You can still use C-x v v to do these operations if you wish;
its meaning is unchanged. If you want to control the buffer's
read-only flag without performing any version control operation,
use M-x toggle-read-only.
- SGML mode does not handle XML syntax, and does not have indentation
- Many Info mode commands have been removed. Incremental search in Info
searches only the current node.
etags features for customizing parsing using regexps
have been removed.
- The Emacs server now runs a small C program called emacsserver,
rather than trying to handle everything in Emacs Lisp. Now there can
only be one Emacs server running at a time. The
server-name user option have been eliminated.
- The emacsclient program no longer accepts the ‘--eval’ and
‘--display’ command line options.
- The command
quail-show-key, for showing how to input a
character, has been removed.
- The default value of
keyboard-coding-system is always
nil, regardless of your locale settings. If you want some
other value, set it yourself.
- Unicode support and unification between Latin-n character sets
have been removed. Cutting and pasting X selections does not support
“extended segments”, so there are certain coding systems it cannot
- The input methods for Emacs are included in a separate distribution
called “Leim”. To use this, you must extract the Leim tar file on
top of the Emacs distribution, into the same directory, before you
- The following input methods have been eliminated: belarusian,
bulgarian-bds, bulgarian-phonetic, chinese-sisheng, croatian, dutch,
georgian, latin-alt-postfix, latin-postfix, latin-prefix,
latvian-keyboard, lithuanian-numeric, lithuanian-keyboard,
malayalam-inscript, rfc1345, russian-computer, sgml, slovenian,
tamil-inscript ucs, ukrainian-computer, vietnamese-telex, and welsh.
- The following language environments have been eliminated: Belarusian,
Bulgarian, Chinese-EUC-TW, Croatian, French, Georgian, Italian,
Latin-6, Latin-7, Latvian, Lithuanian, Malayalam, Russian, Russian,
Slovenian, Swedish, Tajik, Tamil, UTF-8, Ukrainian, Ukrainian, Welsh,
code-pages library, which contained various 8-bit coding
systems, has been removed.
- The Kmacro package has been replaced with a simple and elegant
keyboard macro system. Use C-x ( to start a new keyboard macro,
C-x ) to end the macro, and C-x e to execute the last
- The Calc, CUA, GDB-UI, Ibuffer, Ido, Password, Printing, Reveal,
Ruler-mode, SES, Table, Tramp, and URL packages have been removed.
The Benchmark, Cfengine, Conf, Dns, Flymake, Python, Thumbs, and
Wdired modes have also been removed.
- The Emacs Lisp Reference Manual and the Introduction to Programming in
Emacs Lisp are now distributed separately, not in the Emacs
- On MS Windows, there is no longer any support for tooltips, images,
sound, different mouse pointer shapes, or pointing devices with more
than 3 buttons. If you want these features, consider switching to
another operating system. But even if you don't want these features,
you should still switch—for freedom's sake.
- Emacs will not use Unicode for clipboard operations on MS Windows.
- To keep up with decreasing computer memory capacity and disk space, many
other functions and files have been eliminated in Emacs 21.4.