(find_next_selectable): New function.
[emacs.git] / man / anti.texi
blob2373fcafb0733c8a57bdcff81d78ead7c003517b
1 @c This is part of the Emacs manual.
2 @c Copyright (C) 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
3 @c See file emacs.texi for copying conditions.
5 @node Antinews, Mac OS, X Resources, Top
6 @appendix Emacs 20 Antinews
8   For those users who live backwards in time, here is information about
9 downgrading to Emacs version 20.  We hope you will enjoy the greater
10 simplicity that results from the absence of many Emacs 21 features.
12 @itemize @bullet
13 @item
14 The display engine has been greatly simplified by eliminating support
15 for variable-size characters and other non-text display features.  This
16 avoids the complexity of display layout in Emacs 21.  To wit:
18 @itemize @minus
19 @item
20 Variable-size characters are not supported in Emacs 20.  You cannot use
21 fonts which contain oversized characters, and using italic fonts can
22 result in illegible display.  However, text which uses variable-size
23 fonts is unreadable anyway.  With all characters in a frame laid out on
24 a regular grid, each character having the same height and width, text is
25 much easier to read.
27 @item
28 Emacs does not display images, or play sounds.  It just displays text,
29 as you would expect from a @strong{text} editor.
31 @item
32 Specification of the font for a face now uses an XLFD font name, for
33 compatibility with other X applications.  This means that font
34 attributes cannot be merged when combining faces; however, experience
35 shows that mergers are bad economics.  Face inheritance has also been
36 removed, so no one can accumulate ``too much face.''
38 @item
39 Several face appearance attributes, including 3D, strike-through, and
40 overline, have been eliminated.
42 @item
43 Emacs now provides its own ``lean and mean'' scroll bars instead of using
44 those from the X toolkit.  Toggle buttons and radio buttons in menus now
45 look just like any other menu item, which simplifies them, and prevents
46 them from standing out and distracting your attention from the other
47 menu items.
49 @item
50 There are no toolbars and no tooltips; in particular, @acronym{GUD}
51 mode cannot display variable values in a tooltip when you click on
52 that variable's name.  Instead, Emacs 20 provides a direct interface to
53 the debugger, so that you can type appropriate debugger commands, such
54 as @kbd{display foo} and @kbd{print bar}.  As these commands use
55 explicit words, their meaning is more self-evident.
57 @item
58 Colors are not available on text-only terminals.  If you @emph{must}
59 have colors, but cannot afford to run X, you can now use the MS-DOG
60 version of Emacs inside a DOS emulator.
62 @item
63 The mode line is not mouse-sensitive, since it is meant only to
64 display information.  Use keyboard commands to switch between buffers,
65 toggle read-only and modified status, switch minor modes on and off,
66 etc.
68 @item
69 The support for ``wheeled'' mice under X has been removed, because
70 of their slow scroll rate, and because you will find fewer and fewer of
71 these mice as you go back in time.  Instead Emacs 20 provides the
72 @kbd{C-v} and @kbd{M-v} keys for scrolling.  (You can also use the
73 scroll bar, but be advised that it, too, may be absent in yet earlier
74 Emacs versions.)
76 @item
77 Busy-cursor display is gone, as it was found to be too hard to draw on
78 displays whose resolution is getting lower and lower.  This means that
79 you get the standard kind of cursor blinking that your terminal
80 provides.
82 @item
83 Some aspects of Emacs appearance, such as the colors of the scroll bar
84 and the menus, can only be controlled via X resources.  Since colors
85 aren't supported except on X, it doesn't make any sense to do this in
86 any way but the X way.  For those users who aren't privy to X arcana,
87 we've provided good default colors that should make everybody happy.
89 @item
90 Emacs 20 adds new lines to the buffer when you move down from the last
91 line with @kbd{C-n} or a down-arrow.
93 @item
94 The variable @code{show-trailing-whitespace} has no special meaning, so
95 trailing whitespace on a line is now always displayed correctly: as
96 empty space.  To see if a line ends with spaces or tabs, type @kbd{C-e}
97 on that line.  Likewise, empty lines at the end of the buffer are not
98 marked in any way; use @kbd{M->} to see where the end of the buffer is.
100 @item
101 The spacing between text lines on the display now always follows the
102 font design and the rules of your window manager.  This provides for
103 predictable appearance of the displayed text.
104 @end itemize
106 @item
107 Emacs 20 has simpler support for multi-lingual editing.  While not as
108 radical a simplification as Emacs 19 will be, it goes a long way toward
109 eliminating some of the annoying features:
111 @itemize @minus
112 @item
113 Translations of the Emacs reference cards to other languages are no
114 longer part of the distribution, because in the past we expect
115 computer users to speak English.
117 @item
118 To avoid extra confusion, many language environments have been
119 eliminated.  For example, @samp{Polish} and @samp{Celtic} (Latin-8)
120 environments are not supported.  The Latin-9 environment is gone,
121 too, because you won't need the Euro sign in the past.
123 @item
124 Emacs 20 always asks you which coding system to use when saving 
125 a buffer, unless it can use the same one that it used to read the buffer.
126 It does not try to see if the preferred coding system is suitable.
128 @item
129 Commands which provide detailed information about character sets and
130 coding systems, such as @code{list-charset-chars},
131 @code{describe-character-set}, and the @kbd{C-u C-x =} key-sequence,
132 no longer exist.  The less said about non-ASCII characters, the
133 better.
135 @item
136 The terminal coding system cannot be set to something CCL-based, so
137 keyboards which produce @code{KOI8} and DOS/Windows codepage codes
138 cannot be supported directly.  Instead, you should use one of the input
139 methods provided in the Leim package.
140 @end itemize
142 @item
143 As you move back through time, some systems will become unimportant or
144 enter the vaporware phase, so Emacs 20 does not support them:
146 @itemize @minus
147 @item
148 Emacs 20 cannot be built on GNU/Linux systems running on IA64 machines,
149 and you cannot build a 64-bit Emacs on Solaris or Irix even though there
150 are still 64-bit versions of those OSes.
152 @item
153 LynxOS is also not supported, and neither is the Macintosh, though they
154 still exist.
155 @end itemize
157 @item
158 The arrangement of menu bar items differs from most other @acronym{GUI}
159 programs.  We think that uniformity of look-and-feel is boring, and that
160 Emacs' unique features require its unique menu-bar configuration.
162 @item
163 You cannot save the options that you set from the @samp{Options}
164 menu-bar menu; instead, you need to set all the options again each time
165 you start a new session.  However, if you follow the recommended
166 practice and keep a single Emacs session running until you log out,
167 you won't have to set the options very often.
169 @item
170 Emacs 20 does not pop up a buffer with error messages when an error is
171 signaled during loading of the user's init file.  Instead, it simply
172 announces the fact that an error happened.  To know where in the init
173 file that was, insert @code{(message "foo")} lines judiciously into the
174 file and look for those messages in the @samp{*Messages*} buffer.
176 @item
177 Some commands no longer treat Transient Mark mode specially.  For
178 example, @code{ispell} doesn't spell-check the region when Transient
179 Mark mode is in effect and the mark is active; instead, it checks the
180 current buffer.  (Transient Mark mode is alien to the spirit of Emacs,
181 so we are planning to remove it altogether in an earlier version.)
183 @item
184 @kbd{C-Down-Mouse-3} does not show what would be in the menu bar
185 when the menu bar is not displayed.
187 @item
188 For uniformity, the @key{delete} function key in Emacs 20 works exactly like
189 the @key{DEL} key, on both text-only terminals and window systems---it
190 always deletes backward.  This eliminates the inconsistency of Emacs 21,
191 where the key labeled @key{delete} deletes forward when you are using a
192 window system, and backward on a text-only terminals.
194 @item
195 The ability to place backup files in special subdirectories (controlled
196 by @code{backup-directory-alist}) has been eliminated.  This makes
197 finding your backup files much easier: they are always in the same
198 directory as the original files.
200 @item
201 Emacs no longer refuses to load Lisp files compiled by incompatible
202 versions of Emacs, which may contain invalid byte-code.  Instead,
203 Emacs now dumps core when it encounters such byte-code.  However, this
204 is a rare occurrence, and it won't happen at all when all Emacs
205 versions merge together, in the distant past.
207 @item
208 The @kbd{C-x 5 1} command has been eliminated.  If you want to delete
209 all the frames but the current one, delete them one by one instead.
211 @item
212 CC Mode now enforces identical values for some customizable options,
213 such as indentation style, for better consistency.  In particular, if
214 you select an indentation style for Java, the same style is used
215 for C and C@t{++} buffers as well.
217 @item
218 Isearch does not highlight other possible matches; it shows only the
219 current match, to avoid distracting your attention.  @kbd{Mouse-2} in
220 the echo area during incremental search now signals an error, instead of
221 inserting the current selection into the search string.  But you can
222 accomplish more or less the same job by typing @kbd{M-y}.
224 @item
225 The ability to specify a port number when editing remote files with
226 @code{ange-ftp} was removed.  Instead, Emacs 20 provides undocumented
227 features in the function @code{ange-ftp-normal-login} (@cite{Use the
228 source, Luke!}) to specify the port.
230 @item
231 Emacs 20 does not check for changing time stamps of remote files, since
232 the old FTP programs you will encounter in the past could not provide
233 the time stamp anyway.  Windows-style FTP clients which output the
234 @samp{^M} character at the end of each line get special handling from
235 @code{ange-ftp} in Emacs 20, with unexpected results that should make
236 your life more interesting.
238 @item
239 Many complicated display features, including highlighting of
240 mouse-sensitive text regions and popping up help strings for menu items,
241 don't work in the MS-DOS version.  Spelling doesn't work on MS-DOS,
242 and Eshell doesn't exist, so there's no workable shell-mode, either.
243 This fits the spirit of MS-DOS, which resembles a dumb character
244 terminal.
246 @item
247 The @code{woman} package has been removed, so Emacs users on non-Posix
248 systems will need @emph{a real man} to read manual pages.  (Users who
249 are not macho can read the Info documentation instead.)
251 @item
252 @code{recentf} has been removed, because we figure that you can remember
253 the names of the files you edit frequently.  With decreasing disk size,
254 you should have fewer files anyway, so you won't notice the absence of
255 this feature.
257 @item
258 The @code{field} property does not exist in Emacs 20, so various
259 packages that run subsidiary programs in Emacs buffers cannot in general
260 distinguish which text was user input and which was output from the
261 subprocess.  If you need to try to do this nonetheless, Emacs 20
262 provides a variable @code{comint-prompt-regexp}, which lets you try to
263 distinguish input by recognizing prompt strings.
265 @item
266 We have eliminated the special major modes for Delphi sources,
267 PostScript files, context diffs, and @file{TODO} files.  Use Fundamental
268 Mode instead.
270 @item
271 Many additional packages that unnecessarily complicate your life in
272 Emacs 21 are absent in Emacs 20.  You cannot browse C@t{++} classes with
273 Ebrowse, access @acronym{SQL} data bases, access @acronym{LDAP} and
274 other directory servers, or mix shell commands and Lisp functions using
275 Eshell.
277 @item
278 To keep up with decreasing computer memory capacity and disk space, many
279 other functions and files have been eliminated in Emacs 20.
280 @end itemize