Emacs 20 Antinews
*****************
For those users who live backwards in time, here is information about
downgrading to Emacs version 20. We hope you will enjoy the greater
simplicity that results from the absence of many Emacs 21 features.
* The display engine has been greatly simplified by eliminating
support for variable-size characters and other non-text display
features. This avoids the complexity of display layout in Emacs
21. To wit:
- Variable-size characters are not supported in Emacs 20. You
cannot use fonts which contain oversized characters, and
using italic fonts can result in illegible display. However,
text which uses variable-size fonts is unreadable anyway.
With all characters in a frame laid out on a regular grid,
each character having the same height and width, text is much
easier to read.
- Emacs does not display images, or play sounds. It just
displays text, as you would expect from a *text* editor.
- Specification of the font for a face now uses an XLFD font
name, for compatibility with other X applications. This
means that font attributes cannot be merged when combining
faces; however, experience shows that mergers are bad
economics. Face inheritance has also been removed, so no one
can accumulate "too much face."
- Several face appearance attributes, including 3D,
strike-through, and overline, have been eliminated.
- Emacs now provides its own "lean and mean" scroll bars
instead of using those from the X toolkit. Toggle buttons
and radio buttons in menus now look just like any other menu
item, which simplifies them, and prevents them from standing
out and distracting your attention from the other menu items.
- There are no toolbars and no tooltips; in particular, GUD
mode cannot display variable values in a tooltip when you
click on that variable's name. Instead, Emacs 20 provides a
direct interface to the debugger, so that you can type
appropriate debugger commands, such as `display foo' and
`print bar'. As these commands use explicit words, their
meaning is more self-evident.
- Colors are not available on text-only terminals. If you
_must_ have colors, but cannot afford to run X, you can now
use the MS-DOG version of Emacs inside a DOS emulator.
- The mode line is not mouse-sensitive, since it is meant only
to display information. Use keyboard commands to switch
between buffers, toggle read-only and modified status, switch
minor modes on and off, etc.
- The support for "wheeled" mice under X has been removed,
because of their slow scroll rate, and because you will find
fewer and fewer of these mice as you go back in time.
Instead Emacs 20 provides the `C-v' and `M-v' keys for
scrolling. (You can also use the scroll bar, but be advised
that it, too, may be absent in yet earlier Emacs versions.)
- Busy-cursor display is gone, as it was found to be too hard
to draw on displays whose resolution is getting lower and
lower. This means that you get the standard kind of cursor
blinking that your terminal provides.
- Some aspects of Emacs appearance, such as the colors of the
scroll bar and the menus, can only be controlled via X
resources. Since colors aren't supported except on X, it
doesn't make any sense to do this in any way but the X way.
For those users who aren't privy to X arcana, we've provided
good default colors that should make everybody happy.
- Emacs 20 adds new lines to the buffer when you move down from
the last line with `C-n' or a down-arrow.
- The variable `show-trailing-whitespace' has no special
meaning, so trailing whitespace on a line is now always
displayed correctly: as empty space. To see if a line ends
with spaces or tabs, type `C-e' on that line. Likewise,
empty lines at the end of the buffer are not marked in any
way; use `M->' to see where the end of the buffer is.
- The spacing between text lines on the display now always
follows the font design and the rules of your window manager.
This provides for predictable appearance of the displayed
text.
* Emacs 20 has simpler support for multi-lingual editing. While not
as radical a simplification as Emacs 19 will be, it goes a long
way toward eliminating some of the annoying features:
- Translations of the Emacs reference cards to other languages
are no longer part of the distribution, because in the past
we expect computer users to speak English.
- To avoid extra confusion, many language environments have been
eliminated. For example, `Polish' and `Celtic' (Latin-8)
environments are not supported. The Latin-9 environment is
gone, too, because you won't need the Euro sign in the past.
- Emacs 20 always asks you which coding system to use when
saving a buffer, unless it can use the same one that it used
to read the buffer. It does not try to see if the preferred
coding system is suitable.
- Commands which provide detailed information about character
sets and coding systems, such as `list-charset-chars',
`describe-character-set', and the `C-u C-x =' key-sequence,
no longer exist. The less said about non-ASCII characters,
the better.
- The terminal coding system cannot be set to something
CCL-based, so keyboards which produce `KOI8' and DOS/Windows
codepage codes cannot be supported directly. Instead, you
should use one of the input methods provided in the Leim
package.
* As you move back through time, some systems will become
unimportant or enter the vaporware phase, so Emacs 20 does not
support them:
- Emacs 20 cannot be built on GNU/Linux systems running on IA64
machines, and you cannot build a 64-bit Emacs on Solaris or
Irix even though there are still 64-bit versions of those
OSes.
- LynxOS is also not supported, and neither is the Macintosh,
though they still exist.
* The arrangement of menu bar items differs from most other GUI
programs. We think that uniformity of look-and-feel is boring,
and that Emacs' unique features require its unique menu-bar
configuration.
* You cannot save the options that you set from the `Options'
menu-bar menu; instead, you need to set all the options again each
time you start a new session. However, if you follow the
recommended practice and keep a single Emacs session running until
you log out, you won't have to set the options very often.
* Emacs 20 does not pop up a buffer with error messages when an
error is signaled during loading of the user's init file.
Instead, it simply announces the fact that an error happened. To
know where in the init file that was, insert `(message "foo")'
lines judiciously into the file and look for those messages in the
`*Messages*' buffer.
* Some commands no longer treat Transient Mark mode specially. For
example, `ispell' doesn't spell-check the region when Transient
Mark mode is in effect and the mark is active; instead, it checks
the current buffer. (Transient Mark mode is alien to the spirit
of Emacs, so we are planning to remove it altogether in an earlier
version.)
* `C-Down-Mouse-3' does not show what would be in the menu bar when
the menu bar is not displayed.
* For uniformity, the <delete> function key in Emacs 20 works
exactly like the <DEL> key, on both text-only terminals and window
systems--it always deletes backward. This eliminates the
inconsistency of Emacs 21, where the key labeled <delete> deletes
forward when you are using a window system, and backward on a
text-only terminals.
* The ability to place backup files in special subdirectories
(controlled by `backup-directory-alist') has been eliminated.
This makes finding your backup files much easier: they are always
in the same directory as the original files.
* Emacs no longer refuses to load Lisp files compiled by incompatible
versions of Emacs, which may contain invalid byte-code. Instead,
Emacs now dumps core when it encounters such byte-code. However,
this is a rare occurrence, and it won't happen at all when all
Emacs versions merge together, in the distant past.
* The `C-x 5 1' command has been eliminated. If you want to delete
all the frames but the current one, delete them one by one instead.
* CC Mode now enforces identical values for some customizable
options, such as indentation style, for better consistency. In
particular, if you select an indentation style for Java, the same
style is used for C and C++ buffers as well.
* Isearch does not highlight other possible matches; it shows only
the current match, to avoid distracting your attention. `Mouse-2'
in the echo area during incremental search now signals an error,
instead of inserting the current selection into the search string.
But you can accomplish more or less the same job by typing `M-y'.
* The ability to specify a port number when editing remote files with
`ange-ftp' was removed. Instead, Emacs 20 provides undocumented
features in the function `ange-ftp-normal-login' (`Use the source,
Luke!') to specify the port.
* Emacs 20 does not check for changing time stamps of remote files,
since the old FTP programs you will encounter in the past could
not provide the time stamp anyway. Windows-style FTP clients
which output the `^M' character at the end of each line get
special handling from `ange-ftp' in Emacs 20, with unexpected
results that should make your life more interesting.
* Many complicated display features, including highlighting of
mouse-sensitive text regions and popping up help strings for menu
items, don't work in the MS-DOS version. Spelling doesn't work on
MS-DOS, and Eshell doesn't exist, so there's no workable
shell-mode, either. This fits the spirit of MS-DOS, which
resembles a dumb character terminal.
* The `woman' package has been removed, so Emacs users on non-Posix
systems will need _a real man_ to read manual pages. (Users who
are not macho can read the Info documentation instead.)
* `recentf' has been removed, because we figure that you can remember
the names of the files you edit frequently. With decreasing disk
size, you should have fewer files anyway, so you won't notice the
absence of this feature.
* The `field' property does not exist in Emacs 20, so various
packages that run subsidiary programs in Emacs buffers cannot in
general distinguish which text was user input and which was output
from the subprocess. If you need to try to do this nonetheless,
Emacs 20 provides a variable `comint-prompt-regexp', which lets
you try to distinguish input by recognizing prompt strings.
* We have eliminated the special major modes for Delphi sources,
PostScript files, context diffs, and `TODO' files. Use Fundamental
Mode instead.
* Many additional packages that unnecessarily complicate your life in
Emacs 21 are absent in Emacs 20. You cannot browse C++ classes
with Ebrowse, access SQL data bases, access LDAP and other
directory servers, or mix shell commands and Lisp functions using
Eshell.
* To keep up with decreasing computer memory capacity and disk
space, many other functions and files have been eliminated in
Emacs 20.