(defvar_display): Declare this function.
[emacs.git] / etc / FAQ
blob3a62145f8d983bbc0494cc8bfc0ef3861894bb9c
1                        GNU Emacs FAQ: Introduction
3 [To find what has changed, see the "Changes" posting.]
5 [The FAQ post date slipped big-time this time.  Now that school is over
6  with and I can get on with the rest of my life, posting should become a
7  lot more regular. - sbyrnes]
9 This is the introduction to a list of frequently asked questions (FAQ) about
10 GNU Emacs with answers.  This article contains a listing of the questions;
11 subsequent articles contain the questions and answers.
13 The FAQ list is posted to reduce the noise level in the `gnu.emacs.help'
14 newsgroup (which is also the `help-gnu-emacs' mailing list) which results from
15 the repetition of frequently asked questions, wrong answers to these questions,
16 corrections to the wrong answers, corrections to the corrections, debate, name
17 calling, etc.  Also, it serves as a repository of the canonical "best" answers
18 to these questions.  However, if you know a better answer or even a slight
19 change that improves an answer, please tell us!
21 If you know the answer of a question is in the FAQ list, please reply to the
22 question by e-mail instead of posting.  Help reduce noise!
24 The FAQ list is crossposted to `comp.emacs' because some sites do not receive
25 the `gnu.*' newsgroups.  The FAQ list is also crossposted to `news.answers'.
27 Please suggest new questions, answers, wording changes, deletions, etc.  The
28 most helpful form for suggestions is a context diff (ie., the output of `diff
29 -c').  Include `FAQ' in the subject of messages sent to us about the FAQ list.
31 Please do not send questions to us just because you do not want to disturb a
32 lot of people and you think we would know the answer.  We do not have time to
33 answer questions individually.  :-(
35 Full instructions for getting the latest FAQ are in question 22.  Also
36 see the `Introduction to news.answers' posting in the `news.answers'
37 newsgroup, or send e-mail to `mail-server@rtfm.mit.edu' with `help' on
38 a body line, or use FTP, WAIS, or Prospero to rtfm.mit.edu.  [Note: in
39 Sep 1994, this seems no longer to be true--rms.]
41 These ideas have already been suggested, but we have not had time to
42 implement them:
44   * A Texinfo version.
45   * Marking questions in the table of contents that have been changed
46     recently.
48 -- 
49 Steven Byrnes <sbyrnes@rice.edu> (and Joe Wells <jbw@cs.bu.edu>)
51 E-mail lpf@uunet.uu.net for details about the League for Programming Freedom.
53 ----------------------------------------------------------------------
55                      GNU Emacs FAQ: Table of Contents
57 Notation Used in FAQ
59 1:   What do these mean: C-h, M-C-a, RET, "ESC a", etc.?
60 2:   What does "M-x command" mean?
61 3:   How do I read topic XXX in the on-line manual?
62 4:   What do these mean: etc/SERVICE, src/config.h, lisp/default.el?
63 5:   What are FSF, LPF, OSF, GNU, RMS, FTP, and GPL?
65 General Questions
67 6:   What is the LPF and why should I join it?
68 7:   What is the real legal meaning of the GNU copyleft?
69 8:   What are appropriate messages for gnu.emacs.help, gnu.emacs.bug,
70      comp.emacs, etc.?
71 9:   Where can I get old postings to gnu.emacs.help and other GNU groups?
72 10:  Where should I report bugs and other problems with GNU Emacs?
73 11:  How do I unsubscribe to this mailing list?
74 12:  What is the current address of the FSF?
76 On-line Help, Printed Manuals, Other Sources of Help
78 13:  I'm just starting GNU Emacs; how do I do basic editing?
79 14:  How do I find out how to do something in GNU Emacs?
80 15:  How do I get a printed copy of the GNU Emacs manual?
81 16:  Where can I get documentation on GNU Emacs Lisp?
82 17:  How do I install a piece of Texinfo documentation?
83 18:  How do I print a Texinfo file?
84 19:  Can I view Info files without using GNU Emacs?
85 20:  What informational files are available for GNU Emacs?
86 21:  Where can I get help in installing GNU Emacs?
87 22:  Where can I get the latest version of this document (the FAQ list)?
89 Status of Emacs
91 23:  Where does the name "Emacs" come from?
92 24:  What is the latest version of GNU Emacs?
93 25:  When will GNU Emacs 19 be available?
94 26:  What is different about GNU Emacs 19?
95 27:  What variants of GNU Emacs exist?
97 Common Things People Want To Do
99 28:  How do I set up a .emacs file properly?
100 29:  How do I debug a .emacs file?
101 30:  How do I make Emacs display the current line (or column) number?
102 31:  How do I turn on Abbrevs by default just in mode XXX?
103 32:  How do I turn on Auto-Fill mode by default?
104 33:  How do I make Emacs use a certain major mode for certain files?
105 34:  How do I search for, delete, or replace unprintable (8-bit or control)
106      characters?
107 35:  How can I highlight a region of text in Emacs?
108 36:  How do I control Emacs's case-sensitivity when searching/replacing?
109 37:  How do I make Emacs wrap words for me?
110 38:  Where can I get a better spelling checker for Emacs?
111 39:  How can I spell-check TeX or *roff documents?
112 40:  How do I change load-path?
113 41:  How do I use an already running Emacs from another window?
114 42:  How do I make Emacs recognize my compiler's funny error messages?
115 43:  How do I indent switch statements like this?
116 44:  How can I make Emacs automatically scroll horizontally?
117 45:  How do I make Emacs "typeover" or "overwrite" instead of inserting?
118 46:  How do I stop Emacs from beeping on a terminal?
119 47:  How do I turn down the bell volume in Emacs running under X Windows?
120 48:  How do I tell Emacs to automatically indent a new line to the
121      indentation of the previous line?
122 49:  How do I show which parenthesis matches the one I'm looking at?
123 50:  In C mode, can I show just the lines that will be left after #ifdef
124      commands are handled by the compiler?
125 51:  Is there an equivalent to the `.' (dot) command of vi?
126 52:  What are the valid X resource settings (ie., stuff in .Xdefaults)?
127 53:  How do I execute a piece of Emacs Lisp code?
128 54:  How do I change Emacs's idea of the tab character's length?
129 55:  How do I insert `>' at the beginning of every line?
130 56:  How do I insert `_^H' before each character in a paragraph to get an
131      underlined paragraph?
132 57:  How do I repeat a command as many times as possible?
133 58:  How do I make Emacs behave like this: when I go up or down, the cursor
134      should stay in the same column even if the line is too short?
135 59:  How do I tell Emacs to iconify itself?
136 60:  How do I use regexps (regular expressions) in Emacs?
137 61:  How do I perform a replace operation across more than one file?
138 62:  Where is the documentation for `etags'?
140 Bugs/Problems
142 63:  Does Emacs have problems with files larger than 8 megabytes?
143 64:  Why can't Emacs find files in current directory on startup?
144 65:  How do I get rid of the ^M junk in my Shell buffer?
145 66:  Why do I get `Process shell exited abnormally with code 1'?
146 67:  Why can't I cut from Emacs and paste in other X programs?
147 68:  Where is the termcap/terminfo entry for terminal type `emacs'?
148 69:  Why does Emacs spontaneously start displaying `I-search:' and beeping?
149 70:  Why can't Emacs talk to certain hosts (or certain hostnames)?
150 71:  Why does Emacs say `Error in init file'?
151 72:  Why does Emacs ignore my X resources (my .Xdefaults file)?
152 73:  Why does Emacs take 20 seconds to visit a file?
153 74:  How do I edit a file with a `$' in its name?
154 75:  Why does Shell mode lose track of the shell's current directory?
155 76:  Why doesn't my change to load-path work?
156 77:  Why does the cursor always go to the wrong column when I move up or
157      down one line?
158 78:  Why does Emacs hang with message `Unknown XMenu error' with X11R4?
159 79:  Why doesn't display-time show the load average in the mode line
160      anymore?
161 80:  Why does ispell sometimes ignore the local dictionary?
162 81:  Why does Ispell treat each line as a single word?
163 82:  Are there any security risks in GNU Emacs?
165 Difficulties Building/Installing/Porting Emacs
167 83:  What should I do if I have trouble building Emacs?
168 84:  How do I stop Emacs from failing when the executable is stripped?
169 85:  Why does linking Emacs with -lX11 fail?
170 86:  Why does Emacs 18.55 say `Fatal error (6).Abort' under SunOS 4.1?
172 Finding/Getting Emacs and Related Packages
174 87:  Where can I get GNU Emacs on the net (or by snail mail)?
175 88:  How do I find a GNU Emacs Lisp package that does XXX?
176 89:  Where can I get GNU Emacs Lisp packages that don't come with Emacs?
177 90:  How do I submit code to the Emacs Lisp Archive?
178 91:  Where can I get other up-to-date GNU stuff?
179 92:  Where can I get an Emacs with better mouse and X window support?
180 93:  What is the difference between GNU Emacs and Epoch?
181 94:  What is the difference between GNU Emacs and Lucid GNU Emacs?
182 95:  Where can I get the "unofficial HP GNU Emacs"?
183 96:  Where can I get Emacs for my PC running MS-DOS?
184 97:  Where can I get Emacs for my PC running Windows?
185 98:  Where can I get Emacs for my PC running OS/2?
186 99:  Where can I get Emacs for my Atari ST?
187 100: Where can I get Emacs for my Amiga?
188 101: Where can I get Emacs for my Apple computer?
189 102: Where can I get Emacs with NeWS support?
190 103: Where do I get Emacs that runs on VMS under DECwindows?
191 104: Where can I get modes for Lex, Yacc/Bison, Bourne Shell, Csh, C++,
192      Objective C, Pascal, Awk?
193 105: What is the IP address of XXX.YYY.ZZZ?
195 Major Emacs Lisp Packages, Emacs Extensions, and Related Programs
197 106: VM (View Mail) -- another mail reader within Emacs
198 107: Supercite -- mail and news citation package within Emacs
199 108: GNUS -- news reader within Emacs
200 109: Calc -- poor man's Mathematica within Emacs
201 110: Calendar/Diary -- calendar manager within Emacs
202 111: Ange-FTP -- transparent FTP access for Emacs's file access routines
203 112: VIP -- vi emulation for Emacs
204 113: Dired -- better directory editor for Emacs
205 114: AUC TeX -- enhanced LaTeX mode with debugging facilities
206 115: Hyperbole -- extensible hypertext management system within Emacs
207 116: Byte Compiler -- enhanced version of Emacs's byte compiler
208 117: comint -- hugely enhanced shell mode and other derived modes
209 118: BBDB -- personal info rolodex integrated with mail/news readers
210 119: Ispell -- spell checker in C with interface for Emacs
211 120: Epoch -- enhanced GNU Emacs with better X interface
212 121: Lucid GNU Emacs -- alternative Emacs 19 with better X interface
213 122: Demacs -- GNU Emacs altered to run on MS-DOS on 386/486 machines
214 123: Freemacs -- a small Emacs for MS-DOS
215 124: Patch -- program to apply "diffs" for updating files
217 Changing Key Bindings and Handling Key Binding Problems
219 125: How do I bind keys (including function keys) to commands?
220 126: Why does Emacs say `Key sequence XXX uses invalid prefix characters'?
221 127: Why doesn't this [terminal or window-system setup] code work in my
222      .emacs file, but it works just fine after Emacs starts up?
223 128: How do I use function keys under X Windows?
224 129: How do I tell what characters my function or arrow keys emit?
225 130: How do I set the X key "translations" for Emacs?
226 131: How do I handle C-s and C-q being used for flow control?
227 132: How do I use commands bound to C-s and C-q (or any key) if these keys
228      are filtered out?
229 133: Why does the `BackSpace' key invoke help?
230 134: Why doesn't Emacs look at the stty settings for Backspace vs. Delete?
231 135: Why don't the arrow keys work?
232 136: How do I "swap" two keys?
233 137: How do I produce C-XXX with my keyboard?
234 138: What if I don't have a Meta key?
235 139: What if I don't have an Escape key?
236 140: How do I type DEL on PC terminal emulators?
237 141: Can I make my `Compose Character' key behave like a Meta key?
238 142: How do I bind a combination of modifier key and function key?
239 143: Why doesn't my Meta key work in an xterm window?
240 144: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0?
241 145: Where can I get key bindings to make Emacs emulate WordStar?
242 146: Where can I get an XEDIT emulator for Emacs?
244 Using Emacs with Alternate Character Sets
246 147: How do I make Emacs display 8-bit characters?
247 148: How do I input 8-bit characters?
248 149: Where can I get an Emacs that can handle kanji characters?
249 150: Where can I get an Emacs that can handle Chinese?
250 151: Where is an Emacs that can handle Semitic (right-to-left) alphabets?
252 Mail and News
254 152: How do I change the included text prefix in mail/news followups?
255 153: How do I save a copy of outgoing mail?
256 154: Why doesn't Emacs expand my aliases when sending mail?
257 155: Why does RMAIL think all my saved messages are one big message?
258 156: How can I sort the messages in my RMAIL folder?
259 157: Why does RMAIL need to write to /usr/spool/mail?
260 158: How do I recover my mail files after RMAIL munges their format?
261 159: How do I make Emacs automatically start my mail/news reader?
262 160: How do I read news under Emacs?
263 161: Why does `rnews' say "No News is good news" when there is news?
264 162: Why doesn't GNUS work anymore via NNTP?
265 163: How do I view text with embedded underlining (eg., ClariNews)?
266 164: When I try to post a long article in GNUS (about 10K or longer), I get
267      the error, "Writing to process: no more processes, nntpd"
268 165: How do I save all the items of a multi-part posting in GNUS?
269 166: Why does GNUS put the subjects in replies beyond the 80th column?
270 167: Why is GNUS so slow to start up?
271 168: How do I catch up all newsgroups in GNUS?
272 169: Why can't I kill in GNUS on the Newsgroups/Keywords/Control line?
273 170: How do I get rid of flashing messages in GNUS for slow connections?
274 171: Why is catch up slow in Gnews/GNUS?
275 172: Why does GNUS hang for a long time when posting?
276 173: Why don't my news postings in GNUS get past the local machine?
277 174: Why is the GNUS-generated `Date:' header invalid?
278 175: Why doesn't GNUS generate the `Lines:' header?
279 176: Why do I get "Cannot open load file" "nntp" when compiling GNUS?
280 177: How do I kill all articles in GNUS but those matching a pattern?
282         
283                GNU Emacs FAQ: Notation/General/Help/Status
285 If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to
286 get an overview of just the questions.  Then, when you want to look at the text
287 of the answers, just type "C-x $".
289 To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if
290 that doesn't work, then type ESC to end the search.
292 A `+' in the 78th column means something was inserted on the line.  A `-' means
293 something was deleted and a `!' means some combination of insertions and
294 deletions occurred.
296 Full instructions for getting the latest FAQ are in question 22.  Also see the
297 `Introduction to news.answers' posting in the `news.answers' newsgroup, or send
298 e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
299 WAIS, or Prospero to rtfm.mit.edu.
303 Notation Used in FAQ
305   Skip this section and then come back if you don't understand some of the
306   later answers.
307   
308 1:   What do these mean: C-h, M-C-a, RET, "ESC a", etc.?
309   
310   C-x means press the `x' key while holding down the Control key.  M-x means
311   press the `x' key while holding down the Meta key.  M-C-x means press the
312   `x' key while holding down both the Control key and the Meta key.  C-M-a
313   is a synonym for M-C-a.  RET, LFD, DEL, ESC, and TAB respectively refer to
314   pressing the Return, Linefeed (aka Newline), Delete, Escape, and Tab keys
315   and are equivalent to C-m, C-j, C-?, C-[, and C-i.  SPC means press the
316   Space bar.
317   
318   I put any key sequence that is longer than one key (and some single-key
319   sequences) inside double quotes or on a line by itself.  Any real spaces
320   in such a key sequence should be ignored; only SPC really means press the
321   space key.
322   
323   The ASCII code sent by C-x (except for C-?) is the value that would be
324   sent by pressing just `x' minus 96 (or 64 for uppercase `X') and will be
325   from 0 to 31.  The ASCII code sent by M-x is the sum of 128 and the ASCII
326   code that would be sent by pressing just the `x' key.  Essentially, the
327   Control key turns off bits 5 and 6 and the Meta key turns on bit 7.
328   
329   For further information, see `Characters' and `Keys' in the online manual.
330   
331   NOTE: C-? (aka DEL) is ASCII code 127.  It is a misnomer to call C-? a
332   "control" key, since 127 has both bits 5 and 6 turned ON.  Also, on very
333   few keyboards does Control-? generate ASCII code 127.
334   
335 2:   What does "M-x command" mean?
336   
337   "M-x command" means type M-x, then type the name of the command, then
338   type RET.
339   
340   M-x (by default) invokes the command `execute-extended-command'.  This
341   command allows you to run any Emacs command if you can remember the
342   command's name.  If you can't remember the command's name, you can type
343   TAB and SPC for completion, and "?" for a list of possibilities.  An Emacs
344   "command" is any "interactive" Emacs function.
345   
346   NOTE: Your system administrator may have bound other key sequences to
347   invoke execute-extended-command.  A function key labeled `Do' is a good
348   candidate for this.
349   
350   To run non-interactive Emacs functions, see question 53.
351   
352 3:   How do I read topic XXX in the on-line manual?
353   
354   When I refer you to topic XXX in the on-line manual, you can read this
355   manual node inside Emacs (assuming nothing is broken) by typing this:
356   
357     C-h i m emacs RET m XXX RET
358   
359   This invokes the Info facility.  If you don't already know how to use
360   Info, type "?" from within Info.
361   
362   If I refer you to topic XXX:YYY, you need to type this:
363   
364     C-h i m emacs RET m XXX RET m YYY RET
365   
366   WARNING: Your system administrator may not have installed the Info files,
367   or may have installed them properly.  In this case you should complain.
368   
369 4:   What do these mean: etc/SERVICE, src/config.h, lisp/default.el?
370   
371   These are files that come with GNU Emacs.  The GNU Emacs distribution is
372   divided into subdirectories; the important ones are `etc', `lisp', and
373   `src'.
374   
375   If you use GNU Emacs, but don't know where it is kept on your system,
376   start Emacs, then type "C-h v exec-directory RET".  The directory name
377   displayed by this will be the full pathname of the installed `etc'
378   directory.
379   
380   Some of these files are available individually via FTP or e-mail, see
381   question 20.  All are available in the source distribution.
382   
383 5:   What are FSF, LPF, OSF, GNU, RMS, FTP, and GPL?
384   
385   FSF == Free Software Foundation
386   LPF == League for Programming Freedom
387   OSF == Open Software Foundation
388   GNU == GNU's Not Unix
389   RMS == Richard Matthew Stallman
390   FTP == File Transfer Protocol
391   GPL == GNU General Public Licence
392   
393   NOTE: Avoid confusing the FSF, the LPF, and the OSF.  The LPF opposes
394   look-and-feel copyrights and software patents.  The FSF aims to make high
395   quality free software available for everyone.  The OSF is a commercial
396   organization which wants to provide an alternative, standardized version
397   of Unix not controlled by AT&T.
398   
399   NOTE: The word "free" in the title of the Free Software Foundation refers
400   to "freedom", not "zero dollars".  Anyone can charge any price for
401   GPL-covered software that they want to.  However, in practice, the freedom
402   enforced by the GPL leads to low prices, because you can always get the
403   software for less money from someone else, because everyone has the right
404   to resell or give away GPL-covered software.
405   
408 General Questions
410 6:   What is the LPF and why should I join it?
411   
412   The LPF opposes the expanding danger of software patents and look-and-feel
413   copyrights.  To get more information, feel free to contact the LPF via
414   e-mail or otherwise.  {You may also contact me, jbw@cs.bu.edu; I will be
415   happy to talk with you about the LPF.}  Here is the contact information:
416   
417     E-mail address: league@prep.ai.mit.edu
418     Phone number: (617) 243-4091
419     Postal address:
420       League for Programming Freedom
421       1 Kendall Square, Number 143
422       Post Office Box 9171
423       Cambridge, MA 02139, USA
424   
425   Papers describing the LPF's views are available on the internet and also
426   from the LPF:
427   
428     Anonymous FTP:
429       /prep.ai.mit.edu:/pub/lpf/
430       /archive.cis.ohio-state.edu:pub/lpf/
431     Anonymous UUCP:
432       osu-cis!~/lpf/*
433   
434 7:   What is the real legal meaning of the GNU copyleft?
435   
436   The real legal meaning of the GNU General Public Licence (copyleft) is
437   however it is interpreted by a judge.  There has never been a copyright
438   infringement case involving the GPL to set any precedents.  Please take any
439   discussion regarding this issue to the newsgroup gnu.misc.discuss, which
440   was created to hold the extensive flame wars on the subject.
441   
442   RMS writes:
443   
444     The legal meaning of the GNU copyleft is less important than the spirit,
445     which is that Emacs is a free software project and that work pertaining
446     to Emacs should also be free software.  "Free" means that all users have
447     the freedom to study, share, change and improve Emacs.  To make sure
448     everyone has this freedom, pass along source code when you distribute
449     any version of Emacs or a related program, and give the recipients the
450     same freedom that you enjoyed.
451   
452 8:   What are appropriate messages for gnu.emacs.help, gnu.emacs.bug,
453  comp.emacs, etc.?
454   
455   The file etc/MAILINGLISTS discusses the purpose of each GNU mailing-list.
456   (See question 20 on how to get a copy.)  For those which are gatewayed
457   with newsgroups, it lists both the newsgroup name and the mailing list
458   address.
459   
460   comp.emacs is for discussion of Emacs programs in general.  This
461   includes GNU Emacs along with various other implementations like JOVE,
462   MicroEmacs, Freemacs, MG, Unipress, CCA, Epsilon, etc.
463   
464   Many people post GNU Emacs questions to comp.emacs because they don't
465   receive any of the gnu.* newsgroups.  Arguments have been made both for
466   and against posting GNU-Emacs-specific material to comp.emacs.  You have
467   to decide for yourself.
468   
469   Messages advocating "non-free" software are considered unacceptable on any
470   of the gnu.* newsgroups except for gnu.misc.discuss, which was created to
471   hold the extensive flame-wars on the subject.  "non-free" software
472   includes any software for which the end user can't freely modify the
473   source code and exchange enhancements.  Be careful to remove the gnu.*
474   groups from the `Newsgroups:' line when posting a followup that recommends
475   such software.
476   
477   gnu.emacs.bug is a place where bug reports appear, but avoid posting bug
478   reports to this newsgroup, instead see question 10.
479   
480 9:   Where can I get old postings to gnu.emacs.help and other GNU groups?
481   
482   The FSF has maintained archives of all of the GNU mailing lists for many
483   years, although there may be some unintentional gaps in coverage.  The
484   archive is not particularly well organized or easy to retrieve individual
485   postings from, but pretty much everything is there.
486   
487     Anonymous FTP:
488       /prep.ai.mit.edu:/pub/gnu/MailingListArchives/
489   
490   There is a WAIS database named `comp.emacs' on wais.oit.unc.edu that
491   makes available the last few days of articles in comp.emacs.
492   
493 10:  Where should I report bugs and other problems with GNU Emacs?
494   
495   The correct way to report GNU Emacs bugs is by e-mail to
496   bug-gnu-emacs@prep.ai.mit.edu.  Anything sent here also appears in the
497   newsgroup gnu.emacs.bug, but please use e-mail instead of news to submit
498   the bug report.  This way a reliable return address is available so you
499   can be contacted for further details.
500   
501   RMS explains:
502   
503     Sending bug reports to help-gnu-emacs (which has the effect of posting
504     on gnu.emacs.help) is undesirable because it takes the time of an
505     unnecessarily large group of people, most of whom are just users and
506     have no idea how to fix these problem.  bug-gnu-emacs reaches a much
507     smaller group of people who are more likely to know what to do and have
508     expressed a wish to receive more messages about Emacs than the others.
509   
510   However, RMS says there are circumstances when it is okay to post to
511   gnu.emacs.help:
512   
513     If you have reported a bug and you don't hear about a possible fix, then
514     after a suitable delay (such as a week) it is okay to post on
515     gnu.emacs.help asking if anyone can help you.
516   
517   If you are unsure whether you have a bug, RMS describes how to tell:
518   
519     ... if Emacs crashes, that is a bug.  If Emacs gets compilation errors
520     while building, that is a bug.  If Emacs crashes while building, that is
521     a bug.  If Lisp code does not do what the documentation says it does,
522     that is a bug.
523   
524 11:  How do I unsubscribe to this mailing list?
525   
526   If you are receiving a GNU mailing list named `XXX', you might be able
527   to unsubscribe to it by sending a request to the address
528   `XXX-request@prep.ai.mit.edu'.  However, this will not work if you are
529   not listed on the main mailing list, but instead receive the mail from a
530   distribution point.  In that case, you will have to track down at which
531   distribution point you are listed.  Inspecting the `Received:' headers
532   on the mail messages may help, along with liberal use of the `EXPN' or
533   `VRFY' sendmail commands through `telnet <site-address> smtp'.  Ask your
534   postmaster for help.
535   
536 12:  What is the current address of the FSF?
537   
538   E-mail address: gnu@prep.ai.mit.edu
539   Phone number: (617) 876-3296
540   Postal address:
541     Free Software Foundation, Inc.
542     675 Massachusetts Avenue
543     Cambridge, MA 02139, USA
544   
547 On-line Help, Printed Manuals, Other Sources of Help
549 13:  I'm just starting GNU Emacs; how do I do basic editing?
550   
551   Type "C-h t" to invoke the self-paced tutorial.  Typing just C-h is
552   how to enter the help system.
553   
554   WARNING: Your system administrator may have changed C-h to act like DEL to
555   deal local keyboards.  You can use M-x help-for-help instead to invoke
556   help.  To discover what key (if any) invokes help on your system, type
557   "M-x where-is RET help-for-help RET".  This will print a comma-separated
558   list of key sequences in the echo area.  Ignore the last character in each
559   key sequence listed.  Each of the resulting key sequences invokes help.
560   
561   NOTE: Emacs's help facility works best if help is invoked by a single key
562   whose value should be stored in the variable help-char.  Andrew
563   Arensburger <arensb@kong.gsfc.nasa.gov> wrote a patch that allows the help
564   facility to work properly when invoked by multiple character sequences.
565   
566 14:  How do I find out how to do something in GNU Emacs?
567   
568   There are several methods for finding out how to do things in Emacs.
569   
570   * The complete text of the Emacs manual is available online via the Info
571     hypertext reader.  Type "C-h i" to invoke Info.
572   
573   * You can order a hardcopy of the manual from the FSF.  See question 15.
574   
575   * You can get a printed reference card listing commands and keys to invoke
576     them.  You can order one from the FSF for $1 (or 10 for $5), or you can
577     print your own from the etc/refcard.tex file in the Emacs distribution.
578     {Are PostScript versions of this available for FTP?}
579   
580   * You can list all of the commands whose names contain a certain word
581     (actually which match a regular expression) using "C-h a"
582     (M-x command-apropos).
583   
584   * You can list all of the functions and variables whose names contain a
585     certain word using M-x apropos.
586   
587   * There are many other commands in Emacs for getting help and information.
588     To get a list of these commands, type "C-h C-h C-h".
589   
590   NOTE: You may find that command-apropos and apropos are extremely slow
591   on your system.  This will be fixed in Emacs 19.  If you can't wait that
592   long, there is a fast-apropos.el file available in the Emacs Lisp
593   Archive (see question 89) that contains the fix.
594   
595 15:  How do I get a printed copy of the GNU Emacs manual?
596   
597   You can order a printed copy of the GNU Emacs manual from the FSF for
598   $20.  For 6 or more manuals the price is $13 each.  The price may be
599   tax-deductible as a business expense.
600   
601   The full TeX source for the manual also comes in the `man' directory of
602   the Emacs distribution, if you're daring enough to try to print out this
603   300 page manual yourself (see question 18).
604   
605   If you absolutely have to print your own copy, and you don't have TeX, you
606   can get a PostScript version via anonymous FTP:
607   
608     /cs.ubc.ca:pub/archive/gnu/manuals_ps/emacs-18.57.ps.Z                   !
609   
610   which site requests that you please CONFINE ANY MAJOR FTPING TO LATE
611   EVENINGS OR EARLY MORNINGS OUR TIME (pacific time zone, GMT-8)).  A DVI
612   version is also available via FTP:
613   
614     /prep.ai.mit.edu:pub/gnu/emacs-manual-6.0.dvi.Z
615   
616   If you don't have TeX you can convert the Texinfo sources into
617   {t,n,ps}roff format with the `texi2roff' program, which is available via
618   anonymous FTP:
619   
620     /archive.cis.ohio-state.edu:pub/gnu/texi2roff/texi2roff.shar.Z
621   
622   See also question 14 for how to view the manual online.
623   
624 16:  Where can I get documentation on GNU Emacs Lisp?
625   
626   Within Emacs, you can type "C-h f" to get the documentation for a
627   function, "C-h v" for a variable.
628   
629   For more information, obtain the GNU Emacs Lisp Reference Manual for Emacs
630   18 under Unix.  It is available from the FSF for $50 (or 5 for $200).  The
631   latest revision available for FTP is edition 1.03 dated 28 January 1991.
632   
633   For online use, a set of pregenerated Info files is available with the
634   Texinfo source for the Emacs Lisp manual via anonymous FTP:
635   
636     /archive.cis.ohio-state.edu:pub/gnu/emacs/
637     /prep.ai.mit.edu:pub/gnu/elisp-manual-1.03.tar.Z
638   
639   (You can also create the Info files from the Texinfo source.)  See
640   question 17 for details on how to install these files online.
641   
642   If you are daring enough to try to print this 550 page manual out
643   yourself, for instructions see question 18.
644   
645   Also, as a popular USENET saying goes, "Use the Force, Read the Source".
646   
647 17:  How do I install a piece of Texinfo documentation?
648   
649   First create Info files from the Texinfo files with the `makeinfo'
650   program.  makeinfo is available as part of the latest Texinfo package:
651   
652     /prep.ai.mit.edu:pub/gnu/texinfo-2.14.tar.Z
653   
654   For information about the Texinfo format, read the Texinfo manual which
655   comes with Emacs.  This manual also comes installed in Info format, so you
656   can read it online.
657   
658   Neither texinfo-format-buffer nor the makeinfo program install the
659   resulting Info files in Emacs's Info tree.  To install Info files:
660   
661   1. Move the files to the `info' directory in the installed Emacs
662      distribution.  See question 4 if you don't know where that
663      is.
664   
665   2. Edit the file info/dir in the installed Emacs distribution, and add a
666      line for the top level node in the Info package that you are
667      installing.  Follow the examples are already in this file.  The format
668      is:
669   
670        * Topic: (relative-pathname).  Short description of topic.
671   
672   If you want to install Info files and you don't have the necessary
673   privileges, you have several options:
674   
675   * Info files don't actually need to be installed before being used.  You
676     can feed a file name to the Info-goto-node command (invoked by pressing
677     "g" in Info mode) by typing the name of the file in parentheses.  This
678     goes to the node named `Top' in that file.  For example, to view a Info
679     file named `XXX' in your home directory, you can type this:
680   
681       C-h i g (~/XXX) RET
682   
683   * You can create your own Info directory.  You can tell Emacs where the
684     Info directory is by setting the value of the variable Info-directory
685     to its pathname.  For example, to use a private Info directory which
686     is a subdirectory of your home directory named `Info', you could do
687     this:
688   
689       (setq Info-directory (expand-file-name "~/Info"))
690   
691     You will need a top-level Info file named `dir' in this directory.
692     You can include the system-wide Info directory in your private Info
693     directory with symbolic links or by copying it.
694   
695   * You can use an enhanced version of lisp/info.el that handles multiple
696     Info directories.  Then you can more easily use a mix of private and
697     shared Info files.  Dave Gillespie <daveg@synaptics.com,
698     daveg@csvax.cs.caltech.edu> has written one such enhancement and I
699     believe there are others.  Dave's info.el also handles compressed Info
700     files.
701   
702     Anonymous FTP:
703       /archive.cis.ohio-state.edu:modes/info.el.Z
704       /ftp.uu.net:languages/emacs-lisp/modes/info.el.Z                       !
705   
706     According to Jay Bourland <jayb@math.stanford.edu>, a version of Dave's
707     info.el comes with `xinfo' (see question 19).
708   
709 18:  How do I print a Texinfo file?
710   
711   NOTE: You can't get nice printed output from Info files; you must still
712   have the original Texinfo source file for the manual you want to print.
713   
714   1. Make sure the first line of the Texinfo file looks like this:
715   
716        \input texinfo
717   
718      You may need to alter `texinfo' to the full pathname of the
719      texinfo.tex file, which comes with Emacs as man/texinfo.tex (or copy
720      or link it into the current directory).
721   
722   2. tex XXX.texinfo
723   
724   3. texindex XXX.??
725   
726      The `texindex' program comes with Emacs as man/texindex.c.
727   
728   4. tex XXX.texinfo
729   
730   5. Print the DVI file XXX.dvi in the normal way for printing DVI files
731      at your site.
732   
733   To get more general instructions, retrieve the latest Texinfo package
734   mentioned in question 17.
735   
736 19:  Can I view Info files without using GNU Emacs?
737   
738   Yes, the `info', `xinfo', and `ivinfo' programs do this.  info uses
739   curses, xinfo uses standard X11 libraries, and ivinfo uses InterViews.
740   You can get info as part of the latest Texinfo package (see question
741   17).  xinfo is available separately:
742   
743     /prep.ai.mit.edu:pub/gnu/xinfo-1.01.01.tar.Z
744     /export.lcs.mit.edu:
745   
746   ivinfo is available in a comp.sources.misc archive or from Tom Horsley
747   <tom@ssd.csd.harris.com>.  For ivinfo, you need Stanford's InterViews C++
748   X library, available via anonymous FTP (interviews.stanford.edu).
749   
750 20:  What informational files are available for GNU Emacs?
751   
752   This isn't a frequently asked question, but it should be!  A variety of
753   informational files about GNU Emacs and relevant aspects of the GNU
754   project are available for you to read.
755   
756   The following files are available in the `etc' directory of the GNU
757   Emacs distribution, and also the latest versions are available
758   individually via anonymous FTP (prep.ai.mit.edu:/pub/gnu/GNUinfo/):
759   
760     APPLE -- Why the FSF doen't support GNU Emacs on Apple computers
761     DISTRIB -- GNU Emacs Availability Information,
762       including the popular "Free Software Foundation Order Form"
763     FTP -- How to get GNU Software by Internet FTP or by UUCP
764     GNU -- The GNU Manifesto
765     INTERVIEW -- Richard Stallman discusses his public-domain
766                        UNIX-compatible software system
767                               with BYTE editors
768     MACHINES -- Status of GNU Emacs on Various Machines and Systems
769     MAILINGLISTS -- GNU Project Electronic Mailing Lists
770     SERVICE -- GNU Service Directory
771     SUN-SUPPORT -- including "Using Emacstool with GNU Emacs"
772   
773   These files are available in the `etc' directory of the GNU Emacs
774   distribution:
775   
776     DIFF -- Differences between GNU Emacs and Twenex Emacs
777     CCADIFF -- Differences between GNU Emacs and CCA Emacs
778     GOSDIFF -- Differences between GNU Emacs and Gosling (Unipress??) Emacs
779     COPYING -- GNU Emacs General Public License
780     NEWS -- GNU Emacs News, a history of user-visible changes
781     LPF -- Why you should join the League for Programming Freedom
782     FAQ -- GNU Emacs Frequently Asked Questions (You're reading it)
783     OPTIONS -- a complete explanation of startup option handling
784   
785   These files are available via anonymous FTP (prep.ai.mit.edu:/pub/gnu/):
786   
787     tasks -- GNU Task List
788     standards.text -- GNU Coding Standards
789   
790   In addition, all of the above files are available directly from the FSF
791   via e-mail.  Of course, please try to get them from a local source
792   first.
793   
794   These additional files are available from the FSF via e-mail:
795   
796   * GNU's Bulletin, June, 1991 -- this file includes:
797       GNU'S Who
798       What Is the Free Software Foundation?
799       What Is Copyleft?
800       A Small Way to Help Free Software
801       GNUs Flashes (important recent developments for project GNU)
802       Free Software Support (and how to get it!)
803       Copyrighted Programming Languages
804       AT&T Threatens Users of X Windows (and other software patent threats)
805       Project Gutenberg
806       GNU Project Status Report
807       GNU in Japan
808       GNU Wish List
809       Help Keep Government Software Free
810       GNU Software Available Now
811         Contents of the Emacs Tape
812         Contents of the Compiler Tape
813         Contents of the X11 Tapes
814         VMS Emacs and Compiler Tapes
815       GNU Documentation
816       How to Get GNU Software
817       Free Software for Microcomputers
818         GNU Software on Apple computers
819         GNU Software on the Amiga
820         GNU Software on the Atari
821         GNUish MS-DOS project
822         Freemacs, an Extensible Editor for MS-DOS
823       GNU in Japan
824       FSF Order Form
825       Thank GNUs
826   * Legal issues about contributing code to GNU
827   * GNU Project Status Report
828   
829   A collection of past GNU's Bulletins is available via anonymous FTP:
830   
831     /ftp.funet.fi:pub/gnu/Bulletins/
832   
833 21:  Where can I get help in installing GNU Emacs?
834   
835   Look in etc/SERVICE for names of companies and individuals who will sell
836   you this type of service.  An up-to-date version of the SERVICE file is
837   available on prep.ai.mit.edu (also see question 20).
838   
839 22:  Where can I get the latest version of this document (the FAQ list)?
840   
841   The GNU Emacs FAQ is available in several ways:
842   
843   * Via USENET.  If you can read news, the FAQ should be available in your
844     news spool, in both the gnu.emacs.help and comp.emacs newsgroups.  Every
845     news reader of which I know will allow you to read any news article that
846     is still in the news spool, even if you have read the article before.
847     You may need to read the instructions for your news reader to discover
848     how to do this.  In `rn', this command will do this for you at the
849     article selection level:
850   
851       ?GNU Emacs FAQ?rc:m
852   
853     In GNUS, you should type "C-u G" from the *Subject* buffer or "C-u SPC"
854     from the *Newsgroup* buffer to view all articles in a newsgroup.
855   
856     The FAQ articles' message IDs are:
857   
858       <GNU-Emacs-FAQ-0.1993.05.04.025218@rice.edu>                           !
859       <GNU-Emacs-FAQ-1.1993.05.04.025218@rice.edu>                           !
860       <GNU-Emacs-FAQ-2.1993.05.04.025218@rice.edu>                           !
861       <GNU-Emacs-FAQ-3.1993.05.04.025218@rice.edu>                           !
862       <GNU-Emacs-FAQ-4.1993.05.04.025218@rice.edu>                           !
863       <GNU-Emacs-FAQ-5.1993.05.04.025218@rice.edu>                           !
864   
865     If you are viewing this in the GNUS *Article* buffer, you can move point
866     within one of the above message IDs and type "r" to fetch the referenced
867     article.  Type "o" in the *Article* buffer to restore the previous
868     contents.  If this text is not in the GNUS *Article* buffer, use M-r
869     from the *Subject* buffer instead.
870   
871     If the FAQ articles have expired and been deleted from your news spool,
872     it might (or might not) do some good to complain to your news
873     administrator, because the most recent FAQ should not expire before
874     July 3, 1993.                                                            !
875   
876   * Via anonymous FTP.  You can fetch the FAQ articles via anonymous FTP
877   
878       /rtfm.mit.edu:pub/usenet/news.answers/GNU-Emacs-FAQ/ part*
879   
880   * Via e-mail.  You can send the following magical incantation in the body
881     of a message to mail-server@rtfm.mit.edu:
882   
883       send usenet/news.answers/GNU-Emacs-FAQ/part0
884       send usenet/news.answers/GNU-Emacs-FAQ/part1
885       send usenet/news.answers/GNU-Emacs-FAQ/part2
886       send usenet/news.answers/GNU-Emacs-FAQ/part3
887       send usenet/news.answers/GNU-Emacs-FAQ/part4
888       send usenet/news.answers/GNU-Emacs-FAQ/part5
889   
890   * Via WAIS.  The GNU Emacs FAQ is available via WAIS indexed on a
891     per-question basis from the `faq' database on bigbird.bu.edu on the
892     non-standard IP port number of 2210.  This is probably the best way to
893     find out if there is something in the FAQ related to your question.  I
894     use this myself to answer questions I see posted on gnu.emacs.help.
895   
896     The articles of the GNU Emacs FAQ are also available from the `usenet'
897     database on rtfm.mit.edu (on the standard IP port: 210), along with a
898     lot of other FAQ articles.  However, these are all indexed at the whole
899     article level instead of at the question level.  This is a better place
900     to look if you want to fetch the entire FAQ.
901   
902   * In the GNU Emacs distribution.  Since GNU Emacs 18.56, the latest
903     available version of the FAQ at the time of release has been part of the
904     GNU Emacs distribution as file etc/FAQ.  18.59 is the latest version,
905     and it was released in October 1992.
906   
907   * There is an old version of the FAQ list available for FTP in the GNU
908     archives at MIT:
909   
910       /prep.ai.mit.edu:pub/gnu/GNUinfo/FAQ.emacs
911   
912   * As the very last resort, you can e-mail a request to
913     gnu-emacs-faq-maintainers@bigbird.bu.edu.  Don't do this unless you have
914     made a serious effort to obtain the FAQ list via one of the methods
915     listed above.
916   
919 Status of Emacs
921 23:  Where does the name "Emacs" come from?
922   
923   Emacs originally was an acronym for Editor MACroS.  RMS says he "picked
924   the name `Emacs' because `E' was not in use as an abbreviation on ITS at
925   the time.".  The first Emacs was a set of macros written in 1976 at MIT by
926   RMS for the editor TECO (Text Editor and COrrector (originally Tape Editor
927   and COrrector)) under ITS on a PDP-10.  RMS had already extended TECO with
928   a "real-time" full screen mode with active keys.  Emacs was started by Guy
929   Steele <gls@think.com> as a project to unify the many divergent TECO
930   command sets and keybindings at MIT.
931   
932   Many people have told me that TECO code looks a lot like line noise.  See
933   alt.lang.teco if you are interested.  I think someone has written a TECO
934    implementation in Emacs Lisp.  It would be an interesting project to run
935   the original TECO Emacs inside of GNU Emacs.
936   
937 24:  What is the latest version of GNU Emacs?
938   
939   GNU Emacs 18.59 is the current version.  Fixes from 18.57 include better
940   mail address parsing, an X visual bell speedup, a call-process
941   enhancement, a regexp matching change, the ability to apply a numeric
942   argument to a self-inserting digit, getting X resource values from the
943   RESOURCE_MANAGER property, more reliable shell mode job control, and a
944   change to copy-keymap.  Also, support has been added for many new system
945   types.  Fixes from 18.55 include the removal of arbitrary limits on the
946   undo facility.
947   
948   According to the January 1992 GNU's Bulletin, "Emacs 18 maintenance
949   continues for simple bug fixes.".
950   
951   To visit a file with information about what has changed in recent
952   versions, type "C-h n".
953   
954 25:  When will GNU Emacs 19 be available?
955   
956   Richard Stallman recently (February 19, 1993) posted in gnu.emacs.help     !
957   the following:                                                             !
958                                                                              !
959     People should keep in mind that the successor of Emacs 18 does not       !
960     come from Lucid.  Its is GNU Emacs 19.  I still can't say exactly when   !
961     public release is going to be, but we are about to start testing at a    !
962     number of sites.                                                         !
963                                                                              !
964     GNU Emacs 19 will support a broad spectrum of machines, like Emacs       !
965     18.  Ensuring this is the purpose of the testing we are about to do.     !
966                                                                              !
967     (Please don't volunteer; we have enough pretesters, and if more people   !
968     offer, dealing with those messages will slow things down.)               !
969                                                                              !
970     Once we make sure it is indeed working reliably on various different     !
971     systems, we will have a public beta test release.                        !
972                                                                              !
973     Emacs 19 does support adding properties to ranges of text, and using     !
974     these to switch fonts.  In the future, the Epoch people will help        !
975     merge support for variable-width fonts.                                  !
976                                                                              !
977     Meanwhile, I have almost finished updating the Emacs Lisp manual.  Its   !
978     next edition will describe Emacs 19.  There will be an announcement      !
979     when we know when this edition will be available.                        !
981   Lucid has released Lucid GNU Emacs 19.6, which is based on an early        !
982   unreleased version of GNU Emacs 19.  This will be similar to Emacs 19 when
983   it finally arrives, but they are not the same.  See question 121.
984   
985   Work has begun on features for Emacs 20.
986   
987 26:  What is different about GNU Emacs 19?
988   
989   From the January 1992 GNU's Bulletin:
990   
991     Version 19 will enter beta test late this year.  Among its new features
992     are: before and after change hooks, source-level debugging of Emacs Lisp
993     programs, X selection processing (including clipboard selections),
994     scrollbars, support for European character sets, floating point numbers,
995     per-buffer mouse commands, X resource manager interfacing,
996     mouse-tracking, Lisp-level binding of function keys, multiple X windows
997     (`screens' to Emacs), a new input system, and buffer allocation, which
998     uses a new mechanism capable of returning storage to the system when a
999     buffer is killed.
1000   
1001     The input stream is now a sequence of Lisp objects, instead of a
1002     sequence of characters.  This allows a reasonable representation for
1003     mouse clicks, function keys, menu selections, etc.
1004   
1005     Thanks go to Alan Carroll and the people who worked on Epoch for
1006     generating initial feedback to a multi-windowed Emacs, and to Eric
1007     Raymond for help in polishing the Emacs 19 Lisp libraries.
1008   
1009   The June 1991 GNU's bulletin had this to say about future plans for Emacs:
1010   
1011     Features being considered for later releases of Emacs include:
1012     associating property lists with regions of text in a buffer; multiple
1013     fonts, color, and pixmaps defined by those properties; different
1014     visibility conditions for the regions, and for various windows showing
1015     one buffer; hooks to be run if point or mouse moves outside a certain
1016     range; incrementally saving undo history in a file; static menu bars;
1017     and better pop-up menus.
1018   
1019   Mention of this feature disappeared in the January 1992 GNU's bulletin:
1020   
1021     Emacs 19 supports two styles of multiple windows, one with a separate
1022     screen for the minibuffer, and another with a minibuffer attached to
1023     each screen.
1024   
1025   Mention of these two proposed features disappeared in the January 1991
1026   GNU's bulletin:
1027   
1028   * Incremental syntax analysis for various programming languages (Leif).
1029   * A more sophisticated emacsclient/server model, which would provide
1030     network transparent Emacs widget functionality.
1031   
1032 27:  What variants of GNU Emacs exist?
1033   
1034   * Nemacs (Nihongo Emacs), which can handle Japanese text, is derived from
1035     GNU Emacs 18.55.  See question 149.
1036   
1037   * Demacs, which can run under MS-DOS on 386 machines, is derived from
1038     Nemacs.  See question 122.
1039   
1040   * Epoch, which has better X support, is derived from GNU Emacs 18.58.
1041     See question 120 and 92.
1042   
1043   * Nepoch (Nihongo Epoch), which can handle Japanese text, is derived from
1044     Epoch.
1045   
1046   * Mule (the MULtilingual Enhancement of GNU Emacs) can handle many
1047     character sets simultaneously.  It is derived from Emacs 18.58.  It is
1048     available for FTP:
1049   
1050       /sh.wide.ad.jp:/JAPAN/mule/
1051       /etlport.etl.go.jp:/pub/mule/
1052   
1053   * Lucid GNU Emacs is derived from an early unreleased version of GNU Emacs
1054     19.  See question 121 and 92.
1055   
1058                  GNU Emacs FAQ: Common Requests/Problems
1060 If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to
1061 get an overview of just the questions.  Then, when you want to look at the text
1062 of the answers, just type "C-x $".
1064 To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if
1065 that doesn't work, then type ESC to end the search.
1067 A `+' in the 78th column means something was inserted on the line.  A `-' means
1068 something was deleted and a `!' means some combination of insertions and
1069 deletions occurred.
1071 Full instructions for getting the latest FAQ are in question 22.  Also see the
1072 `Introduction to news.answers' posting in the `news.answers' newsgroup, or send
1073 e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
1074 WAIS, or Prospero to rtfm.mit.edu.
1078 Common Things People Want To Do 
1080 28:  How do I set up a .emacs file properly?
1081   
1082   See `Init File' in the on-line manual.
1083   
1084   WARNING: In general, new Emacs users should not have .emacs files, because
1085   it causes confusing non-standard behavior.  Then they send questions to
1086   help-gnu-emacs asking why Emacs isn't behaving as documented.  :-)
1087   
1088 29:  How do I debug a .emacs file?
1089   
1090   First start Emacs with the `-q' command line option.  Then, in the
1091   *scratch* buffer, type the following:
1092   
1093     (setq debug-on-error t) LFD
1094     (load-file "~/.emacs") LFD
1095   
1096   (Type LFD by pressing C-j.)
1097   
1098   If you have an error in your .emacs file, this will invoke the debugger
1099   when the error occurs.  If you don't know how to use the debugger do
1100   (setq stack-trace-on-error t) instead.
1101   
1102   WARNING: this will not discover errors caused by trying to do something
1103   that requires the terminal/window-system initialization code to have
1104   been loaded.  See question 127.
1105   
1106 30:  How do I make Emacs display the current line (or column) number?
1107   
1108   To find out what line of the buffer you are on right now, do "M-x
1109   what-line".  Use "M-x goto-line" to go to a specific line.  To find the
1110   current column number, type "M-ESC (current-column)".
1111   
1112   Typing "C-x l" will also tell you what line you are on, provided the
1113   buffer isn't separated into "pages" with C-l characters.  In that case, it
1114   will only tell you what line of the current "page" you are on.  WARNING:
1115   "C-x l" gives the wrong value when point is at the beginning of a line.
1116   
1117   There is no "correct" way to constantly display the current (or total)
1118   line (or column) number on the mode line in Emacs 18, or to display the
1119   line numbers next to the lines like vi can.  Emacs is not a line-oriented
1120   editor, and really has no idea what "lines" of the buffer are displayed in
1121   the window.  It would require a lot of work at the C code level to make
1122   Emacs keep track of this.  It would not be that hard to get the column
1123   number, but it would still require changes at the C code level.
1124   
1125   None of the vi emulation modes provide the `set number' capability of vi
1126   (as far as I know).
1127   
1128   Emacs 19 will probably be able to show the line number on the mode-line,
1129   but probably very inefficiently.
1130   
1131   People have written various kludges to display line numbers.  One is
1132   `display-line-numbers' by Wayne Mesard <wmesard@tofu.oracle.com,
1133   Mesard@bbn.com>.  Look in the Lisp Code Directory.  (See question
1134   88.)
1135   
1136 31:  How do I turn on Abbrevs by default just in mode XXX?
1137   
1138   Put this in your .emacs file:
1139   
1140     (condition-case ()
1141         (read-abbrev-file nil t)
1142       (file-error nil))
1143   
1144     (setq XXX-mode-hook
1145           (function
1146            (lambda ()
1147              (setq abbrev-mode t))))
1148   
1149 32:  How do I turn on Auto-Fill mode by default?
1150   
1151   To turn on Auto-Fill mode just once for one buffer, use "M-x
1152   auto-fill-mode".  To turn it on for every buffer in, for example, Text
1153   mode, do this:
1154   
1155     (setq text-mode-hook 'turn-on-auto-fill)
1156   
1157   If you want Auto-Fill mode on in all major modes, do this:
1158   
1159     (setq-default auto-fill-hook 'do-auto-fill)
1160   
1161 33:  How do I make Emacs use a certain major mode for certain files?
1162   
1163   If you want to use XXX mode for all files which end with the extension
1164   `.YYY', this will do it for you:
1165   
1166     (setq auto-mode-alist (cons '("\\.YYY\\'" . XXX-mode) auto-mode-alist))
1167   
1168   Otherwise put this somewhere in the first line of any file you want to
1169   edit in XXX mode:
1170   
1171     -*-XXX-*-
1172   
1173 34:  How do I search for, delete, or replace unprintable (8-bit or control)
1174  characters?
1175   
1176   To search for a single character that appears in the buffer as, for
1177   example, `\237', you can type "C-s C-q 2 3 7".  (This assumes the value of
1178   search-quote-char is 17 (ie., C-q).)  Searching for ALL unprintable
1179   characters is best done with a "regexp" search.  The easiest regexp to use
1180   for the unprintable chars is the complement of the regexp for the
1181   printable chars.
1182   
1183   Regexp for the printable chars: [\t\n\r\f -~]
1184   
1185   Regexp for the unprintable chars: [^\t\n\r\f -~]
1186   
1187   To type some of these special characters in an interactive argument to
1188   isearch-forward-regexp or re-search-forward, you need to use C-q.  (`\t',
1189   `\n', `\r', and `\f' stand respectively for TAB, LFD, RET, and C-l.)  So,
1190   to search for unprintable characters using re-search-forward:
1191   
1192     M-x re-search-forward RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET
1193   
1194   Using isearch-forward-regexp:
1195   
1196     M-C-s [^ TAB RET C-q RET C-q C-l SPC -~]
1197   
1198   To delete all unprintable characters, simply use a replace-regexp:
1199   
1200     M-x replace-regexp RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET RET
1201   
1202   Replacing is similar to the above.  {I need to write the text for this
1203   part of the answer!}
1204   
1205   Notes:
1206   
1207   * With isearch, you can type RET to get a quoted LFD (not a quoted RET).
1208   
1209   * You don't need to quote TAB with either isearch or typing something in
1210     the minibuffer.
1211   
1212   Here are the Emacs Lisp forms of the above regexps:
1213   
1214     ;; regexp matching all printable characters:
1215     "[\t\n\r\f -~]"
1216   
1217     ;; regexp matching all unprintable characters:
1218     "[^\t\n\r\f -~]"
1219   
1220 35:  How can I highlight a region of text in Emacs?
1221   
1222   There are ways to get highlighting (reverse video, inverse video) in GNU
1223   Emacs 18.59, but either they require patching the C code of Emacs and
1224   rebuilding, or they are slow and the highlighting disappears if you scroll
1225   or redraw the screen and it can not follow the point.  Howard Gayle's
1226   patches for 8-bit output appear to allow highlighting (see question
1227   ^8-bit-output).  Another patch for highlighting is by Kenichi Handa
1228   <handa@etl.go.jp>.  There is a patch for use with X by Andy Norman
1229   <ange@hplb.hpl.hp.com> (and modified for 18.57 by Matthieu Herrb
1230   <matthieu@laas.fr>), which is available for FTP:
1231   
1232     /laas.laas.fr:pub/emacs/patch-X11-18.55
1233     /laas.laas.fr:pub/emacs/patch-X11-18.57
1234   
1235   You can highlight regions in a variety of ways in Epoch and Lucid Emacs.
1236   GNU Emacs 19 may not be able to just temporarily highlight a region.
1237   
1238   Similar comments apply to displaying text in different fonts, except that
1239   it is even harder.
1240   
1241 36:  How do I control Emacs's case-sensitivity when searching/replacing?
1242     
1243   For searching, the value of the variable case-fold-search determines
1244   whether they are case sensitive:
1245   
1246     (setq case-fold-search nil) ; make searches case sensitive
1247     (setq case-fold-search t)   ; make searches case insensitive
1248   
1249   Similarly, for replacing the variable case-replace determines whether
1250   replacements preserve case.
1251   
1252   To change the case sensitivity just for one major mode, use the major
1253   mode's hook.  For example:
1254   
1255     (setq XXX-mode-hook
1256           (function
1257            (lambda ()
1258              (setq case-fold-search nil))))
1259   
1260 37:  How do I make Emacs wrap words for me?
1261   
1262   M-x auto-fill-mode.  The default maximum line width is 74, determined by
1263   the variable fill-column.  To find how to turn this on automatically see
1264   question 32.
1265   
1266 38:  Where can I get a better spelling checker for Emacs?
1267   
1268   Use Ispell.  See question 119.
1269   
1270 39:  How can I spell-check TeX or *roff documents?
1271   
1272   If you want to spell-check TeX or *roff documents with Ispell, you need to
1273   arrange for a filter program that understands how to strip TeX or *roff
1274   formatting commands to be run.  In the TeX distribution, there are several
1275   different programs named `detex', all with incompatible options, and a
1276   very old pair of programs named `detex' and `delatex', which should
1277   probably be avoided.  The most useful one for Ispell is `detex' by Daniel
1278   Trinkle.  A more recent version is available via FTP:
1279   
1280     /arthur.cs.purdue.edu:pub/trinkle/detex-2.4.tar
1281   
1282   Raphael Cerf <cerf@clipper.ens.fr> recently released a program for this
1283   named `xetal':
1284   
1285     /spi.ens.fr:pub/unix/tex/
1286   
1287   There is a program that comes with Unix named `deroff' for stripping
1288   formatting commands from *roff files.
1289   
1290   Here is an example of code you can put in a .emacs file to use these
1291   programs:
1292   
1293     ;; Based on suggestions by David G. Grubbs <dgg@ksr.com> and Paul Palmer
1294     ;; <palmerp@math.orst.edu>.
1295   
1296     ;; Assuming the use of detex 2.3 by Daniel Trinkle:
1297     ;; -w means one word per line.
1298     ;; -n means don't expand \input or \include commands.
1299     ;; -l means force LaTeX mode.
1300   
1301     (require 'ispell) ; for the make-variable-buffer-local statements
1302     (setq plain-TeX-mode-hook
1303           (function
1304            (lambda ()
1305              (setq ispell-filter-hook "detex")
1306              (setq ispell-filter-hook-args '("-nw")))))
1307     (setq LaTeX-mode-hook
1308           (function
1309            (lambda ()
1310              (setq ispell-filter-hook "detex")
1311              (setq ispell-filter-hook-args '("-lnw")))))
1312     (setq nroff-mode-hook
1313           (function
1314            (lambda ()
1315              (setq ispell-filter-hook "deroff")
1316              (setq ispell-filter-hook-args '("-w")))))
1317   
1318   You will have to adjust the arguments for programs other than Trinkle's
1319   detex or for other versions of deroff.  Experiment running the command
1320   from the shell to find the correct options.  If you don't have a filter
1321   that knows how to output one word per line, you must pipe its output
1322   through another filter to break up the output.
1323   
1324 40:  How do I change load-path?
1325   
1326   In general, you should only *add* to the load-path.  You can add
1327   directory /XXX/YYY to the load path like this:
1328   
1329     (setq load-path (append load-path '("/XXX/YYY/")))
1330   
1331   To do this relative to your home directory:
1332   
1333     (setq load-path (append load-path (list (expand-file-name "~/YYY/"))))
1334   
1335 41:  How do I use an already running Emacs from another window?
1336   
1337   The `emacsclient' program is for editing a file using an already running
1338   Emacs rather than starting up a new Emacs.  It does this by sending a
1339   request to the already running Emacs, which must be expecting the request.
1340   
1341   * Setup
1342   
1343     Emacs must have executed the `server-start' function for emacsclient to
1344     work.  This can be done either by a command line option:
1345   
1346       emacs -f server-start
1347   
1348     or by invoking server-start from the .emacs file:
1349   
1350       (if (some conditions are met) (server-start))
1351   
1352     When this is done, Emacs starts a subprocess running a program called
1353     `server'.  `server' creates a Unix domain socket in the user's home
1354     directory named `.emacs_server'.
1355   
1356     To get your news reader, mail reader, etc., to invoke emacsclient, try
1357     setting the environment variable EDITOR (or sometimes VISUAL) to the
1358     value `emacsclient'.  You may have to specify the full pathname of the
1359     emacsclient program instead.  Examples:
1360   
1361       # csh commands:
1362       setenv EDITOR emacsclient
1363       setenv EDITOR /usr/local/emacs/etc/emacsclient  # using full pathname
1364   
1365       # sh command:
1366       EDITOR=emacsclient export EDITOR
1367   
1368   * Normal use
1369   
1370     When emacsclient is run, it connects to the `.emacs_server' socket and
1371     passes its command line options to `server'.  When `server' receives
1372     these requests, it sends this information on the the Emacs process,
1373     which at the next opportunity will visit the files specified.  (Line
1374     numbers can be specified just like with Emacs.)  The user will have to
1375     switch to the Emacs window by hand.  When the user is done editing a
1376     file, the user can type "C-x #" to indicate this.  This will switch to
1377     another buffer created at the request of emacsclient if there are any.
1378     When "C-x #" has been invoked on all of the files that the emacsclient
1379     requested to be edited, Emacs will send notification of this to `server'
1380     which will pass this on to the emacsclient, which will then exit.
1381   
1382   NOTE: `emacsclient' and `server' must be running on machines which share
1383   the same filesystem for this to work.  The pathnames that emacsclient
1384   specifies should be correct for the filesystem that the Emacs process
1385   sees.  The Emacs process should not be suspended at the time emacsclient
1386   is invoked.  emacsclient should either be invoked from another X window or
1387   from a shell window inside Emacs itself.
1388   
1389   There is an enhanced version of emacsclient/server called `gnuserv' by
1390   Andy Norman <ange@hplb.hpl.hp.com> which is available in the Emacs Lisp
1391   Archive.  gnuserv uses Internet domain sockets, so it can work across most
1392   network connections.  It also supports the execution of arbitrary Emacs
1393   Lisp forms and also does not require the client program to wait for
1394   completion.  It is available via anonymous FTP (Emacs Lisp Archive:
1395   packages/gnuserv.shar).
1396   
1397 42:  How do I make Emacs recognize my compiler's funny error messages?
1398   
1399   Write a program which runs the compiler as a child and filters its output,
1400   rearranging as necessary.  Install with same name as compiler somewhere in
1401   path.
1402   
1403   Keith Moore <moore@cs.utk.edu> wrote one such for a C compiler under AIX.
1404   Available via FTP:
1405   
1406     /cs.utk.edu:readonly/aixcc.lex
1407   
1408   Jim Frost <jimf@saber.com> wrote another for the IBM xlc compiler on the
1409   RS/6000.  (I don't know if these are both for the same compiler.)
1410   Johnathan Vail <vail@tegra.COM> wrote something for a High C compiler
1411   (`hc', which is one of the compilers on the RS/6000, although I think
1412   Johnathan wrote his program for hc on a different computer).
1413   
1414 43:  How do I indent switch statements like this?
1415   
1416   Many people want to indent their switch statements like this:
1417   
1418     f()
1419     {
1420       switch(x) {
1421         case A:
1422           x1;
1423           break;
1424         case B:
1425           x2;
1426           break;
1427         default:
1428           x3;
1429       }
1430     }
1431   
1432   I don't believe there is any way to do this exactly without modifying the
1433   Lisp code in c-mode.el.  You can set c-indent-level to 4 and
1434   c-label-offset to -2, but this has bad effects elsewhere.  {Anyone have a
1435   solution?}
1436   
1437 44:  How can I make Emacs automatically scroll horizontally?
1438   
1439   There is no completely correct way of doing this that does not involve
1440   rewriting all commands or writing your own top-level command loop (not a
1441   completely bad idea).  Wayne Mesard <wmesard@pescadero.stanford.edu> has
1442   written a particularly advanced kludge called `hscroll.el' that checks
1443   once a second to make sure point is visible.
1444   
1445 45:  How do I make Emacs "typeover" or "overwrite" instead of inserting?
1446   
1447   M-x overwrite-mode (a minor mode).
1448   
1449 46:  How do I stop Emacs from beeping on a terminal?
1450   
1451   Martin R. Frank <martin@cc.gatech.edu> writes:
1452   
1453     Tell Emacs to use the 'visible bell' instead of the audible bell, and
1454     set the visible bell to nothing.
1455   
1456     Put this in your TERMCAP environment variable:
1457   
1458       ... :vb=: ...                       
1459   
1460     And evaluate this:
1461   
1462       (setq visible-bell t)
1463   
1464 47:  How do I turn down the bell volume in Emacs running under X Windows?
1465   
1466   Under versions of Emacs before 18.58, the bell volume was annoying loud
1467   and difficult to turn off.  So upgrading to 18.58 or higher will reduce
1468   the volume.  If you want to turn it off completely, use `xset'.  There is
1469   no way to turn the bell off just for Emacs without affecting all other
1470   programs.
1471   
1472   Under Epoch you can do:
1473   
1474     (setq epoch::bell-volume 20)
1475   
1476   Stu Grossman <grossman@sunburn.stanford.edu> wrote a patch that allows the
1477   bell volume to be adjusted from inside Emacs just for Emacs.
1478   
1479 48:  How do I tell Emacs to automatically indent a new line to the
1480  indentation of the previous line?
1481   
1482   One solution is Indented Text Mode (M-x indented-text-mode).
1483   
1484   If you have Auto-Fill mode on (a minor mode, see question 32), you can
1485   tell Emacs to prefix every line with a certain character sequence, the
1486   "fill prefix".  Type the prefix at the beginning of a line, position point
1487   after it, and then type "C-x ." (set-fill-prefix) to set the fill prefix.
1488   Thereafter, auto-filling will automatically put the fill prefix at the
1489   beginning of new lines, and M-q (fill-paragraph) will maintain any fill
1490   prefix when refilling the paragraph.
1491   
1492   NOTE: If you have paragraphs with different levels of indentation, you
1493   will have to set the fill prefix to the correct value each time you move
1494   to a new paragraph.  To avoid this hassle, try one of the many packages
1495   available from the Emacs Lisp Archive.  Look up `fill' and `indent' in the
1496   Lisp Code Directory for guidance.
1497   
1498 49:  How do I show which parenthesis matches the one I'm looking at?
1499   
1500   If you're looking at a right parenthesis (or brace or bracket) you can
1501   delete it and reinsert it.  Emacs will blink the cursor on the matching
1502   parenthesis.
1503   
1504   M-C-f (forward-sexp) and M-C-b (backward-sexp) will skip over balanced
1505   parentheses, so you can see which parentheses match.  (You can train it to
1506   skip over balanced brackets and braces at the same time by modifying the
1507   syntax table.)
1508   
1509   Here is some Emacs Lisp that will make the % key show the matching
1510   parenthesis, like in vi.  In addition, if the cursor isn't over a
1511   parenthesis, it simply inserts a % like normal.
1512   
1513     ;; By an unknown contributor
1514   
1515     (global-set-key "%" 'match-paren)
1516   
1517     (defun match-paren (arg)
1518       "Go to the matching parenthesis if on parenthesis otherwise insert %."
1519       (interactive "p")
1520       (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1))
1521             ((looking-at "\\s\)") (forward-char 1) (backward-list 1))
1522             (t (self-insert-command (or arg 1)))))
1523   
1524 50:  In C mode, can I show just the lines that will be left after #ifdef
1525  commands are handled by the compiler?
1526   
1527   M-x hide-ifdef-mode.  (This is a minor mode.)
1528   
1529   You may have to (load "hideif") first.  If you want to do this regularly,
1530   put this in your .emacs file:
1531   
1532     (autoload 'hide-ifdef-mode "hideif" nil t)
1533   
1534   {Yes, I know, this should be in lisp/loaddefs.el already.}
1535   
1536 51:  Is there an equivalent to the `.' (dot) command of vi?
1537   
1538   (`.' is the redo command in vi.  It redoes the last insertion/deletion.)
1539   
1540   No, not really.
1541   
1542   You can type "C-x ESC" (repeat-complex-command) to reinvoke commands that
1543   used the minibuffer to get arguments.  In repeat-complex-command you can
1544   type M-p and M-n to scan through all the different complex commands you've
1545   typed.
1546   
1547   To repeat something on each line I recommend using keyboard macros.
1548   
1549 52:  What are the valid X resource settings (ie., stuff in .Xdefaults)?
1550   
1551   See the Emacs man page, or the etc/OPTIONS file.  Ignore the information
1552   in etc/XDOC which is way out of date.
1553   
1554 53:  How do I execute a piece of Emacs Lisp code?
1555   
1556   There are a number of ways to execute (called "evaluate") an Emacs Lisp
1557   "form":
1558   
1559   * If you want it evaluated every time you run Emacs, put it in a file
1560     named `.emacs' in your home directory.
1561   
1562   * You can type the form in the *scratch* buffer, and then type LFD (or
1563     C-j) after it.  The result of evaluating the form will be inserted in
1564     the buffer.
1565   
1566   * In Emacs-Lisp mode, typing M-C-x evaluates a top-level form before or
1567     around point.
1568   
1569   * Typing "C-x C-e" in any buffer evaluates the Lisp form immediately
1570     before point and prints its value in the echo area.
1571   
1572   * Typing M-ESC or M-x eval-expression allows you to type a Lisp form in
1573     the minibuffer which will be evaluated.
1574   
1575   * You can use M-x load-file to have Emacs evaluate all the Lisp forms in
1576     a file.  (To do this from Lisp use the function `load' instead.)
1577   
1578   These functions are also used for evaluating Lisp forms:
1579   
1580     load-library, eval-region, eval-current-buffer, require, autoload
1581   
1582 54:  How do I change Emacs's idea of the tab character's length?
1583   
1584   Example: (setq default-tab-width 10).
1585   
1586 55:  How do I insert `>' at the beginning of every line?
1587   
1588   Type "M-x replace-regexp RET ^ RET > RET".
1589   
1590   To do this only in the region, type "C-x n M-x replace-regexp RET ^ RET
1591   > RET C-x w".
1592   
1593   WARNING: The command narrow-to-region (C-x n) is disabled by default
1594   because it can be very confusing (ie., "Oh no!  Where did my file go?").
1595   
1596 56:  How do I insert `_^H' before each character in a paragraph to get an
1597  underlined paragraph?
1598   
1599   M-x underline-region.
1600   
1601 57:  How do I repeat a command as many times as possible?
1602   
1603   Use "C-x (" and "C-x )" to make a keyboard macro that invokes the command
1604   and then type "M-0 C-x e".
1605   
1606   WARNING: any messages your command prints in the echo area will be
1607   suppressed.
1608   
1609 58:  How do I make Emacs behave like this: when I go up or down, the cursor
1610  should stay in the same column even if the line is too short?
1611   
1612   M-x picture-mode.  (This is a minor mode, in theory anyway ...)
1613   
1614 59:  How do I tell Emacs to iconify itself?
1615   
1616   You need to modify C source and recompile.  Either that or get Epoch or
1617   Lucid Emacs instead.  Patches have been written by Robert Forsman
1618   <thoth@reef.cis.ufl.edu> and Johan Vromans <jv@mh.nl> to allow Emacs to
1619   iconify itself and by Matt Wette <mwette@mr-ed.jpl.nasa.gov> and
1620   Manavendra K. Thakur <thakur@zerkalo.harvard.edu> (for 18.57, plus icon
1621   geometry) to allow Emacs to start up iconified.  I don't know which of
1622   these patches work together.
1623   
1624   Anonymous FTP:
1625     /csi.jpl.nasa.gov:pub/emax.patch1  (Matt Wette)
1626     /ftp.eu.net:gnu/emacs/FP-Xfun.Z  (Johan Vromans)
1627     /ftp.urc.tue.nl:/pub/tex/emacs/FP-Xfun  (Johan Vromans)
1628   
1629 60:  How do I use regexps (regular expressions) in Emacs?
1630   
1631   See `Regexps' in the online manual.
1632   
1633   WARNING: The "or" operator is `\|', not `|', and the grouping operators
1634   are `\(' and `\)'.  Also, the string syntax for a backslash is "\\".
1635   Thus, the string syntax for a regular expression like xxx\(foo\|bar\) is
1636   "xxx\\(foo\\|bar\\)".  Notice the duplicated backslashes!
1637   
1638   WARNING: Unlike in Unix grep, sed, etc., a complement character set
1639   ([^...])  can match a newline character (LFD aka C-j aka \n), unless
1640   newline is mentioned as one of the characters not to match.
1641   
1642   WARNING: The character syntax regexps (eg. `\sw') are not meaningful
1643   inside character set regexps (eg. `[aeiou]').  (This is actually typical
1644   for regexp syntax.)
1645   
1646 61:  How do I perform a replace operation across more than one file?
1647   
1648   The "tags" feature of Emacs includes the command tags-query-replace which
1649   performs a query-replace across all the files mentioned in the TAGS file.
1650   See `Tags:Tags Search' in the online manual.
1651   
1652   In addition, Martin Boyer has written a package named global-replace which
1653   will perform a query-replace across all the files mentioned in the
1654   *compilation* buffer (usually done after a `grep'), which is available via
1655   anonymous FTP:
1656   
1657     /ireq-robot.hydro.qc.ca:pub/emacs/lisp/compile.el.Z
1658     /ireq-robot.hydro.qc.ca:pub/emacs/lisp/global-replace.el.Z
1659     /ireq-robot.hydro.qc.ca:pub/emacs/lisp/query.el.Z
1660   
1661 62:  Where is the documentation for `etags'?
1662   
1663   `etags' takes options just like a prior version of ctags, so your ctags
1664   manual (if any) may be useful.  Eoin Woods, in comp.emacs, writes the      !
1665   following:                                                                 !
1666                                                                              !
1667     From reading the source (!) the way I use it is:                         !
1668                                                                              !
1669       for f in `find <args>`                                                 !
1670       do                                                                     !
1671          etags -at -f ETAGS $f                                               !
1672       done                                                                   !
1673                                                                              !
1674     The "-t" option means to create tags for typedefs as well as functions.  !
1675     The "-a" option tells it to append to the output file. If you have a     !
1676     small number of files (up to a few hundred I think) you can use it       !
1677     direct as:                                                               !
1678                                                                              !
1679       etags -f ETAGS file1 file2 file3 ... filen                             !
1680                                                                              !
1681     The option list is:                                                      !
1682                                                                              !
1683             -f file -  Specify the output file name (Default is "TAGS")      !
1684             -a      -  Append to the output file. (Default is to rewrite it) !
1685             -t      -  Create tags for typedefs (default is just functions)  !
1686             -u      -  Update the output file. Do not re-create it.          !
1687             -w      -  Suppress warnings                                     !
1688             -v      -  Create vgrind style indexed output (What is vgrind??) !
1689             -x      -  Create cxref style output (default is Emacs Tags)     !
1690             -e      -  Emacs tags style output (the default the way I        !
1691                        compile it)                                           !
1692                                                                              !
1693     Having got it working, it works fine!                                    !
1694   
1697 Bugs/Problems
1699 63:  Does Emacs have problems with files larger than 8 megabytes?
1700   
1701   Most installed versions of GNU Emacs will use 24-bit signed integers (and
1702   24-bit pointers) internally.  This limits the file size that Emacs can
1703   handle to 8,388,607 bytes (2^23 - 1).
1704   
1705   Leonard N. Zubkoff <lnz@lucid.com> suggests putting the following two
1706   lines in src/config.h before compiling Emacs to allow for 26-bit integers
1707   and pointers (and thus filesizes of up to 33,554,431 bytes):
1708   
1709     #define VALBITS 26
1710     #define GCTYPEBITS 5
1711   
1712   WARNING: This method may result in `ILLEGAL DATATYPE' and other random
1713   errors on some machines.
1714   
1715   David Gillespie <daveg@csvax.cs.caltech.edu> gives an explanation of why
1716   Emacs uses 24 bit integers and pointers:
1717   
1718     Emacs is largely written in a dialect of Lisp; Lisp is a freely-typed
1719     language in the sense that you can put any value of any type into any
1720     variable, or return it from a function, and so on.  So each value must
1721     carry a "tag" along with it identifying what kind of thing it is, eg.,
1722     integer, pointer to a list, pointer to an editing buffer, and so on.
1723     Emacs uses standard 32-bit integers for data objects, taking the top 8
1724     bits for the tag and the bottom 24 bits for the value.  So integers (and
1725     pointers) are somewhat restricted compared to true C integers and
1726     pointers.
1727   
1728     Emacs uses 8-bit tags because that's a little faster on byte-oriented
1729     machines, but there are only really enough tags to require 6 bits.
1730   
1731 64:  Why can't Emacs find files in current directory on startup?
1732   
1733   The PWD bug has been fixed as of GNU Emacs 18.59.  Read on if you are
1734   running an older version of Emacs.
1736   Most likely, you have an environment variable named PWD that is set to a
1737   value other than the name of your current directory.  This is most
1738   likely caused by using two different shell programs.  `ksh' and (some
1739   versions of) `csh' set and maintain the value of the PWD environment
1740   variable, but `sh' doesn't.  If you start sh from ksh, change your
1741   current directory inside sh, and then start Emacs from inside sh, PWD
1742   will have the wrong value but Emacs will use this value.  An invalid
1743   setting for PWD can also be a problem if you use X Windows and csh on an
1744   RS/6000.  See the etc/OPTIONS file for more details.
1745   
1746   Perhaps an easier solution is not to use two shells.  The `chsh' program
1747   can often be used to change one's default login shell.
1748   
1749   You may have PWD set for other reasons.  Another possibility is that you
1750   are setting default-directory from your .emacs file.
1751   
1752   Here is a fix by Jim Blandy <jimb@occs.cs.oberlin.edu>:
1753   
1754     >--- emacs/jjj/emacs-18.58/lisp/startup.el  Tue Jan 15 23:19:04 1991
1755     >+++ startup.el     Mon Apr 20 00:21:01 1992
1756     >@@ -81,5 +81,7 @@
1757     >     ;; In presence of symlinks, switch to cleaner form of default directory.
1758     >     (if (and (not (eq system-type 'vax-vms))
1759     >-       (getenv "PWD"))
1760     >+       (getenv "PWD")
1761     >+       (equal (nthcdr 10 (file-attributes default-directory))
1762     >+              (nthcdr 10 (file-attributes (getenv "PWD")))))
1763     >   (setq default-directory (file-name-as-directory (getenv "PWD"))))
1764     >     (unwind-protect
1765   
1766 65:  How do I get rid of the ^M junk in my Shell buffer?
1767   
1768   For tcsh, put this in your `.cshrc' (or `.tcshrc') file:
1769   
1770     if ($?EMACS) then
1771         if ("$EMACS" == t) then
1772             if ($?tcsh) unset edit
1773             stty nl
1774         endif
1775     endif
1776   
1777   Or put this in your .emacs_tcsh file:
1778   
1779     unset edit
1780     stty nl
1781   
1782   Alternatively, use csh in your Shell buffers instead of tcsh.  One way
1783   is:
1784   
1785     (setq explicit-shell-file-name "/bin/csh") 
1786   
1787   and another is to do this in your .cshrc (or .tcshrc) file:
1788   
1789     setenv ESHELL /bin/csh
1790   
1791   (You must start Emacs over again with the environment variable properly
1792   set for this to take effect.)
1793   
1794 66:  Why do I get `Process shell exited abnormally with code 1'?
1795   
1796   The most likely reason for this message is that the `env' program is not
1797   properly installed.  This program should be compiled (for the correct
1798   architecture!) and installed with execute permission for everyone in
1799   Emacs's program directory, which is normally /usr/local/emacs/etc.  You
1800   can find what this directory is at your site by inspecting the value of
1801   the variable exec-directory by typing "C-h v exec-directory RET".  `env'
1802   should also be for the correct architecture (check using `file' command).
1803   
1804   You should also check for other programs named `env' in your path (eg.,
1805   SunOS has a program named /usr/bin/env).  I don't understand why this can
1806   cause a failure and I don't know a general solution for working around the
1807   problem in this case.
1808   
1809   The `make clean' command will remove `env' and other vital programs, so be
1810   careful when using it.
1811   
1812   It has been reported that this sometimes happened when Emacs was started
1813   as an X client from an xterm window (ie. had a controlling tty) but the
1814   xterm was later terminated.
1815   
1816   See also etc/PROBLEMS for other possible causes of this message.
1817   
1818 67:  Why can't I cut from Emacs and paste in other X programs?
1819   
1820   Emacs stores things you "cut" in the X "cut buffers".  It also pastes from
1821   the cut buffer `CUT_BUFFER0'.  This is obsolete.  Most modern X programs
1822   now expect to work with "selections" instead of cut buffers, although some
1823   like `xterm' will try to use the cut buffers if the selection is null.
1824   
1825   Emacs 18.58 contains a "fix" that makes xterm work by default.  This
1826   "fix" is that Emacs clears the `PRIMARY' selection when it stores
1827   something in the cut buffer.  By making the selection null, xterm will
1828   then fetch from the cut buffer when you try to paste.
1829   
1830   For versions of Emacs prior to 18.58, you can make pasting from Emacs into
1831   xterm work with the following X resources:
1832   
1833     ! Solution by Thomas Narten, should work under X11R3 and later GNU
1834     ! Emacs only copies to CUT_BUFFER0.  xterm by default wants to paste
1835     ! from the PRIMARY selection.
1836     XTerm*VT100.Translations: #override \
1837         ~Meta <Btn2Up>: insert-selection(CUT_BUFFER0,PRIMARY)
1838   
1839   You may have problems copying between Emacs and programs other than xterm
1840   that won't store cut text in the cut buffers or look in the cut buffers
1841   for text to paste (for backwards compatibility with obsolete applications
1842   like Emacs :-).  The best workaround is to use the `xcutsel' program as an
1843   intermediary.
1844   
1845   This problem does not exist for Epoch or Lucid Emacs.
1846   
1847 68:  Where is the termcap/terminfo entry for terminal type `emacs'?
1848   
1849   The termcap entry for terminal type `emacs' is ordinarily put in the
1850   TERMCAP environment variable of subshells.  It may help in certain
1851   situations (eg., using rlogin from shell buffer) to add an entry for
1852   `emacs' to the system-wide termcap file.  Here is a correct termcap entry
1853   for `emacs':
1854   
1855     emacs:tc=unknown:
1856   
1857   To make a terminfo entry for `emacs', use `tic' or `captoinfo'.  You need
1858   to generate /usr/lib/terminfo/e/emacs.  It may work to simply copy
1859   /usr/lib/terminfo/d/dumb to /usr/lib/terminfo/e/emacs.
1860   
1861   Having a termcap/terminfo entry will not enable the use of full screen
1862   programs in shell buffers.  Use M-x terminal-emulator for that instead.
1863   
1864   A workaround to the problem of missing termcap/terminfo entries is to
1865   change terminal type `emacs' to type `dumb' or `unknown' in your shell
1866   start up file.  `csh' users could put this in their .cshrc files:
1867   
1868     if ("$term" == emacs) set term=dumb
1869   
1870 69:  Why does Emacs spontaneously start displaying `I-search:' and beeping?
1871   
1872   Your terminal (or something between your terminal and the computer) is
1873   sending C-s and C-q for flow control, and Emacs is receiving these
1874   characters and interpreting them as commands.  (The C-s character normally
1875   invokes the isearch-forward command.)  For possible solutions, see
1876   question 131.
1877   
1878 70:  Why can't Emacs talk to certain hosts (or certain hostnames)?
1879   
1880   The problem may be that Emacs is linked with a wimpier version of
1881   gethostbyname than the rest of the programs on the machine.  This is often
1882   manifested as a message on startup of `X server not responding.  Check
1883   your DISPLAY environment variable.' or a message of `Unknown host' from
1884   open-network-stream.
1885   
1886   On a Sun, this may be because Emacs had to be linked with the static C
1887   library.  The version of gethostbyname in the static C library may only
1888   look in /etc/hosts and the NIS (YP) maps, while the version in the dynamic
1889   C library may be smart enough to check DNS in addition to or instead of
1890   NIS.  On a Motorola Delta running System V R3.6, the version of
1891   gethosbyname in the standard library works, but the one that works with
1892   NIS doesn't (the one you get with -linet).  Other operating systems have
1893   similar problems.
1894   
1895   Try these options:
1896   
1897   * Explicitly add the host you want to communicate with to /etc/hosts.
1898   
1899   * Relink Emacs with this line in src/config.h:
1900   
1901       #define LIBS_SYSTEM -lresolv
1902   
1903   * Replace gethostbyname and friends in libc.a with more useful versions
1904     such as the ones in libresolv.a.  Then relink Emacs.
1905   
1906   * If you are actually running NIS, make sure that `ypbind' is properly
1907     told to do DNS lookups with the correct command line switch.
1908   
1909   * Use tcp.el and tcp.c from GNUS.  This has the additional advantage that
1910     you can use numeric IP addresses instead of names.  open-network-stream
1911     currently can't handle numeric addresses.  Brian Thomson
1912     <thomson@hub.toronto.edu> has a enhancement to open-network-stream to
1913     allow it to handle numeric addresses.
1914   
1915 71:  Why does Emacs say `Error in init file'?
1916   
1917   An error occurred while loading either your .emacs file or the system-wide
1918   lisp/default.el file.  For information on how to debug your .emacs file,
1919   see question 29.
1920   
1921   It may be the case that you may need to load some package first, or use a
1922   hook that will be evaluated after the package is loaded.  A common case of
1923   this is explained in question 127.
1924   
1925 72:  Why does Emacs ignore my X resources (my .Xdefaults file)?
1926   
1927   * Try compiling Emacs with the XBACKWARDS macro defined.  There is a bug
1928     in some implementations of XGetDefault, which do not correspond to the
1929     documentation or the header files.
1930   
1931   * Make sure you are either using the class name of `Emacs' (oops,
1932     apparently this is buggy in Emacs 18.58!) or the correct instance name.
1933     The instance name is normally the same as the name of the file Emacs is
1934     in (ie., the last part of argv[0]), but this can be overridden by -rn
1935     command line option or the WM_RES_NAME environment variable.
1936   
1937     WARNING: Reports say using the class name fails in Emacs 18.58.
1938   
1939     WARNING: The advice the man page gives to use `emacs' is often wrong.
1940   
1941     WARNING: Older versions of Emacs got the class name wrong.
1942   
1943   * Emacs currently ignores the -xrm command line argument.
1944   
1945   * Emacs does not yet handle X11R5 screen-specific resources.
1946   
1947   * Emacs has a bug where it ignores color specifications if running on a
1948     1-bit display (ie. a non-color display).
1949   
1950   * I don't think Emacs will use either of the application-specific resource
1951     files.  Thus these environment variables don't affect it: XAPPLRESDIR,
1952     XUSERFILESEARCHPATH, XFILESEARCHPATH.  {Correct?}
1953   
1954 73:  Why does Emacs take 20 seconds to visit a file?
1955   
1956   The usual cause is that the master lock file, `!!!SuperLock!!!' has been
1957   left in the lock directory somehow.  Delete it.
1958   
1959   Mark Meuer <meuer@geom.umn.edu> says that NeXT NFS has a bug where an
1960   exclusive create succeeds but returns an error status.  This can cause the
1961   same problem.  Since Emacs's file locking doesn't work over NFS anyway,
1962   the best solution is to recompile Emacs with CLASH_DETECTION undefined.
1963   
1964 74:  How do I edit a file with a `$' in its name?
1965   
1966   When entering a filename in the minibuffer, Emacs will attempt to expand
1967   a `$' followed by a word as an environment variable.  To suppress this
1968   behavior, type "$$" instead.
1969   
1970 75:  Why does Shell mode lose track of the shell's current directory?
1971   
1972   Emacs has no way of knowing when the shell actually changes its directory.
1973   This is an intrinsic limitation of Unix.  So it tries to guess by
1974   recognizing `cd' commands.  If you type `cd' followed by a directory name
1975   with a variable reference (`cd $HOME/bin') or with a shell metacharacter
1976   (`cd ../lib*'), Emacs will fail to correctly guess the shell's new current
1977   directory.  A huge variety of fixes and enhancements to Shell mode for
1978   this problem have been written to handle this problem.  Check the Lisp
1979   Code Directory (see question 88).
1980   
1981 76:  Why doesn't my change to load-path work?
1982   
1983   If you added a directory name containing a tilde (~) to your load-path,
1984   expecting the tilde to be interpreted as your home directory, then you
1985   need to do something like this:
1986   
1987     (setq load-path (mapcar 'expand-file-name load-path))
1988   
1989 77:  Why does the cursor always go to the wrong column when I move up or
1990  down one line?
1991   
1992   You have inadvertently typed "C-x C-n" (set-goal-column) which sets the
1993   "goal column" to the column where the cursor was.  To undo this type
1994   "C-u C-x C-n".
1995   
1996   If you make this mistake frequently, you might want to unbind or disable
1997   this command by doing one of these two:
1998   
1999     (define-key ctl-x-map "\C-n" nil)
2000     (put 'set-goal-column 'disabled t)
2001   
2002 78:  Why does Emacs hang with message `Unknown XMenu error' with X11R4?
2003   
2004   Many different X errors can produce this message.  Here is the solution
2005   to one problem:
2006   
2007   X11 Release 4 (and later, including OpenWindows) enforces some conditions
2008   in the X protocol that were previously allowed to pass unnoticed.  You
2009   need to put the X11R4 server into X11R3 bug compatibility mode for Emacs's
2010   Xmenu code to work.  You can do this with the command `xset bc'.
2011   
2012 79:  Why doesn't display-time show the load average in the mode line
2013  anymore?
2014   
2015   In GNU Emacs 18.56, a change was made in the display-time code.
2016   Formerly, in version 18.55, Emacs used a program named `loadst' to
2017   notify Emacs of the change in time every minute.  loadst also sent Emacs
2018   the system load average if it was installed with sufficient privilege to
2019   get that information (or was on a system where no such privilege was
2020   needed).  Emacs then displayed this information in the mode line.
2021   
2022   In version 18.56, this code was changed to use a program named `wakeup'.
2023   wakeup doesn't send Emacs any information, it's only purpose is to send
2024   Emacs *something* every minute, thus invoking the filter function in
2025   Emacs once a minute.  The filter function in Emacs does all the work of
2026   finding the time, date, and load average.  However, getting the load
2027   average requires the privilege to read kernel memory on most systems.
2028   Since giving Emacs this privilege would destroy any security a system
2029   might have, for almost everyone this is not an option.  In addition,
2030   Emacs does not have the code built into it to get this information on
2031   the systems which have special system calls for this purpose, even
2032   though loadst had code for this.
2033   
2034   The solution I use is to get the files lisp/display-time.el and
2035   etc/loadst.c from version 18.55 and use those with 18.58.  (I have heard
2036   a rumor that loadst disappeared because of the legal action Unipress
2037   threatened against IBM.)
2038   
2039   WARNING:  Do not install Emacs setgid kmem unless you wish to destroy
2040   any security your system might have!!!!!!!!!!
2041   
2042   If you are using Emacs 18.55 or earlier, or already using the solution I
2043   describe above, read further:
2044   
2045   The most likely cause of the problem is that `loadst' can't read the
2046   special file /dev/kmem.  To properly install loadst, it should be either
2047   setuid to the owner of /dev/kmem, or is should be setgid to the group to
2048   which /dev/kmem belongs.  In either case, /dev/kmem should be readable by
2049   its owner or its group, respectively.  Assuming the existence of a group
2050   named `kmem', here is an example of how to do this:
2051   
2052     chgrp kmem /dev/kmem
2053     chmod g+r /dev/kmem
2054     chgrp kmem /usr/local/emacs/etc/loadst
2055     chmod g+s /usr/local/emacs/etc/loadst
2056   
2057   Another possibility is that your version of Unix doesn't have the load
2058   average data available in /dev/kmem.  Your version of Unix might have a
2059   special system call to retrieve this information (eg., inq_stats under
2060   UMAX), and loadst might not have been enhanced to cope with this.
2061   
2062 80:  Why does ispell sometimes ignore the local dictionary?
2063   
2064   You need to update the version of Ispell to 2.0.02.  (Or you can switch to
2065   version 3.0 which is still in beta-testing.)  A patch is available via
2066   anonymous FTP:
2068     /archive.cis.ohio-state.edu:pub/gnu/ispell/patch2.Z
2069   
2070   You also need to change a line in ispell.el from:
2071   
2072     (defconst ispell-version "2.0.01") ; Check against output of "ispell -v".
2073   
2074   to:
2075   
2076     (defconst ispell-version "2.0.02") ; Check against output of "ispell -v".
2077   
2078 81:  Why does Ispell treat each line as a single word?
2079   
2080   Ispell expects to get its input one word per line.  The ispell filter,
2081   which is specified by the variables ispell-filter-hook and
2082   ispell-filter-hook-args, should output at most one word per line.
2083   
2084 82:  Are there any security risks in GNU Emacs?
2085   
2086   * the `movemail' incident (No, this is not a risk.)
2087   
2088     Cliff Stoll in his book `The Cuckoo's Egg' describes this in chapter 4.
2089     The site at LBL had installed the `etc/movemail' program setuid root.
2090     Since `movemail' had not been designed for this situation, a security
2091     hole was created and users could get root privileges.
2092   
2093     `movemail' has since been changed so that even if it is installed setuid
2094     root this security hole will not be a result.
2095   
2096     I have heard unverified reports that the Internet worm took advantage of
2097     this configuration problem.
2098   
2099   * the file-local-variable feature (Yes, a risk, but easy to change.)
2100   
2101     There is an Emacs feature that allows the setting of local values for
2102     variables when editing a file by including specially formatted text near
2103     the end of the file.  This feature also includes the ability to have
2104     arbitrary Emacs Lisp code evaluated when the file is visited.
2105     Obviously, there is a potential for Trojan horses to exploit this
2106     feature.
2107   
2108     If you set the variable inhibit-local-variables to a non-nil value,
2109     Emacs will display the special local variable settings of a file that
2110     you visit and ask you if you really want them.  This variable is not
2111     mentioned in the manual.
2112   
2113     It is wise to do this in lisp/site-init.el before building Emacs:
2114   
2115       (setq inhibit-local-variables t)
2116   
2117     If Emacs has already been built, the expression can be put in
2118     lisp/default.el instead, or an individual can put it in their own .emacs
2119     file.
2120   
2121     The ability to exploit this feature by sending e-mail to an RMAIL user
2122     was fixed sometime after Emacs 18.52.  However, any new package that
2123     uses find-file or find-file-noselect has to be careful about this.
2124   
2125     For more information, see `File Variables' in the online manual (which,
2126     incidentally, does not describe how to disable the feature).
2127   
2128     There is a new variable in Emacs 18.58 named ignore-local-eval which
2129     turns out to be useless as currently implemented.  Ignore it.
2130   
2131   * synthetic X events (Yes, a risk, use MIT-MAGIC-COOKIE-1 or better.)
2132   
2133     Emacs accepts synthetic X events generated by the SendEvent request as
2134     though they were regular events.  As a result, if you are using the
2135     trivial host-based authentication, other users who can open X
2136     connections to your X workstation can make your Emacs process do
2137     anything, including run other processes with your privileges.
2138   
2139     The only fix for this is to prevent other users from being able to open
2140     X connections.  The standard way to prevent this is to use a real
2141     authentication mechanism, such as MIT-MAGIC-COOKIE-1.  If using the
2142     `xauth' program has any effect, then you are probably using
2143     MIT-MAGIC-COOKIE-1.  Your site may be using a superior authentication
2144     method; ask your system administrator.
2145   
2146     If real authentication is not a possibility, you may be satisfied by
2147     just allowing hosts access for brief intervals while you start your X
2148     programs, then removing the access.  This reduces the risk somewhat by
2149     narrowing the time window when hostile users would have access, but DOES
2150     NOT ELIMINATE THE RISK.
2151   
2152     Lucid GNU Emacs does not accept synthetic X events unless you set a
2153     variable.
2154   
2155   * autosave file permissions (Yes, a risk, hard to work around.)
2156   
2157     The file permissions for autosave files are determined solely by the
2158     Emacs process's `umask' value.  The permissions of the file being
2159     autosaved are not used.  The easiest workaround is to keep sensitive
2160     files in protected directories.  Sebastian Kremer has written an
2161     enhanced version of the autosave file name picking code that can avoid
2162     this problem by keeping autosave files in a protected directory.  {FTP
2163     information please?}  This problem will be fixed in Emacs 19.
2164   
2167 Difficulties Building/Installing/Porting Emacs
2169 83:  What should I do if I have trouble building Emacs?
2170   
2171   First look in the file etc/PROBLEMS to see if there is already a solution
2172   for your problem.  Next check the FAQ (you're reading it).  If you don't
2173   find a solution, then report your problem via e-mail to
2174   bug-gnu-emacs@prep.ai.mit.edu.  Please do not post it to gnu.emacs.help or
2175   e-mail it to help-gnu-emacs@prep.ai.mit.edu.  For further guidelines, see
2176   question 8.
2177   
2178 84:  How do I stop Emacs from failing when the executable is stripped?
2179   
2180   Don't do that.
2181   
2182   This problem has been reported on SGI Indigo machines running Irix 4.0.*
2183   and RS/6000 machines.  Scott Henry <scotth@hoshi.corp.SGi.COM> posted a
2184   patch that fixes the problem for Irix.
2185   
2186 85:  Why does linking Emacs with -lX11 fail?
2187   
2188   Emacs needs to be linked with the static version of the X11 library,
2189   libX11.a.  This may be missing.
2190   
2191   Under OpenWindows, you may need to use `add_services' to add the
2192   `OpenWindows Programmers' optional software category from the CD-ROM.
2193   
2194   Under HP-UX 8.0, you may need to run `update' again to load the
2195   X11-PRG `fileset'.  This may be missing even if you specified `all
2196   filesets' the first time.  If libcurses.a is missing, you may need to load
2197   the `Berkeley Development Option' {???}.
2198   
2199   If you are building the MIT X11 sources, you may need to modify your
2200   `site.cf' file to get static versions of the libraries.  (Info from David
2201   Zuhn <zoo@cygnus.com>.)
2202   
2203   Other systems may have similar problems.  You can always define
2204   CANNOT_DUMP and link with the shared libraries instead.
2205   
2206   To get the Xmenu stuff to work, you need to find a copy of MIT's
2207   liboldX.a.
2208   
2209 86:  Why does Emacs 18.55 say `Fatal error (6).Abort' under SunOS 4.1?
2210   
2211   I had hoped this question would go away after Emacs 18.57 was released,
2212   but people continue to compile 18.55.  Easiest solution: upgrade.
2213   
2214   This is a result of the SunOS localtime/tzsetwall malloc bug, which was
2215   (finally!) fixed in SunOS 4.1.2.  If you actually need the full
2216   explanation, send me e-mail.  If you absolutely must compile Emacs 18.55
2217   (eg., you are compiling Nemacs), the easiest workaround was to put
2218   `#define SYSTEM_MALLOC' in src/config.h.
2219   
2222                   GNU Emacs FAQ: Getting Emacs/Packages
2224 If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to
2225 get an overview of just the questions.  Then, when you want to look at the text
2226 of the answers, just type "C-x $".
2228 To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if
2229 that doesn't work, then type ESC to end the search.
2231 A `+' in the 78th column means something was inserted on the line.  A `-' means
2232 something was deleted and a `!' means some combination of insertions and
2233 deletions occurred.
2235 Full instructions for getting the latest FAQ are in question 22.  Also see the
2236 `Introduction to news.answers' posting in the `news.answers' newsgroup, or send
2237 e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
2238 WAIS, or Prospero to rtfm.mit.edu.
2242 Finding/Getting Emacs and Related Packages
2244 87:  Where can I get GNU Emacs on the net (or by snail mail)?
2245   
2246   Look in the files etc/DISTRIB and etc/FTP for information on nearby
2247   archive sites.  If you don't already have GNU Emacs, see question 20
2248   for how to get these two files.
2249   
2250   The latest version is always available via anonymous FTP at MIT:
2251   
2252     /prep.ai.mit.edu:pub/gnu/emacs-18.59.tar.Z
2253   
2254   See question 91.
2255   
2256 88:  How do I find a GNU Emacs Lisp package that does XXX?
2257   
2258   A listing of Emacs Lisp packages, called the Lisp Code Directory, is being
2259   maintained by Dave Brennan <brennan@hal.com> and Dave Sill <de5@ornl.gov>.
2260   You can search through this list to find if someone has written something
2261   that fits your needs.
2262   
2263   This list is file LCD-datafile.Z in the Emacs Lisp Archive.  (See
2264   question 89 for methods for getting this file.)  The files lispdir.el.Z
2265   and lispdir.doc.Z in the archive contain information to help you use the
2266   list.  Once you have installed lispdir.el and LCD-datafile, then you can
2267   use the "M-x lisp-dir-apropos" command to look things up in the database.
2268   For example, the command "M-x lisp-dir-apropos RET ange-ftp RET" produces
2269   this (outdated) output:
2270   
2271                     GNU Emacs Lisp Code Apropos -- "ange-ftp"
2272   
2273     ange-ftp (3.112)  91-08-12
2274       Andy Norman, <ange@hplb.hpl.hp.com>
2275       archive.cis.ohio-state.edu:
2276         /pub/gnu/emacs/elisp-archive/as-is/ange-ftp.el.Z
2277       transparent FTP Support for GNU Emacs
2278   
2279 89:  Where can I get GNU Emacs Lisp packages that don't come with Emacs?
2280   
2281   First, check the Lisp Code Directory to find the name of the package you
2282   are looking for.  (See question 88).  Then check local archives and
2283   the Emacs Lisp Archive to find a copy of the relevant files.  Then, if
2284   you still haven't found it, you can send e-mail to the author asking for
2285   a copy.
2286   
2287   You can access the Emacs Lisp Archive via anonymous FTP:
2288   
2289     /archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/
2290   
2291   Fetch the file README first.
2292   
2293   NOTE: The archive maintainers do not have time to answer individual
2294   requests for packages or the list of packages in the archive.  If you
2295   cannot use FTP or UUCP to access the archive yourself, try to find a
2296   friend who can, but please don't ask the maintainers.
2297   
2298   NOTE: Any files with names ending in `.Z' are compressed, and you should
2299   use `binary' mode in FTP to retrieve them.  You should also use binary
2300   mode whenever you retrieve any files with names ending in `.elc'.
2301   
2302 90:  How do I submit code to the Emacs Lisp Archive?
2303   
2304   Submissions should be mailed to elisp-archive@cis.ohio-state.edu.  The
2305   lispdir.el package has a function named submit-lcd-entry which will help
2306   you with this.  Mail messages (submissions) are automatically saved and
2307   periodically archived.  Urgent mail may be sent directly to Dave Sill
2308   <de5@ornl.gov> or Dave Brennan <brennan@hal.com> or should contain the
2309   string `urgent' in the subject.  The incoming ftp directory is no longer
2310   available at the request of Ohio State.  {Is this still true?}
2311   
2312   However, if someone has a submission with multiple files (which would be
2313   archived as a tar file) or binary files, then FTP transfer is preferred
2314   and can be arranged via an anonymous FTP site.  This is faster than
2315   uudecoding, unsharing, etc., and re-packaging files.
2316   
2317   Before submitting anything, please read the file guidelines.Z, which is
2318   available in the archive.  Whenever possible, submissions should contain a
2319   complete LCD entry since this helps reduce administrative overhead for the
2320   maintainers.  You can include an entry in this format:
2321   
2322     ;; LCD Archive Entry:
2323     ;; package name|author's name|email address
2324     ;; |description
2325     ;; |date|version|archive path
2326   
2327   For example:
2328   
2329     ;; LCD Archive Entry:
2330     ;; tex-complete|Sebastian Kremer|sk@thp.Uni-Koeln.DE
2331     ;; |Minibuffer name completion for editing [La]TeX.
2332     ;; |91-03-26|$Revision: 1.5 $|~/packages/tex-complete.el.Z              !
2333   
2334   Dave Brennan has software which automatically looks for data in this
2335   format.  The format is fairly flexible.  The entry ends when a line is
2336   reached with a different prefix or the seventh field terminator is
2337   seen.
2338   
2339   If you are submitting a multi-file submission you should include a file
2340   named "LCD-entry" which contains the archive entry, instead of placing
2341   it in one or more of the individual files.
2342   
2343 91:  Where can I get other up-to-date GNU stuff?
2344   
2345   The most up-to-date official GNU stuff is normally kept on prep.ai.mit.edu
2346   and is available for anonymous FTP in the pub/gnu directory.  See the
2347   files etc/DISTRIB and etc/FTP for more information.  (To get copies of
2348   these files, see question 20.)
2349   
2350   The following sites are all mirror images of the GNU distribution area:
2351   
2352     /prep.ai.mit.edu:pub/gnu/
2353     /ftp.uu.net:packages/gnu/
2354     /src.doc.ic.ac.uk:gnu/ (available via FTP, NIFTP, FTAM)
2355     /ftp.win.tue.nl:pub/gnu/
2356     /utsun.s.u-tokyo.ac.jp:ftpsync/prep/
2357     /nic.funet.fi:pub/gnu/
2358   
2359   The directory at ftp.uu.net is a mirror of prep.ai.mit.edu:pub/gnu,
2360   except that files larger than 1 megabyte {right?} are automatically
2361   split into multiple parts.  If you have trouble transferring large
2362   files, you should try here.  A file normally named `XXX' is split into
2363   files XXX-split/part[0-9][0-9], and there will be a file named
2364   XXX-split/README which contains the list of parts (especially helpful
2365   when FTP-ing by e-mail), their checksums, and reassembly instructions.
2366   Some of the other mirror sites may have the same property.  {Can someone
2367   check this out?  Thanks!}
2368   
2369   Information was provided by Lee McLoughlin <lmjm@doc.ic.ac.uk>, Jonathan
2370   R. Ferro <jf41+@ANDREW.CMU.EDU>, Arjan de Vet <devet@win.tue.nl>, and
2371   Simon Marshall <S.Marshall@sequent.cc.hull.ac.uk>.
2372   
2373 92:  Where can I get an Emacs with better mouse and X window support?
2374   
2375   Emacs 18 has some limited X Window System support, but there are
2376   problems.  Emacs 19 will have amazing mouse and window support.  Right
2377   now, there are Epoch which is derived from GNU Emacs 18.58 and Lucid GNU
2378   Emacs which is derived from an early unreleased version of GNU Emacs 19,
2379   both of which have greatly improved mouse and window support.  See
2380   questions 120 and 121.
2381   
2382   The HP unofficial GNU Emacs also has nice mouse support.  See question
2383   95.
2384   
2385   There are numerous Emacs Lisp packages that have been written to extend
2386   Emacs 18's mouse handling capabilities.  Some of these packages also have
2387   patches to the C code to provide enhanced capabilities.  Look up `mouse'
2388   in the Lisp Code Directory (see question 88).
2389   
2390   There is a package called BAM (Born Again Menus) which provides menus for
2391   GNU Emacs via an external C program.  It does not provide mouse support in
2392   the Emacs window such as scrollbars, cut-and-paste, etc.
2393   
2394   NOTE: Epoch only works with the X Window System; it works on ordinary
2395   terminals by invoking regular GNU Emacs.  Lucid Emacs does not currently
2396   work on ordinary terminals, although there are plans to fix this.
2397   
2398 93:  What is the difference between GNU Emacs and Epoch?
2399   
2400   Marc Andreessen <marca@ncsa.uiuc.edu> writes:
2401   
2402     Epoch is GNU Emacs on steroids: an adaptation of GNU Emacs with lots of
2403     additional support for features made possible by the X11 windowing
2404     system.  These features include multiple editing windows, arbitrary
2405     colors and fonts (fixed-width and proportional), selectable zones per
2406     buffer with arbitrary display styles (font, color, underline, stipple,
2407     pixmap), an optional separate minibuffer window, improved keyboard and
2408     mouse handling, full 8-bit character set support, and more.
2409   
2410 94:  What is the difference between GNU Emacs and Lucid GNU Emacs?
2411   
2412   This information is condensed from the release notice:
2413   
2414     Lucid GNU Emacs is based on an early version of GNU Emacs version 19
2415     with many enhancements.  It currently requires X Windows to run.  For
2416     information on where to get Lucid GNU Emacs see 121.  X Windows support
2417     is greatly enhanced over GNU Emacs version 18, including support for
2418     multiple X Windows (a.k.a. screens in Emacs), Zmacs/Lispm style region
2419     highlighting, a customizable, Motif-like menubar, more powerful keymap
2420     support (allowing different actions to be associated with Backspace,
2421     Control-h, etc.), flexible text attribute (e.g. font, color) support on
2422     regional and screen-local basis through X resources and/or lisp, and
2423     support for the X11 selection mechanism.  Some other features include
2424     run-time computation of the load-path, support for floating point
2425     numbers, native timer support, and sound file support on Sun
2426     SPARCstations.  To build Lucid GNU Emacs, an ANSI C compiler (e.g. gcc)
2427     is required.
2428   
2429 95:  Where can I get the "unofficial HP GNU Emacs"?
2430   
2431   The unofficial HP GNU Emacs is available via anonymous FTP:
2432   
2433     /ee.utah.edu:HUGE/  (PLEASE FTP DURING NON-WORK HOURS!!!)
2434   
2435   and takes about 35 megabytes of disk space to build.  It is useful for
2436   non-HP machines, but some of the added features will only work under
2437   HP-UX.
2438   
2439   You will need to get patches to work with HP-UX 8.0 or on 700 series
2440   machines via e-mail from Darryl Okahata <darrylo@sr.hp.com>.
2441   
2442 96:  Where can I get Emacs for my PC running MS-DOS?
2443   
2444   * Demacs
2445   
2446     For 386 or 486 PCs running MS-DOS, there is a version of GNU Emacs
2447     called Demacs.  To get Demacs see question 122.
2448   
2449     From the announcement message:
2450   
2451       Demacs is almost a full set of GNU Emacs but does not support some
2452       features: asynchronous process, locking a file, etc.
2453   
2454       Demacs provides following DOS specific features:
2455   
2456         * File type: text or binary file translation.
2457         * "8-bit clean" display mode.
2458         * 8086 software interrupt call by int86 lisp function.
2459         * Machine specific features such as function key support.
2460         * File name completion with drive name.
2461         * Child process (suspend-emacs, call-process).
2462         * Enhanced dired mode which can work without 'ls.exe'.
2463   
2464       To our regret `shell-mode' does not work, but `compile' command works
2465       properly.
2466   
2467     Demacs was developed using an MS-DOS version of gcc called djgpp by
2468     D. J. Delorie <dj@ctron.com> which can compile and run large programs
2469     under MS-DOS, but not under MS Windows.  Demacs was derived from Nemacs
2470     rather than straight from GNU Emacs.
2471   
2472   There are a variety of other Emacses for MS-DOS including among them the
2473   following.
2474   
2475   * Freemacs
2476   
2477     Russ Nelson <nelson@sun.soe.clarkson.edu>, the author, describes
2478     Freemacs:
2479   
2480       * Freemacs is free, and it was designed from the start to be
2481         programmable.
2482       * Freemacs is the only IBM-PC editor that tries to be like GNU Emacs.
2483       * Freemacs can only edit files less than 64K in length.
2484       * Freemacs doesn't have undo.
2485   
2486     Carl Witty <cwitty@cs.stanford.edu> reviews Freemacs:
2487   
2488       Better is Freemacs, which follows the tradition of ITS and GNU Emacs
2489       by having an full, turing-complete extension language which is
2490       incompatible with everything else.  In fact, it's even closer to ITS
2491       Emacs than GNU Emacs is, because Mint (Freemacs' extension language)
2492       is absolutely illegible without weeks of study, much like TECO.
2493   
2494     To get Freemacs see question 123.
2495   
2496   * MicroEmacs
2497   
2498     MicroEmacs is a descendant of Microemacs {originally by Dave Conroy?}.
2499     It is programmable in a BASIC-like language.  Many of the keybindings
2500     are different from GNU Emacs.  The author is Daniel Lawrence             -
2501     <dan@mdbs.uucp, mdbs!dan@ee.ecn.purdue.edu>.  The latest version is 3.12 !
2502     and it is available via anonymous FTP:
2503   
2504       /midas.mgmt.purdue.edu:dist/uemacs312/   (outside business hours)      !
2505                                                                              !
2506     Version 3.12 includes Windows and Windows NT versions and a DOS          !
2507     protected mode (DMPI) version.                                           !
2509   * JOVE
2510   
2511     Another Emacs for small machines is JOVE (Jonathan's Own Version of
2512     Emacs).  The latest official version is 4.14.  There appears to be a
2513     newer version.  People rumored to be working on JOVE include Mark Moraes
2514     <moraes@cs.toronto.edu> and Bill Marsh <bmarsh@cod.nosc.mil>.  It is
2515     available via anonymous FTP:
2516   
2517       /cs.toronto.edu:/pub/moraes/jove4.14.7.tar.Z
2518   
2519   * MG
2520   
2521     MG is another descendant of Microemacs.  MG used to stand for
2522     MicroGNUEmacs, but now just stands for MG.  The look-and-feel of MG is
2523     intended to be close to that of GNU Emacs.  It is rumored that MG can
2524     not correctly edit files larger than memory.  The current version is
2525     rumored to be 2.  There is a version 3 in beta which works on the Amiga.
2526     It is also available via anonymous FTP:
2527   
2528       /ftp.white.toronto.edu:pub/mg/
2529       /wuarchive.wustl.edu:/mirrors/unix-c/editors/
2530       /procyon.cis.ksu.edu:  (source and executable)
2531   
2532 97:  Where can I get Emacs for my PC running Windows?
2533   
2534   I believe that no version of GNU Emacs runs under Windows.  Pierre Perret
2535   <pap@myths.az05.bull.com> has ported MicroEMACS 3.11c to Windows.
2536   
2537   Anonymous FTP:
2538     /ftp.cica.indiana.edu:pub/pc/win3/util/mewin10.zip
2539     /ftp.cica.indiana.edu:pub/pc/win3/util/mewin10s.zip
2540     /ftp.cica.indiana.edu:pub/pc/win3/util/mewri.zip
2541   
2542 98:  Where can I get Emacs for my PC running OS/2?
2543   
2544   From the OS/2 Programmer's FAQ:
2545   
2546     GNU Emacs 18.58 is available.  It requires you to have EMX installed
2547     on your machine, but it comes with all the EMX files you will need.
2548     Emacs is available on ftp-os2 in /pub/os2/2.0/gnu/emacs.  (If you want
2549     to recompile emacs, you will need the full EMX distribution see
2550     question 1.2.)
2551   
2552   The above quote may be out of date.  See the latest OS/2 Programmer's FAQ
2553   {perhaps in comp.os.os2.misc?} for the latest news.  Anonymous FTP info:
2554   
2555     /ftp-os2.nmsu.edu:pub/os2/2.0/gnu/emacs/
2556       ("ftp-os2" was formerly named "hobbes")
2557   
2558   Thanks go to Stephen Simpson <simpson@symcom.math.uiuc.edu>, Jonathan
2559   Miller <jem+@andrew.cmu.edu>, Terry Kane <terryk@cc.gatech.edu>, J. D.
2560   Baldwin <baldwin@csservera.usna.navy.mil>, and Ken Bass
2561   <kbass@gmuvax2.gmu.edu>.
2562   
2563 99:  Where can I get Emacs for my Atari ST?
2564   
2565   Emacs 18.57 is the latest version for TOS.  Stefan Mueller-Pfeiffer
2566   <iff327@zam001.zam.kfa-juelich.de> says:
2567   
2568     There is also a version for MiNT, the multitasking enhancement for
2569     ATARI's TOS, which behaves almost like EMACS on a "real computer".  This
2570     port was done by Erling Henanger <erlingh@idt.unit.no>.
2571   
2572   Anonymous FTP:
2573     /atari.archive.umich.edu:atari/gnustuff/tos/  (TOS Emacs 18.57)
2574     /atari.archive.umich.edu:atari/new/mntemacs.zoo  (MiNT Emacs)
2575     /cs.uni-sb.de:/pub/atari/emacs/
2576   
2577 100: Where can I get Emacs for my Amiga?
2578   
2579   All of the files are lharc-ed.
2580   
2581   Anonymous FTP:
2582     /oes.orst.edu:/pub/almanac/comp/amiga/software/gnuemacs-1.10/
2583   
2584   Via e-mail:
2585     To: almanac@oes.orst.edu
2586     body:
2587       mode uuencode
2588       send computer amiga software gnuemacs <file>
2589     <file> is replaced by one of the following:
2590       Required: d1.lzh d2.lzh
2591       Recommended: d3_info.lzh d3_infolisp.lzh
2592       Optional: d3_autoloaded.lzh d3_entertainmentetc.lzh
2593         d3_entertainmentlisp.lzh d4_src.lzh d5_languagelisp.lzh
2594         d5_viclone.lzh d6_gnulibsrc.lzh d6_mailpackage.lzh
2595         d6_mathpackage.lzh d6_misc.lzh d6_textformat.lzh
2596     The `d#' at the beginning of each file is its disk number, which is
2597     referred to by the documentation.
2598   
2599 101: Where can I get Emacs for my Apple computer?
2600   
2601   The FSF is a participant in a boycott of Apple because of Apple's "look
2602   and feel" copyright suits.  See the file etc/APPLE for more details.
2603   Because of this boycott, the FSF doesn't include support in GNU software
2604   for Apple computers such as the Macintosh.
2605   
2606   Please don't help people port or develop software for Apple computers.
2607   
2608 102: Where can I get Emacs with NeWS support?
2609   
2610   Chris Maio's NeWS support package for GNU Emacs is available via anonymous
2611   FTP:
2612   
2613     /columbia.edu:pub/ps-emacs.tar.Z
2614     /archive.cis.ohio-state.edu:pub/gnu/emacs/ps-emacs.tar.Z
2615   
2616   and via e-mail:
2617   
2618     To: archive-server@columbia.edu
2619     body: send NeWS emacs-support
2620   
2621 103: Where do I get Emacs that runs on VMS under DECwindows?
2622   
2623   Hal R. Brand <BRAND@addvax.llnl.gov> is said to have a VMS save set with a
2624   ready-to-run VMS version of Emacs 18.55 for X Windows.  It is available
2625   via anonymous FTP (addvax.llnl.gov).  It is possible that the VMS versions
2626   of Emacs at other sites have X support compiled in.  See etc/FTP for
2627   locations.
2628   
2629   Johan Vromans <jv@mh.nl> writes:
2630   
2631     Getting Emacs to run on VMS with DECwindows requires a number of changes
2632     to the sources. Fortunately this has been done already.  Joshua Marantz
2633     <josh@viewlogic.com> did most of the work for Emacs 18.52, and the mods
2634     were ported to 18.55 by Johan Vromans <jv@mh.nl>. Also included is the
2635     handling of DEC's LK201 keyboard.  You need to apply the changes to a
2636     fresh Emacs 18.55 distribution on a Unix system, and then you can copy
2637     the sources to VMS to perform the compile/link/build.
2638   
2639     The set of changes have been posted a number of times three times the
2640     last 12 months, so they should be widely available.
2641   
2642   Richard Levitte <levitte@e.kth.se> tells us that there are patches for
2643   Emacs 18.57, 18.58, and 18.59 available via e-mail:                        !
2644   
2645     To: EMACS-FILESERV@e.kth.se                                              !
2646     body: SEND EMACS-1857-PATCHES
2647       or: SEND EMACS-1858-PATCHES
2648       or: SEND EMACS-1859-PATCHES                                            +
2649                                                                              +
2650   or via anonymous ftp at:                                                   +
2651                                                                              +
2652       /lucy.merrimack.edu:emacs-1859-patches.share                           +
2653                                                                              +
2654   The set of patches weighs in at around 2.7 MB.                             +
2656 104: Where can I get modes for Lex, Yacc/Bison, Bourne Shell, Csh, C++,
2657  Objective C, Pascal, Awk?
2658   
2659   As usual, look in the Lisp Code Directory (see question 88).  For C++,
2660   if you use lisp-dir-apropos, you must specify the pattern like this:
2661   
2662     M-x lisp-dir-apropos RET c\+\+ RET
2663   
2664 105: What is the IP address of XXX.YYY.ZZZ?
2665   
2666   If you are at a site with a deficient nameserver, you may need to know
2667   the IP address of a host to FTP files from it.  You can get this
2668   information in two ways:
2669   
2670   * By telnet:
2671   
2672       telnet nic.ddn.mil hostnames (or `telnet 192.112.36.5 101')
2673       hname XXX.YYY.ZZZ
2674   
2675   * By e-mail:
2676   
2677       To: service@nic.ddn.mil
2678       Subject: host XXX.YYY.ZZZ
2679            or: whois XXX.YYY.ZZZ
2680            or: help
2681   
2682     or:
2683   
2684       To: resolve@cs.widener.edu
2685       body: site XXX.YYY.ZZZ
2686   
2687     Information from Brendan Kehoe <brendan@cs.widener.edu>.
2688   
2692 Major Emacs Lisp Packages, Emacs Extensions, and Related Programs
2694   This section lists version numbers, FTP sites, mailing lists, newsgroups,
2695   and other information for many important packages, extensions, and related
2696   programs.  There is some overlap with the Lisp Code Directory, but these
2697   entries give more detailed information.
2698   
2699   If you know of any other packages that are so substantial that they
2700   deserve to be mentioned here, please tell me.  Having its own mailing list
2701   or newsgroup or more than half a megabyte of source code are good signs.
2702   
2703 106: VM (View Mail) -- another mail reader within Emacs
2704   
2705   Author: Kyle Jones <kyle@uunet.uu.net>
2706   Latest released version: 4.41
2707   Beta test version: 5.32
2708   Anonymous FTP:
2709     /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/vm-4.41.tar.Z
2710     /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/as-is/timer.shar.Z
2711     /ftp.uu.net:mail/vm-4.41.tar.Z
2712     /ftp.uu.net:mail/vm-5.32beta.tar.Z
2713   Newsgroups and mailing lists:
2714     Info-VM:
2715       gnu.emacs.vm.info
2716       info-vm-request@uunet.uu.net (for subscriptions)
2717       info-vm@uunet.uu.net (for submissions)
2718     Bug-VM:
2719       gnu.emacs.vm.bug
2720       bug-vm-request@uunet.uu.net (for subscriptions)
2721       bug-vm@uunet.uu.net (for submissions)
2722   
2723 107: Supercite -- mail and news citation package within Emacs
2724   
2725   Author: Barry Warsaw <bwarsaw@cen.com>
2726   Mailing list: supercite-request@anthem.nlm.nih.gov (for subscriptions)
2727                 supercite@anthem.nlm.nih.gov (for submissions)
2728   Latest version: 2.3                                                        !
2729   Anonymous FTP:
2730     /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/sc-2.3.tar.Z !
2731     /ftp.cme.nist.gov:pub/gnu/sc2.3.tar.Z                                    !
2732   Via e-mail:
2733     To: library@cme.nist.gov
2734     Subject: help
2735   NOTE: Superyank is an old version of Supercite.
2736   
2737 108: GNUS -- news reader within Emacs
2738   
2739   Author: Masanobu Umeda <umerin@mse.kyutech.ac.jp>
2740   Latest official version: 3.13
2741   Unofficial test version: 3.14.1
2742   Anonymous FTP:
2743     /aun.uninett.no:pub/gnus-3.14.1.tar.Z                                    -
2744     /wnoc-fuk.wide.ad.jp:pub/GNU/etc/gnus-3.14.1.tar.Z
2745     /liasun3.epfl.ch:pub/gnu/emacs/gnus-3.14.1.tar.Z
2746     /aix370.rrz.uni-koeln.de:/pub/gnu/emacs/gnus-3.14.1.tar.Z
2747     /funet.fi:/networking/news/gnus-3.14.1.tar.Z
2748     /src.doc.ic.ac.uk:/gnu/EmacsBits/gnus/gnus-3.14.1.tar.Z
2749     /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/gnus-3.13.tar.Z
2750   Newsgroups and mailing lists:
2751     English-only:    
2752       gnu.emacs.gnus
2753       info-gnus-english-request@cis.ohio-state.edu (for subscriptions)
2754       info-gnus-english@cis.ohio-state.edu (for submissions)
2755     Japanese (and some English):
2756       info-gnus-request@flab.fujitsu.co.jp (for subscriptions)
2757       info-gnus@flab.fujitsu.co.jp (for submissions)
2758   
2759 109: Calc -- poor man's Mathematica within Emacs
2760   
2761   Author: Dave Gillespie <daveg@csvax.cs.caltech.edu>
2762   Latest released version: 2.02
2763   Anonymous FTP:
2764     /csvax.cs.caltech.edu:pub/calc-2.02.tar.Z
2765     /prep.ai.mit.edu:pub/gnu/calc-2.02.tar.Z
2766   NOTE: Unlike Wolfram Research, Dave has never threatened to sue anyone
2767     for having a program with a similar command language to Calc.  :-)
2768   
2769 110: Calendar/Diary -- calendar manager within Emacs
2770   
2771   Author: Edward M. Reingold <reingold@cs.uiuc.edu>
2772   Latest version: 4.02
2773   Anonymous FTP:
2774     /emr.cs.uiuc.edu:pub/emacs/calendar {???}
2775   Via e-mail:
2776     To: reingold@cs.uiuc.edu
2777     Subject: send-emacs-cal
2778     Put your best internet e-mail address in the body.
2779   
2780 111: Ange-FTP -- transparent FTP access for Emacs's file access routines
2781   
2782   Author: Andy Norman <ange@hplb.hpl.hp.com>
2783   Latest official version: 4.20
2784   Anonymous FTP:
2785     /alpha.gnu.ai.mit.edu:ange-ftp/ange-ftp.tar.Z
2786     /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/ange-ftp.tar.Z
2787     /ugle.unit.no:pub/gnu/emacs-lisp/ange-ftp.tar.Z
2788   Mailing lists:
2789     ange-ftp-lovers-request@anorman.hpl.hp.com (for subscriptions)
2790     Ange-FTP Lovers:
2791       ange-ftp-lovers@anorman.hpl.hp.com (for submissions)
2792       /ftp.reed.edu:pub/mailing-lists/ange-ftp/ (archives)
2793     Ange-FTP Announcements:
2794       ange-ftp-lovers-announce@anorman.hpl.hp.com
2795   NOTE: now with support for accessing VMS, CMS, and MTS systems
2796   
2797 112: VIP -- vi emulation for Emacs
2798   
2799   Author: Aamod Sane <sane@cs.uiuc.edu>
2800   Latest released version: 4.3
2801   Anonymous FTP:
2802     /cs.uiuc.edu:pub/vip4.3.tar.Z
2803     /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/modes/vip-mode.tar.Z
2804   NOTE: This version much more closely emulates vi than the one
2805     distributed with Emacs.
2806   
2807 113: Dired -- better directory editor for Emacs
2808   
2809   Author: Sebastian Kremer <sk@thp.uni-koeln.de>
2810   Latest released version: 5.239
2811   Anonymous FTP: /ftp.cs.buffalo.edu:pub/Emacs/diredall.tar.Z
2812                  /ftp.uni-koeln.de:pub/gnu/emacs/diredall.tar.Z
2813   NOTE: This is a huge improvement over the Dired distributed with Emacs.
2814     This version will be in Emacs 19.
2815   
2816 114: AUC TeX -- enhanced LaTeX mode with debugging facilities
2817   
2818   Author: Kresten Krab Thorup <krab@iesd.auc.dk>
2819   Latest released version: 6.1 {???}
2820   Anonymous FTP:
2821     /iesd.auc.dk:pub/emacs-lisp/auctex_6_1d.tar.Z
2822     /iesd.auc.dk:pub/emacs-lisp/auctex.tar.Z
2823   Mailing list:
2824     auc-tex-request@iesd.auc.dk (for subscriptions)
2825     auc-tex@iesd.auc.dk (for submissions)
2826     auc-tex_mgr@iesd.auc.dk (auc-tex development team)
2827   
2828 115: Hyperbole -- extensible hypertext management system within Emacs
2829   
2830   Author: Bob Weiner <rsw@cs.brown.edu>
2831   Anonymous FTP:
2832     /wilma.cs.brown.edu:pub/hyperbole/ h*.tar.Z
2833   Mailing lists:
2834     hyperbole-announce -- Hyperbole release announcements only.
2835       Subscriptions:
2836         To: hyperbole-request@cs.brown.edu
2837         Subject: Add <mailbox@domain.name> to hyperbole-announce
2838     hyperbole -- Hyperbole discussion.
2839       Subscriptions:
2840         To: hyperbole-request@cs.brown.edu
2841         Subject: Add <mailbox@domain.name> to hyperbole
2842       Submissions:
2843         hyperbole@cs.brown.edu
2844       NOTE: Any member of the hyperbole mailing list is automatically a
2845         member of the hyperbole-announce mailing list.
2846     NOTE: No .UUCP or ! addresses are allowed on these mailing lists.
2847   
2848 116: Byte Compiler -- enhanced version of Emacs's byte compiler
2849   
2850   Author: Jamie Zawinski <jwz@lucid.com>,
2851           Hallvard B. Furuseth <hallvard@ifi.uio.no>
2852   Anonymous FTP:
2853     /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/bytecomp.tar.Z
2854     /ftp.uu.net:languages/elisp/packages/bytecomp.tar.Z
2855     /src.doc.ic.ac.uk:gnu/EmacsBits/elisp-archive/packages/bytecomp.tar.Z
2856   
2857 117: comint -- hugely enhanced shell mode and other derived modes
2858   
2859   Author: Olin Shivers <Olin.Shivers@cs.cmu.edu>
2860   Anonymous FTP:
2861     /cs.cmu.edu:/afs/cs.cmu.edu/user/shivers/lib/emacs/
2862       {comint,cmu{tex,shell,scheme,lisp},ml}.el
2863       (anonymous password must contain `@',
2864        cannot cd to intermediate directories)
2865   
2866 118: BBDB -- personal info rolodex integrated with mail/news readers
2867   
2868   Author: Jamie Zawinski <jwz@lucid.com>
2869   Latest released version: 1.47
2870   Anonymous FTP:
2871     /archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/bbdb.tar.Z
2872   Mailing list:
2873     info-bbdb-request@lucid.com (for subscriptions)
2874     info-bbdb@lucid.com
2875     bbdb-announce-request@lucid.com (to be informed of new releases)
2876   Note: BBDB does not work with VM 4.  It does work with VM 5, RMAIL, GNUS,
2877     and MH-E.
2878   
2879 119: Ispell -- spell checker in C with interface for Emacs
2880   
2881   Author: Geoff Kuenning <geoff@itcorp.com>
2882   Latest released version: 2.0.02
2883   Beta test version: 3.0 (9 patches)
2884   Anonymous FTP:
2885     /archive.cis.ohio-state.edu:/pub/gnu/ispell/ (version 2.0.02)
2886     /ftp.cs.ucla.edu:/pub/ispell/ (version 3.0, patches, dictionaries)
2887     /argus.math.orst.edu:pub/ispell/ (version 3.0, patches, dictionaries) 
2888     /ftp.th-darmstadt.de:pub/dicts/ispell/ (mirror of argus)
2889   NOTE: Do not send mail to Geoff asking him to send you the latest
2890     version of Ispell.  He does not have free e-mail.
2891   
2892 120: Epoch -- enhanced GNU Emacs with better X interface
2893   
2894   Latest released version: 4.2
2895   Anonymous FTP:
2896     /cs.uiuc.edu:pub/epoch-files/epoch/epoch-4.2.tar.Z
2897     /cs.uiuc.edu:pub/epoch-files/epoch/epoch-diff-4.1-4.2.tar.Z
2898     /src.doc.ic.ac.uk:gnu/epoch/
2899     /aix370.rrz.uni-koeln.de:gnu/emacs/epoch/
2900   Newsgroup and mailing lists:
2901     Epoch:
2902       gnu.emacs.epoch
2903       epoch-request@cs.uiuc.edu (for subscriptions)
2904       epoch@cs.uiuc.edu (for submissions)
2905     Epoch-Design:
2906       epoch-design-request@cs.uiuc.edu (for subscriptions)
2907       epoch-design@cs.uiuc.edu (for submissions)
2908   FAQ list:
2909     Maintainer: Marc Andreessen <marca@ncsa.uiuc.edu>
2910     Anonymous FTP:
2911       /rtfm.mit.edu:pub/usenet/news.answers/epoch-faq
2912       /ftp.ncsa.uiuc.edu:outgoing/marca/epoch/Epoch.FAQ
2913   
2914 121: Lucid GNU Emacs -- alternative Emacs 19 with better X interface
2915   
2916   Primary Maintainer: Jamie Zawinski <jwz@lucid.com>
2917   Other Developers: Eric Benson <eb@lucid.com>
2918                     Matthieu Devin <devin@lucid.com>
2919                     Harlan Sexton <hbs@lucid.com>
2920   Latest released version: 19.6                                              !
2921   Anonymous FTP:
2922     /labrea.stanford.edu:pub/gnu/lucid/lemacs-19.6.tar.Z  (source)           !
2923     /labrea.stanford.edu:pub/gnu/lucid/lemacs-19.6-sun4.tar.Z (Sun4binaries) !
2924   Newsgroup and mailing lists:
2925     Bugs:
2926       alt.lucid-emacs.bug                                                    +
2927       bug-lucid-emacs-request@lucid.com (for subscriptions)
2928       bug-lucid-emacs@lucid.com (for submissions)
2929     Help:
2930       alt.lucid-emacs.help                                                   +
2931       help-lucid-emacs-request@lucid.com (for subscriptions)
2932       help-lucid-emacs@lucid.com (for submissions)
2933   
2934 122: Demacs -- GNU Emacs altered to run on MS-DOS on 386/486 machines
2935   
2936   Authors: Manabu Higashida <manabu@sigmath.osaka-u.ac.jp>
2937            HIRANO Satoshi <hirano@tkl.iis.u-tokyo.ac.jp>
2938   Latest released version: 1.2.0
2939   Anonymous FTP:
2940     /utsun.s.u-tokyo.ac.jp:GNU/demacs/ (nearest to U.S.A.)
2941     /ftp.sigmath.osaka-u.ac.jp:pub/Msdos/Demacs/
2942     /wnoc-fuk.wide.ad.jp:pub/msdos/Demacs/
2943     /ftp.3com.com:pub/gnu/msdos/demacs/
2944     /mindseye.berkeley.edu:pub/kanji/demacs/
2945     /ftp.hawaii.edu:pub/editors/demacs.tar.Z
2946     /ftp.math.ksu.edu:pub/pc/demacs/
2947     /wsmr-simtel20.army.mil:pd1:<msdos.demacs> {ange-ftp syntax?}
2948     /ftp.uni-koeln.de:msdos/gnuprogs/dem120e.zip (executables, lisp-code, doc)
2949       (PLEASE USE ONLY OUTSIDE WORKING HOURS!)
2950     /ftp.uni-koeln.de:msdos/gnuprogs/dem120s.zip (sources, diffs)
2951       (PLEASE USE ONLY OUTSIDE WORKING HOURS!)
2952     /ftp.lysator.liu.se:pub/msdos/gnu/emacs/
2953     /mizar.docs.uu.se:pub/gnu/demacs/
2954     /iamsun.unibe.ch:PC/demacs/
2955     /flop.informatik.tu-muenchen.de:outgoing/demacs.tar
2956     /ftp.funet.fi:pub/gnu/emacs/demacs/
2957     /garbo.uwasa.fi:pc/editor/dem120e.zip
2958     /garbo.uwasa.fi:pc/editor/dem120s.zip
2959     /ftp.win.tue.nl:pub/gnu/demacs/
2960     /ugle.unit.no:pub/gnu/Demacs/
2961     {Does anyone know which sites have the Kanji version?}
2962   Via e-mail:
2963     From garbo.uwasa.fi:
2964       To: mailserv@garbo.uwasa.fi
2965       Subject: garbo-request
2966       Body: send pc/editor/dem120e.zip
2967             send pc/editor/dem120s.zip
2968             quit
2969   Downloading:
2970     EXEC-PC (Milwaukee, WI) 414-789-4210 (2400 bps)
2971       in the Mahoney MS-DOS file area in its Editors/wordprocessors
2972       library (F), named GNUEMACS.ZIP
2973     Channel 1 (Cambridge, MA) 617-345-8873 (9600 bps)
2974       in the New Uploads file area, named GNUEMACS.ZIP
2975   NOTE: Use the -d option of [pk]unzip for all .zip archives.  Some sites
2976     have Demacs lharc'ed.  If you need to find programs to unpack lharc and
2977     zip format archives, Chris Dean <ctdean@talaris.com> points out that you
2978     should see the comp.compression FAQ, available for FTP:
2979        /rtfm.mit.edu:pub/usenet/comp.compression/
2980   Mailing list:
2981     NOTE: There is no mailing list for Demacs.  However, there is a list
2982       for DJGPP, which is the environment that Demacs runs in.  Many
2983       Demacs problems are actually issues with DJGPP.
2984     DJGPP:
2985       Subscriptions:
2986         To: listserv@sun.soe.clarkson.edu
2987         body: add <your-address> djgpp
2988         or put `help' in the body.
2989         If this fails, mail to djgpp-request@sun.soe.clarkson.edu.
2990       Submissions:
2991         djgpp@sun.soe.clarkson.edu
2992   FAQ list:
2993     Maintainer: Dave Steibel <steibel@cs.umbc.edu>
2994     Anonymous FTP: algol.cs.umbc.edu:pub/demacs/demacs.faq
2995   
2996 123: Freemacs -- a small Emacs for MS-DOS
2997   
2998   Author: Russ Nelson <nelson@sun.soe.clarkson.edu>
2999   Latest released version: 1.6a
3000   Anonymous FTP:
3001     /simtel20.army.mil:PD:<MSDOS.FREEMACS> {ange-ftp syntax?}
3002     /grape.ecs.clarkson.edu:pub/msdos/freemacs/
3003   Via e-mail:
3004     To: archive-server@sun.soe.clarkson.edu
3005     body: help
3006   Via snail mail:
3007     address: Russell Nelson, 11 Grant St., Potsdam, NY 13676
3008     Send $15 copying fee, and specify preferred floppy disk format:
3009       5.25", 360K, or 3.50", 720K
3010   Mailing lists: 
3011     Subscriptions:
3012       To: listserv@sun.soe.clarkson.edu
3013       body: add <your-address> <name-of-list>
3014       or put `help' in the body.
3015     List distribution addresses:
3016       freemacs-announce@sun.soe.clarkson.edu
3017       freemacs-help@sun.soe.clarkson.edu
3018       freemacs-workers@sun.soe.clarkson.edu (send bug reports here)
3019   
3020 124: Patch -- program to apply "diffs" for updating files
3021   
3022   Author: Larry Wall <lwall@netlabs.com>
3023   Latest version: 2.0 patchlevel 12u8
3024     (This is the version that supports the new unified diff format.)
3025   Anonymous FTP:
3026     /prep.ai.mit.edu:pub/gnu/patch-2.0.12u8.tar.Z
3027     /prep.ai.mit.edu:pub/gnu/patch-2.0.12g8.tar.Z  (GNU version)
3028   
3031                     GNU Emacs FAQ: Keybindings/Output
3033 If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to
3034 get an overview of just the questions.  Then, when you want to look at the text
3035 of the answers, just type "C-x $".
3037 To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if
3038 that doesn't work, then type ESC to end the search.
3040 A `+' in the 78th column means something was inserted on the line.  A `-' means
3041 something was deleted and a `!' means some combination of insertions and
3042 deletions occurred.
3044 Full instructions for getting the latest FAQ are in question 22.  Also see the
3045 `Introduction to news.answers' posting in the `news.answers' newsgroup, or send
3046 e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
3047 WAIS, or Prospero to rtfm.mit.edu.
3051 Changing Key Bindings and Handling Key Binding Problems
3053 125: How do I bind keys (including function keys) to commands?
3054   
3055   1. Find out what character sequence is generated by the keystroke sequence
3056      you wish to bind to a command.  See question 129 for how to do this.
3057      Keep in mind that the character sequences generated by a keystroke
3058      sequence varies from one terminal to another.  You may also get
3059      different results depending on what type of machine you are running on
3060      (see question 128).  For example, these keystrokes may generate these
3061      character sequences:
3062   
3063        F1        ---> ESC [ 2 2 4 z
3064        Shift-R10 ---> ESC O t
3065        L7        ---> ESC [ 3 1 ~
3066        Remove    ---> C-@
3067   
3068   2. Figure out what the Emacs Lisp syntax is for this character sequence.
3069      Inside an Emacs Lisp string, RET, LFD, DEL, ESC, SPC, and TAB are
3070      specified with `\r', `\n', `\C-?', `\e', ` ', and `\t'.  C-x is
3071      specified by `\C-x'.  M-x is specified the same was as "ESC x".
3072      (Control characters may also be specified as themselves, but I don't
3073      recommend it.)  An Emacs Lisp string begins and ends with the double
3074      quote character, `"'.  Here are some examples:
3075   
3076        ESC [ D       ---> "\e[D"
3077        ESC [ 2 2 7 z ---> "\e[227z"
3078        ESC [ 1 8 ~   ---> "\e[18~"
3079        C-M-r         ---> "\e\C-r"
3080   
3081   3. If some prefix of the character sequence is already bound, you must
3082      unbind it by binding it to `nil'.  For example:
3083   
3084        (global-set-key "\e[" nil)
3085   
3086   4. Pick a command to bind your key sequence to.  A command can be a
3087      "symbol" with a function definition, or a "lambda list", or a string
3088      (which is treated as a macro).  For example:
3089   
3090        (global-set-key "\e[D" 'backward-char)
3091        (global-set-key "\e[227~" "\exgoto-line\r") ; macro
3092   
3093   See `Key Bindings' and `Rebinding' in the online manual.
3094   
3095   In Emacs 19 (including Lucid Emacs), you can bind function key F24 like
3096   this:
3097   
3098     (global-set-key 'f24 'some-command)
3099   
3100 126: Why does Emacs say `Key sequence XXX uses invalid prefix characters'?
3101   
3102   A prefix of the character sequence you were trying to bind was already
3103   bound.  Usually, the sequence is "ESC [", in which case you should
3104   evaluate this form first:
3105   
3106     (define-key esc-map "[" nil)
3107   
3108   NOTE: By default, "ESC [" is bound to backward-paragraph, and if you do
3109   this you will lose this key binding.  For most people, this is not a
3110   problem.
3111   
3112   See question 125.
3113   
3114 127: Why doesn't this [terminal or window-system setup] code work in my
3115  .emacs file, but it works just fine after Emacs starts up?
3116   
3117   This is because you're trying to do something in your .emacs file that
3118   needs to be postponed until after the terminal/window-system setup code
3119   is loaded.  This is a result of the order in which things are done
3120   during the startup of Emacs.  For more details see question 135.
3121   
3122   In order to postpone the execution of Emacs Lisp code until after the
3123   terminal/window-system setup, set the value of the variable
3124   term-setup-hook or window-setup-hook to be a function which does what
3125   you want.
3126   
3127   See etc/OPTIONS for a complete explanation of what Emacs does every time
3128   it is started.
3129   
3130   Here is a simple example of how to set term-setup-hook:
3131   
3132     (setq term-setup-hook
3133           (function
3134            (lambda ()
3135              (cond ((string-match "\\`vt220" (or (getenv "TERM") ""))
3136                     ;; Make vt220's "Do" key behave like M-x:
3137                     (define-key CSI-map "29~" 'execute-extended-command))
3138                    ))))
3139   
3140 128: How do I use function keys under X Windows?
3141   
3142   This depends on whether you are running Emacs inside a terminal emulator
3143   window, or whether you are allowing Emacs to create its own X window.
3144   You can tell which you are doing by noticing whether Emacs creates a new
3145   window when you start it.
3146   
3147   If you are running Emacs inside a terminal emulator window, then it
3148   behaves exactly as it does on any other tty.  In this case, for function
3149   keys to be useful, they must generate character sequences that are sent
3150   to the programs running inside the window as input.  The `xterm' program
3151   has two different sets of character sequences that it generates when
3152   function keys are pressed, depending on the sunFunctionKeys X resource
3153   and the -sf and +sf command line options.  (To find out what these key
3154   sequences are, see question 129.)  In addition, with xterm,
3155   you can override what key sequence a specific function key (or any other
3156   key) will generate with the `translations' resource.  This, for example:
3157   
3158     XTerm.VT100.Translations: #override \
3159       <KeyPress>F1: string(0x1b) string("[xyzzy")
3160   
3161   makes the function key F1 generate the character sequence "ESC [xyzzy".
3162   
3163   On the other hand, if Emacs is managing its own X window, the following
3164   description applies.  Emacs receives `KeyPress' events from the X server
3165   when a key is pressed while the keyboard focus is in its window.  The
3166   KeyPress event contains an X "keysym" code, which is simply an arbitrary
3167   number corresponding to the name of the keysym, and information on which
3168   "modifiers" such as `control' and `shift' are active.  For example, the
3169   `Tab' keysym is 0xff09.  (Generally, a key on the keyboard will generate a
3170   keysym whose name is the same as the label on the key, ie. the `Tab' key
3171   will normally generate the `Tab' keysym.  This can be changed with the
3172   xmodmap program.)  Emacs recognizes all the keysyms that correspond to
3173   standard ASCII characters and internally uses the ASCII character instead.
3174   
3175   (WARNING: I am about to describe a gross, disgusting hack to you, have
3176   your barf bag ready.)
3177   
3178   When Emacs receives the X keysym of one of the arrow keys, it behaves
3179   the same as if it had received a letter key with the control modifier
3180   down as follows (this is hard-coded):
3181   
3182     Up    becomes C-p
3183     Down  becomes C-n
3184     Right becomes C-f
3185     Left  becomes C-b
3186   
3187   The way Emacs treats other keysyms depends on what kind of machine it was
3188   compiled on.  The type of the display machine is irrelevant!  Function
3189   keys are mapped internally to escape sequences, while other keys are
3190   completely ignored.
3191   
3192   1. If compiled on a Sun, Emacs recognizes these X keysyms that
3193      are normally on a Sun keyboard:
3194   
3195        F1 through F9
3196        L1 through L10 (same as F11 through F20)
3197        R1 through R15 (same as F21 through F35)
3198          (The keys labelled R8, R10, R12, and R14 usually are mapped to the
3199           X keysyms Up, Left, Right, and Down.)
3200        Break (the `Alternate' key is given this keysym)
3201   
3202      These keys work like Sun function keys.  When Emacs receives the
3203      keysym, it will internally use character sequences that look like "ESC
3204      [ ### z", where ### is replaced by a number.  The character sequences
3205      are identical to those generated by Sun's keyboard under SunView.  Any
3206      function key not listed above generates "ESC [ - 1 z".
3207   
3208      In order to use these key sequences, they should be bound to commands
3209      using the standard key binding methods, just as if Emacs were running
3210      on a regular terminal.
3211   
3212      WARNING: F11 and L1 are the same keysym in X, as are F12 and L2, etc.
3213      {Yes, this is stupid.  Complain to the X consortium.}
3214   
3215   2. If not compiled on a Sun, the function keys will appear to Emacs in a
3216      way remarkably similar to the keys of a DEC LK201 keyboard (used on
3217      some VT series terminals).  These X keysyms will be recognized:
3218   
3219        F1 through F20
3220        Help (treated same as F15)
3221        Menu (treated same as F16, is the LK201 `Do' key)
3222        Find
3223        Insert (LK201 `Insert Here' key)
3224        Select
3225        Prior (LK201 `Prev Screen' key *** ONLY IN 18.58 AND LATER ***)
3226        Next (LK201 `Next Screen' key *** ONLY IN 18.58 AND LATER ***)
3227   
3228      And finally, the LK201 key labelled `Remove' (or `Delete') is often
3229      mapped to the Delete keysym which generates the DEL character (C-?)
3230      instead of the key sequence given by the LK201 `Remove' key.  It may
3231      also be mapped to some other keysym, such as `_Remove', in which case
3232      you can't use it from within Emacs at all.
3233   
3234      Each function key will be internally converted to a character sequence
3235      that looks like "ESC [ ## ~", where ## is replaced by a number.  The
3236      character sequences are identical to those generated by a LK201
3237      keyboard.  Any function key not listed above generates "ESC [ - 1 ~".
3238   
3239   For the complete list of the numbers which are generated by the function
3240   keys, look in the file src/x11term.c at the definitions of the function
3241   stringFuncVal.
3242   
3243   If you are running Emacs on a Sun machine, even if your X display is
3244   running on a non-Sun machine (eg., an X terminal), you get the setup
3245   described above for Suns.  The determining factor is what type of
3246   machine Emacs is running (was compiled) on, not what type of machine
3247   your X display is on.
3248   
3249   If you have function keys not listed above on your keyboard, you can use
3250   `xmodmap' to change their keysym assignments to get keys that Emacs will
3251   recognize, but that may screw up other programs.
3252   
3253   X resources are not used by Emacs to affect the key sequences generated.
3254   In particular, there are no X key "translations" for Emacs.
3255   
3256   If you have function keys not listed above and you don't want to use
3257   xmodmap to change their names, you might want to make a modification to
3258   your Emacs.  Johan Vromans <jv@mh.nl> has made available a patch for Emacs
3259   that adds the x-rebind-key function of Epoch to Emacs 18.58.  This allows
3260   another layer of key rebinding before Emacs even sees the keys, and in
3261   this layer you can rebind all of the keys and modifier combinations as
3262   well.
3263   
3264   Anonymous FTP:
3265     /ftp.eu.net:gnu/emacs/FP-Xfun.Z
3266     /ftp.urc.tue.nl:pub/tex/emacs/FP-Xfun
3267   
3268   Johan Vromans explains what this buys for you:
3269   
3270     After implementing this, all keyboard keys can be configured to send
3271     user definable sequences, eg.,
3272   
3273       (x-rebind-key "KP_F1" 0 "\033OP")
3274   
3275     This will have the keypad key PF1 send the sequence "ESC O P", just like
3276     an ordinary VT series terminal.
3277   
3278 129: How do I tell what characters my function or arrow keys emit?
3279   
3280   Use this function by Randal L. Schwartz <merlyn@iwarp.intel.com>:
3281   
3282     (defun see-chars ()
3283       "Displays characters typed, terminated by a 3-second timeout."
3284       (interactive)
3285       (let ((chars "")
3286             (inhibit-quit t))
3287         (message "Enter characters, terminated by 3-second timeout.")
3288         (while (not (sit-for 3))
3289           (setq chars (concat chars (list (read-char)))
3290                 quit-flag nil))         ; quit-flag maybe set by C-g
3291         (message "Characters entered: %s" (key-description chars))))
3292   
3293   Alternatively, use the "C-h l" view-lossage command, which will display
3294   the last 100 characters Emacs has seen in its input stream.  Kevin
3295   Gallagher <kgallagh@digi.lonestar.org> suggests typing some unique string
3296   like "wxyz", typing the key in question, then typing "C-h l".  The
3297   characters that appear between "wxyz" and "C-h l" were generated by the
3298   key.
3299   
3300 130: How do I set the X key "translations" for Emacs?
3301   
3302   Sorry, you can't; there are no "translations" to be set.  Emacs is not
3303   written using the Xt library.  The only way to affect the behavior of keys
3304   within Emacs is through `xmodmap' (outside Emacs) or `define-key' (inside
3305   Emacs).
3306   
3307 131: How do I handle C-s and C-q being used for flow control?
3308   
3309   C-s and C-q are used in the XON/XOFF flow control protocol.  This screws
3310   up Emacs because it binds these characters to commands.  Also, by default
3311   Emacs will not honor them as flow control characters and may overwhelm
3312   output buffers.  Sometimes, intermediate software using XON/XOFF flow
3313   control will prevent Emacs from ever seeing C-s and C-q.
3314   
3315   Possible solutions:
3316   
3317   * Disable the use of C-s and C-q for flow control.
3318   
3319     You need to determine what is the cause of the flow control.
3320   
3321     * your terminal
3322   
3323       Your terminal may use XON/XOFF flow control to have time to display
3324       all the characters it receives.  For example, VT series terminals do
3325       this.  It may be possible to turn this off from a setup menu.  For
3326       example, on a VT220 you may select `No XOFF' in the setup menu.  This
3327       is also true for some terminal emulation programs on PCs.
3328   
3329       When you turn off flow control at the terminal, you will also need to
3330       turn it off at the other end, which might be at the computer you are
3331       logged in to or at some terminal server in between.
3332   
3333       If you turn off flow control, characters may be lost; using a printer
3334       connected to the terminal may fail.  You may be able to get around
3335       this problem by modifying the `termcap' entry for your terminal to
3336       include extra NUL padding characters. 
3337   
3338     * a modem
3339   
3340       If you are using a dialup connection, the modems may be using XON/XOFF
3341       flow control.  I don't know how to get around this.
3342   
3343     * a router or terminal server
3344   
3345       Some network box between the terminal and your computer may be using
3346       XON/XOFF flow control.  It may be possible to make it use some other
3347       kind of flow control.  You will probably have to ask your local
3348       network experts for help with this.
3349   
3350     * tty and/or pty devices
3351   
3352       If your connection to Emacs goes through multiple tty and/or pty
3353       devices, they may be using XON/XOFF flow control even when it is not
3354       necessary.
3355   
3356       Eirik Fuller <eirik@theory.tn.cornell.edu> writes:
3357   
3358         Some versions of `rlogin' (and possibly telnet) do not pass flow
3359         control characters to the remote system to which they connect.  On
3360         such systems, Emacs on the remote system cannot disable flow control
3361         on the local system.  Sometimes `rlogin -8' will avoid this problem.
3362   
3363         One way to cure this is to disable flow control on the local host
3364         (the one running rlogin, not the one running rlogind) using the stty
3365         command, before starting the rlogin process.  On many systems, `stty
3366         start u stop u' will do this.
3367   
3368         Some versions of `tcsh' will prevent even this from working.  One
3369         way around this is to start another shell before starting rlogin,
3370         and issue the stty command to disable flow control from that shell.
3371   
3372       Use `stty -ixon' instead of `stty start u stop u' on some systems.
3373   
3374   * Make Emacs speak the XON/XOFF flow control protocol.
3375   
3376     You can make Emacs treat C-s and C-q as flow control characters by
3377     evaluating this form:
3378   
3379       (set-input-mode nil t)
3380   
3381     If you are fixing this for yourself, simply put the form in your .emacs
3382     file.  If you are fixing this for your entire site, the best place to
3383     put it is unclear.  I don't know if this has any effect when used in
3384     lisp/site-init.el when building Emacs; I've never tried that.  {Can
3385     someone tell me whether it works?}  Putting things in users' .emacs files
3386     has a number of problems.
3387   
3388     Putting this form in lisp/default.el has the problem that if the user's
3389     .emacs file has an error, this will prevent lisp/default.el from being
3390     loaded and Emacs may be unusable for the user, even for correcting their
3391     .emacs file (unless they're smart enough to move it to another name).  A
3392     possible solution is to initially disable C-s and C-q by setting
3393     keyboard-translate-table in lisp/site-init.el, either with swap-keys
3394     (see question 136) or with the following form:
3395   
3396       ;; by Roger Crew <crew@cs.stanford.edu>:
3397       (setq keyboard-translate-table
3398             "\C-@\C-a\C-b\C-c\C-d\C-e\C-f\C-g\C-h\C-i\C-j\C-k\C-l\C-m\C-n\C-o\C-p\C-^\C-r\C-\\\C-t\C-u\C-v\C-w\C-x\C-y\C-z\C-[\C-s\C-]\C-q\C-_")
3399   
3400     This will at least prevent Emacs from being confused by the flow control
3401     characters, even if lisp/default.el cannot be loaded.  Then, in
3402     lisp/default.el, enable XON/XOFF flow control with set-input-mode.
3403   
3404   For further discussion of this issue, read the file PROBLEMS in the
3405   Emacs distribution.
3406   
3407 132: How do I use commands bound to C-s and C-q (or any key) if these keys
3408  are filtered out?
3409   
3410   I suggest swapping C-s with C-\ and C-q with C-^:
3411   
3412     (swap-keys ?\C-s ?\C-\\)
3413     (swap-keys ?\C-q ?\C-^)
3414   
3415   See question 136 for the implementation of swap-keys.  This method
3416   has the advantage that it simultaneously swaps the characters everywhere
3417   throughout Emacs, while just switching the keybindings will miss important
3418   places where the character codes are stored (eg., the search-repeat-char
3419   variable, major mode keymaps, etc.).
3420   
3421   To do this for an entire site, you may want to swap the keys in
3422   lisp/default.el.  If only some of your users are connecting through
3423   XON/XOFF flow-controlled connections, you will want to do this
3424   conditionally.  I suggest pre-swapping them in lisp/site-init.el when
3425   Emacs is built, and then in lisp/default.el, if it is determined to be
3426   safe, they can be reenabled (being careful not to screw up any other key
3427   mappings users might have established using keyboard-translate-table).
3428   See question 131 for an easy way to pre-swap these keys.
3429   
3430   WARNING: If you do this for an entire site, the users will be confused by
3431   the disparity between what the documentation says and how Emacs actually
3432   behaves.
3433   
3434 133: Why does the `BackSpace' key invoke help?
3435   
3436   The BackSpace key (on every keyboard I've used) generates ASCII code 8.
3437   C-h sends the same code.  In Emacs by default C-h invokes help-command.
3438   This is intended to be easy to remember since the first letter of "help"
3439   is "h".  The easiest solution to this problem is to use C-h (and
3440   BackSpace) for help and DEL (the Delete key) for deleting the previous
3441   character.
3442   
3443   For many people this solution may be problematic:
3444   
3445   * They normally use BackSpace outside of Emacs for deleting the previous
3446     character typed.  This can be solved by making DEL be the command for
3447     deleting the previous character outside of Emacs.  This command will do
3448     this on many Unix systems:
3449   
3450       stty erase '^?'
3451   
3452   * The person may prefer using the BackSpace key for deleting the previous
3453     character because it is more conveniently located on their keyboard or
3454     because they don't even have a separate Delete key.  In this case, the
3455     BackSpace key should be made to behave like Delete.  There are several
3456     methods.
3457   
3458     * Under X Windows, the easiest solution is to change the BackSpace key
3459       into a Delete key like this:
3460   
3461         xmodmap -e "keysym BackSpace = Delete"
3462   
3463     * Some terminals (eg., VT3## terminals) allow the character generated by
3464       the BackSpace key to be changed from a setup menu.
3465   
3466     * You may be able to get a keyboard that is completely programmable.
3467   
3468     * Under X or on a dumb terminal, it is possible to swap the BackSpace
3469       and Delete keys inside Emacs:
3470   
3471         (swap-keys ?\C-h ?\C-?)
3472   
3473       See question 136 for the implementation of swap-keys.
3474   
3475     * Another approach is to switch keybindings and put help on "C-x h"
3476       instead:
3477   
3478         (global-set-key "\C-h" 'delete-backward-char)
3479         (global-set-key "\C-xh" 'help-command) ; override mark-whole-buffer
3480   
3481       Other popular key bindings for help are M-? and "C-x ?".
3482   
3483       WARNING: Don't try to bind DEL to help-command, because there are many
3484       modes that have local bindings of DEL that will interfere.
3485   
3486 134: Why doesn't Emacs look at the stty settings for Backspace vs. Delete?
3487   
3488   Good question!
3489   
3490 135: Why don't the arrow keys work?
3491   
3492   When Emacs starts up, it doesn't know anything about arrow keys at all
3493   (except when running under X, see question 128).  During the process of
3494   starting up, Emacs will load a terminal-specific initialization file for
3495   your terminal type (as determined by the environment variable TERM), if
3496   one exists.  This file has the responsibility for enabling the arrow keys.
3497   
3498   There are several things that can go wrong:
3499   
3500   1. There is no initialization file for your terminal.
3501   
3502      You can determine this by looking in the lisp/term directory.  If your
3503      terminal type (as determined by the TERM environment variable) is
3504      xxx-yy-z, then the first of these files in the lisp/term directory will
3505      be loaded as the terminal-specific initialization file: xxx-yy-z.el,
3506      xxx-yy.el, or xxx.el.
3507   
3508      There are two major cases of this problem:
3509   
3510      * Your terminal type is very similar to one that has an init file.
3511   
3512        In this case, there are several techniques suggested by Colin Jensen
3513        <cjensen@ampex.com>, Ben Liblit <Liblit@cs.psu.edu>, and Marc
3514        Auslander <marc@watson.ibm.com>:
3515   
3516        A. Add a symbolic link in lisp/term for your terminal type that
3517           points to the similar type.  For example, you could make VT102
3518           terminals work with this command:
3519   
3520             ln -s vt100.el vt102.el
3521   
3522           This fixes things for everyone on the system who uses the terminal
3523           type.
3524   
3525        B. If you can't do the solution in part A, you can add code to your
3526           term-setup-hook that loads the correct file like this:
3527   
3528             (setq term-setup-hook
3529                   (function
3530                    (lambda ()
3531                      (cond ((equal "vt102" (or (getenv "TERM") ""))
3532                             (load (concat term-file-prefix "vt100")))
3533                            (;; Code for other terminal types goes here ...
3534                             )))))
3535   
3536        C. If you use `tset' to set your TERM environment variable when you
3537           login, you can use the `-m' switch to tell tset to use a terminal
3538           type known by Emacs instead of another similar one.  For example,
3539           specifying this:
3540   
3541             tset ... -m 'dec-vt220:vt220' ...
3542   
3543           will make tset say you are on a `vt220' instead of a `dec-vt220'.
3544   
3545        D. Interactively, you can type "M-x load-library RET term/vt100" to
3546           load the terminal-specific initialization files for VT100
3547           terminals.
3548   
3549      * Your terminal type is not similar to one that has an init file.
3550   
3551        One can be made for your terminal, or you can just add code to your
3552        own .emacs to handle this problem for yourself.  For example, if your
3553        terminal's arrow keys send these character sequences:
3554   
3555          Up:    ESC [ A
3556          Down:  ESC [ B
3557          Right: ESC [ C
3558          Left:  ESC [ D
3559   
3560        then you can bind these keys to the appropriate commands with code in
3561        your .emacs like this:
3562   
3563          (setq term-setup-hook
3564                (function
3565                 (lambda ()
3566                   (cond ((string-match "\\`xyzzy" (or (getenv "TERM") ""))
3567                          ;; First, must unmap the binding for left bracket
3568                          (or (keymapp (lookup-key global-map "\e\["))
3569                              (define-key global-map "\e\[" nil))
3570                          ;; Enable terminal type xyzzy's arrow keys:
3571                          (define-key global-map "\e\[A" 'previous-line)
3572                          (define-key global-map "\e\[B" 'next-line)
3573                          (define-key global-map "\e\[C" 'forward-char)
3574                          (define-key global-map "\e\[D" 'backward-char))
3575                         ((string-match "\\`abcde" (or (getenv "TERM") ""))
3576                          ;; Do something different for terminal type abcde
3577                          ;; .....
3578                          )))))
3579   
3580      NOTE: You may have to restart Emacs to get changes to take effect.
3581   
3582      NOTE: Your arrow keys may send sequences beginning with "ESC O" when
3583      Emacs is running, even if they send sequences beginning with "ESC [" at
3584      all other times.  This is because Emacs uses any command there may be
3585      in your terminal's termcap entry for putting the terminal into
3586      "Application Keypad Mode".  Just map these sequences the same way as
3587      above.
3588   
3589   The next two cases are problems even if there is a initialization file for
3590   your terminal type.
3591   
3592   2. The initialization file for your terminal doesn't bind arrow keys.
3593   
3594      If your terminal type is `xterm', you will have to bind the arrow keys
3595      as in part 1 above, since the xterm.el file doesn't do anything useful.
3596      There may be other terminal types with the same problem.
3597   
3598   3. Your terminal's arrow keys send individual control characters.
3599   
3600      For example, the arrow keys on an ADM-3 send C-h, C-j, C-k, and C-l.
3601   
3602      There is not much Emacs can do in this situation, since all the control
3603      characters except for C-^ and C-\ are already used as Emacs commands.
3604      It may be possible to convince the terminal to send something else when
3605      you press the arrow keys; it is worth investigating.
3606   
3607      You have to make the hard choices of how to rebind keys to commands to
3608      make things work the way you want.  Another alternative is to start
3609      learning the standard Emacs keybindings for moving point around: C-b,
3610      C-f, C-p, and C-n.  Personally, I no longer use the arrow keys when
3611      editing because I have switched keyboards so many times.
3612   
3613   4. Your terminal's arrow keys send sequences beginning with "ESC [".
3614   
3615      Due to an extremely poor design decision (ie., these sequences are ANSI
3616      standard), none of the the terminal-specific initialization files that
3617      are distributed with Emacs will bind these character sequences to the
3618      appropriate commands by default.  (This also applies to any other
3619      function keys which generate character sequences starting with "ESC
3620      [".)  This is because it was deemed far more important to preserve the
3621      binding of M-[ to the backward-paragraph command.  It appears that this
3622      will change in Emacs 19.
3623   
3624      Some of the terminal-specific initialization files that come with Emacs
3625      provide a command enable-arrow-keys that will fix this problem.  To get
3626      this automatically invoked, put this in your .emacs:
3627   
3628        (setq term-setup-hook
3629              (function
3630               (lambda ()
3631                 (if (fboundp 'enable-arrow-keys) (enable-arrow-keys)))))
3632   
3633      We put this in our lisp/default.el file, so users don't have to worry
3634      about it:
3635   
3636        ;; don't override a user's term-setup-hook
3637        (or term-setup-hook
3638            (setq term-setup-hook
3639                  (function
3640                   (lambda ()
3641                     (and (fboundp 'enable-arrow-keys)
3642                          ;; don't override a user key mapping
3643                          (eq 'backward-paragraph (lookup-key esc-map "["))
3644                          (enable-arrow-keys))))))
3645   
3646      If your terminal type is `sun', you should put this in your .emacs
3647      instead (or in addition to the above):
3648   
3649        (setq sun-esc-bracket t)
3650   
3651      It is possible that the terminal-specific initialization file for your
3652      terminal type was written locally and does not follow the rule
3653      mentioned above.  In this case you may need to inspect it to find out
3654      how to enable the arrow keys.  (Actually, if it was written locally, it
3655      probably enables the arrow keys by default.)
3656   
3657 136: How do I "swap" two keys?
3658   
3659   When Emacs receives a character, you can make Emacs behave as though it
3660   received another character by setting the value of
3661   keyboard-translate-table.  The following Emacs Lisp will do this for you,
3662   allowing you to "swap" keys.  After arranging for this Lisp to be
3663   evaluated by Emacs, you can evaluate `(swap-keys ?A ?B)' to swap A and B.
3664   
3665     (defun swap-keys (key1 key2)
3666       "Swap keys KEY1 and KEY2 using map-key."
3667       (map-key key1 key2)
3668       (map-key key2 key1))
3669   
3670     (defun map-key (from to)
3671       "Make key FROM behave as though key TO was typed instead."
3672       (setq keyboard-translate-table
3673             (concat keyboard-translate-table
3674                     (let* ((i (length keyboard-translate-table))
3675                            (j from)
3676                            (k i)
3677                            (str (make-string (max 0 (- j (1- i))) ?X)))
3678                       (while (<= k j)
3679                         (aset str (- k i) k)
3680                         (setq k (1+ k)))
3681                       str)))
3682       (aset keyboard-translate-table from to)
3683       (let ((i (1- (length keyboard-translate-table))))
3684         (while (and (>= i 0) (eq (aref keyboard-translate-table i) i))
3685           (setq i (1- i)))
3686         (setq keyboard-translate-table
3687               (if (eq i -1)
3688                   nil
3689                 (substring keyboard-translate-table 0 (1+ i))))))
3690   
3691   NOTE: You must evaluate the definition of these functions before calling
3692   them!  For example, list the function definitions before their use in your
3693   .emacs file.
3694   
3695   NOTE: These functions take two numbers as arguments.  The example above,
3696   `(swap-keys ?A ?B)' is actually `(swap-keys 65 66)', because `?A' is
3697   merely notation for 65, the ASCII value of `A'.
3698   
3699   NOTE: These functions only work for single characters.  You cannot swap
3700   two multi-character sequences.
3701   
3702 137: How do I produce C-XXX with my keyboard?
3703   
3704   For C-@ and C-^, often you can just type Control-2 and Control-6.  For
3705   C-_, you may have to hold down the shift key, typing Control-Shift-Hyphen.
3706   C-@ can often be generated by typing Control-Space.  C-@ is often called
3707   the NUL character, and has ASCII value 0.  C-_ can often be generated by
3708   typing Control-7 or Control-/.  C-? (aka DEL) may be generated by typing
3709   Shift-BackSpace or Control-BackSpace or a key labelled Delete or Del.
3710   
3711   Try Control with all of the digits on your keyboard to see what gets
3712   generated.
3713   
3714 138: What if I don't have a Meta key?
3715   
3716   Instead of typing M-a, you can type "ESC a" instead.  In fact, Emacs
3717   converts M-a internally into "ESC a" anyway (depending on the value of
3718   meta-prefix-char).
3719   
3720 139: What if I don't have an Escape key?
3721   
3722   Type C-[ instead.  This should send ASCII code 27 just like an Escape
3723   key would.  Try also C-;.
3724   
3725 140: How do I type DEL on PC terminal emulators?
3726   
3727   Some IBM PC compatibles do not have a key labeled `Del' or `Delete' {is
3728   this true?}.  Those that do generally have it in an inconvenient location.
3729   (Also, in some terminal emulators, the `Del' key does not transmit DEL.)
3730   The result is the standard "BackSpace invoking help" problem (see question
3731   133).
3732   
3733   The usual solution, suggested by Michael Covington
3734   <mcovingt@aisun1.ai.uga.edu>, is to somehow tell the terminal emulator
3735   program that BackSpace should transmit DEL.  Read the program's manual.
3736   Shift-BackSpace or Control-BackSpace may send DEL.  The `Del' key may only
3737   send DEL if the NumLock key hasn't been pressed.
3738   
3739 141: Can I make my `Compose Character' key behave like a Meta key?
3740   
3741   On a dumb terminal such as a VT220, no.  It is rumored that certain VT220
3742   clones could have their Compose key configured this way.  If you're using
3743   X, you might be able to do this with the `xmodmap' program (this is
3744   what I do).
3745   
3746 142: How do I bind a combination of modifier key and function key?
3747   
3748   Unless you're using Emacs under emacstool (or xvetool?), have a working
3749   version of x-rebind-key (see question 128), or are using Emacs 19 (Lucid
3750   Emacs), you can't do this with Emacs alone.
3751   
3752   If you are using emacstool, Emacs sees different character sequences for
3753   the combination of a modifier and a function key from what it sees for the
3754   function key alone.  See etc/emacstool.1 for more information.  Since
3755   Emacs sees different character sequences, you can bind these different
3756   sequences to different commands.
3757   
3758   If you are running Emacs inside a terminal emulator window like xterm, you
3759   can modify its translation tables to make it generate different character
3760   sequences for the combination of a modifier and a function key.  For
3761   example, this X resource setting:
3762   
3763     XTerm.VT100.Translations: #override \
3764       Shift<KeyPress>F1: string(0x1b) string("[xyzzy")
3765   
3766   makes Shift-F1 generate the character sequence "ESC [ xyzzy".  You can
3767   bind these character sequences in Emacs as normal.  Nick Ruprecht
3768   <ruprecht@informatik.uni-freiburg.de> has written an extensive X
3769   translation mapping for xterm that does this.  {Does this have an FTP
3770   site?}
3771   
3772   If you have x-rebind-key, you can have any arbitrary combination of
3773   modifiers with a key replaced by any sequence of "normal" characters.  For
3774   example, this makes Shift-Return behave as though you had typed "C-x C-e"
3775   (example from Jerry Graves):
3776   
3777     (x-rebind-key "Return" 'shift "\C-x\C-e")
3778   
3779   In Emacs 19 (Lucid Emacs), you can bind Meta-Left-Arrow like this (example
3780   from Jamie Zawinski):
3781   
3782     (global-set-key '(meta left) 'backward-word)
3783   
3784   With the last two methods, use `xmodmap' and `xev' to discover the keysym
3785   and modifier names.
3786   
3787 143: Why doesn't my Meta key work in an xterm window?
3788   
3789   Try all of these methods before asking for further help:
3790   
3791   * You may have big problems using `mwm' as your window manager.  {Does
3792     anyone know a good generic solution to allow the use of the Meta key in
3793     Emacs with mwm?}
3794   
3795   * For X11R4: Make sure it really is a Meta key.  Use `xev' to find out
3796     what keysym your Meta key generates.  It should be either Meta_L or
3797     Meta_R.  If it isn't, use xmodmap to fix the situation.
3798   
3799   * Make sure the pty the xterm is using is passing 8 bit characters.
3800     `stty -a' (or `stty everything') should show `cs8' somewhere.  If it
3801     shows `cs7' instead, use `stty cs8 -istrip' (or `stty pass8') to fix
3802     it.
3803   
3804   * If there is an rlogin connection between the xterm and the Emacs, the
3805     `-8' argument may need to be given to rlogin to make it pass all 8
3806     bits of every character.
3807   
3808   * If the Emacs is running under Ultrix, it is reported that evaluating
3809     (set-input-mode t nil) helps.
3810   
3811   * If all else fails, you can make xterm generate "ESC W" when you type
3812     M-W, which is the same conversion Emacs would make if it got the M-W
3813     anyway.  In X11R4, the following resource specification will do this:
3814   
3815       XTerm.VT100.EightBitInput: false
3816   
3817     (This changes the behavior of the insert-eight-bit action.)
3818   
3819     With older xterms, you can specify this behavior with a translation:
3820   
3821       XTerm.VT100.Translations: #override \
3822         Meta<KeyPress>: string(0x1b) insert()
3823   
3824     You might have to replace `Meta' with `Alt'.
3825   
3826 144: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0?
3827   
3828   This is a result of an internationalization extension in X11R4 and the
3829   fact that HP is now using this extension.  Emacs assumes that
3830   XLookupString returns the same result regardless of the Meta key state
3831   which is no longer necessarily true.  Until Emacs is fixed, the temporary
3832   kludge is to run this command after each time the X server is started but
3833   preferably before any xterm clients are:
3834   
3835     xmodmap -e 'remove mod1 = Mode_switch'
3836   
3837   NOTE:  This will disable the use of the extra keysyms systemwide, which
3838   may be undesirable if you actually intend to use them.
3839   
3840 145: Where can I get key bindings to make Emacs emulate WordStar?
3841   
3842   There is a package `wordstar' by Jim Frost <jimf@saber.com> and
3843   `ws-mode.el' by Juergen Nickelsen <nickel@cs.tu-berlin.de>.  Check in the
3844   Emacs Lisp Archive (see question 89).
3845   
3846 146: Where can I get an XEDIT emulator for Emacs?
3847   
3848   This question comes up once every couple of months.  I have never seen a
3849   positive reply, so I presume no one has ever written one.
3850   
3853 Using Emacs with Alternate Character Sets
3855 147: How do I make Emacs display 8-bit characters?
3856   
3857   There is a patch called the `8-bit ctl-arrow patch' that allows Emacs to
3858   display characters with codes from 128 to 255.  {The original appears to
3859   have been by Kenneth Cline <cline@proof.ergo.cs.cmu.edu>.} Partially based
3860   on Johan Widen's earlier work, Johan Vromans <jv@mh.nl> has updated this
3861   patch for Emacs 18.58 along with some other 8-bit improvements.
3862   
3863   Anonymous FTP:
3864     /ftp.eu.net:gnu/emacs/FP-EightBit.Z
3865     /ftp.urc.tue.nl:/pub/tex/emacs/FP-EightBit
3866     /cs.purdue.edu:pub/ygz/cemacs.tar.Z:cemacs/8bit-patch-18.57
3867     /sics.se:archive/emacs-18.55-8bit-diff
3868     /laas.laas.fr:pub/emacs/patch-8bit-18.55
3869     /laas.laas.fr:pub/emacs/patch-8bit-18.57
3870   
3871   Via e-mail:
3872     To: mail-server@sics.se
3873     body: send emacs-18.55-8bit-diff
3874   
3875   Anders Edenbrandt <anderse@dna.lth.se> has produced a more comprehensive
3876   patch for Emacs 18.59 that allows for 8-bit input and output.
3877   
3878   Anonymous FTP:
3879     /ftp.efd.lth.se:pub/gnu/emacs_8-bit.patch
3881   In the words of the author:
3883     With these patches, Emacs becomes fully 8-bit operational.  There is
3884     support for displaying 8-bit characters, as well as for entering such
3885     characters from the keyboard.  In addition, upcase/lowcase translation
3886     is supported, accented characters are recognized as "letters" (important
3887     when doing 'forward-word', for example), and text with 8-bit characters
3888     can be sorted correctly.
3890     A Meta-shift key can still be used, provided that you run in an
3891     environment where it is possible to distinguish between a character
3892     entered using the Meta-shift key and one entered directly. The diffs
3893     include patches to make this work under SunView (with emacstool) as
3894     well as under X.  If you can't use a Meta-shift key, you have to enter
3895     Meta-commands with the ESC-prefix.
3897   The most comprehensive patches for 8-bit output are by Howard Gayle
3898   (originally for Emacs 18.55.  These patches allow displaying any arbitrary
3899   string for a given 8-bit character (except TAB and C-j).  Also supported
3900   is defining the sorting order and the uppercase and lowercase
3901   translations.  It is reported that the 8-bit character support in Emacs 19
3902   is largely based on these patches.  Thomas Bellman
3903   <Bellman@lysator.liu.se> has updated these patches for Emacs 18.59.
3904   
3905   Anonymous FTP:
3906     /sics.se:archive/emacs-gayle.tar.Z  (patches for 18.55)
3907     /ftp.lysator.liu.se:pub/emacs/gayle-18.58.diff.tar.Z  (patches)
3908     /ftp.lysator.liu.se:pub/emacs/emacs-18.59-gayle.tar.Z  (patched Emacs)
3909   
3910   Epoch's 8-bit character support is based on Anders Edenbrandt's patches.
3911   Lucid Emacs has the ctl-arrow patch installed.  Nemacs displays 8-bit
3912   characters, and it may be useful for displaying the 8-bit ISO-8859
3913   alphabet, but I don't know for sure (see question 149).
3914   
3915 148: How do I input 8-bit characters?
3916   
3917   Minor modes for ISO Latin-1 that allow one to easily input this character
3918   set have been written by several people.  Such modes have been written by
3919   Matthieu Herrb <matthieu@laas.fr> (laas.laas.fr:pub/emacs/iso-latin-1.el),
3920   Johan Vromans <jv@mh.nl> {FTP site??}, and Marc Shapiro
3921   <shapiro@sor.inria.fr> {FTP site??}.
3922   
3923   These approaches differ from the one taken by Anders Edenbrandt in that
3924   his method uses direct 8-bit input, while these methods use a compose
3925   sequence for 8-bit characters.  {I have heard conflicting reports on
3926   whether this results in losing the Meta key.  Perhaps this depends on
3927   whether Emacs is running under X.  Can someone resolve this?}
3928   
3929   Karl Heuer <karl@haddock.ima.isc.com> is said to have a patch to allow
3930   8-bit input.  Georg-Wilhelm Koltermann <gwk@crmunich0.cray.com> also has a
3931   patch for either 18.57 or 18.58 that allows 8-bit input.
3932   
3933   Epoch comes with a patch that allows it to input 8-bit characters, but it
3934   is not enabled by default.  {Is this right?}
3935   
3936   Jamie Zawinski says:
3937   
3938     Lucid GNU Emacs allows the input of any ISO-8859/1 keysyms that your
3939     keyboard generates (see xmodmap), and contains a package that implements
3940     a DEC/OpenWindows-like "Compose" key for systems which don't have one.
3941   
3942 149: Where can I get an Emacs that can handle kanji characters?
3943   
3944   Nemacs 3.3.2 (Nihongo GNU Emacs) is a modified version of GNU Emacs 18.55
3945   that handles kanji characters.  It is available via anonymous FTP:
3946   
3947     /crl.nmsu.edu:pub/misc/nemacs-3.3.2.tar.Z
3948     /miki.cs.titech.ac.jp:JAPAN/nemacs/nemacs-3.3.2.tar.Z
3949   
3950   You might also need files for "wnn", a kanji input method
3951   (wnn-4.0.3{-README,.tar.Z} {on which machine?}).  You need a terminal (or
3952   terminal emulator) that can display text encoded in JIS, Shift-JIS, or EUC
3953   (Extended Unix Code), or the ability to run Nemacs as a direct X Window
3954   client.
3955   
3956 150: Where can I get an Emacs that can handle Chinese?
3957   
3958   `cemacs' by Stephen G. Simpson <simpson@math.psu.edu> is a patch to Emacs
3959   18.57 (the ctl-arrow patch) and some Emacs Lisp code that combined with
3960   Cxterm allows using Chinese characters.  It is available via anonymous
3961   FTP:
3962   
3963     /crl.nmsu.edu:pub/chinese/cemacs.tar.Z
3964     /cs.purdue.edu:pub/ygz/cemacs.tar.Z
3965   
3966   Cxterm is available from the same place:
3967   
3968     /cs.purdue.edu:pub/ygz/cxterm-11.5.1.tar.Z
3969   
3970 151: Where is an Emacs that can handle Semitic (right-to-left) alphabets?
3971   
3972   Joel M. Hoffman <joel@wam.umd.edu> writes:
3973   
3974     A couple of years ago a wrote a hebrew.el file that allows right-to-left
3975     editing of Hebrew.  I relied on the hardware to display the Hebrew
3976     letters, given the right codes, but not for any right-to-left support;
3977     the hardware also doesn't have to send any specific char. codes.  Emacs
3978     keeps track of when the user is typing Hebrew vs. English.  (The VT-*
3979     terminals in Israel contain built-in support for Hebrew.)
3980   
3981     To get it to work I had to modify only a few lines of GNU Emacs's source
3982     code --- just enough to make it 8-bit clean.
3983   
3984     [and in a separate message:]
3985   
3986     It doesn't produce time-order ["sefer" format] (I wouldn't recommend
3987     trying that with emacs, because converting time-order to screen-order
3988     with arbitrarily long lines is a bit tricky), but I also concocted a
3989     quick filter to convert screen-order into time-order.  I'll be happy to
3990     send you the requisite files if you want them.  If you're using it for
3991     anything large, however, you'll want something that works better.
3992   
3993   Joel Hoffman has also written a "bi-directional bi-lingual Emacs-like"
3994   editor for MS-DOS named Ibelbe (Itty Bitty Emacs-Like Bidirectional
3995   Editor).  Ibelbe is written in Turbo Pascal and comes with source code.
3996   Here is the description:
3997   
3998     Ibelbe looks like emacs (it even has a minibuffer and filename
3999     completion), and fully supports both right-to-left and left-to-right
4000     editing.  Other than an EGA monitor or better, no special hardware is
4001     required.  You will need an EGA Hebrew font to use Ibelbe with Hebrew.
4002   
4003   Anonymous FTP:
4004     /israel.nysernet.org:israel/msdos/ibelbe.zip
4005     /israel.nysernet.org:israel/msdos/hebfont.zip
4006   
4007   Joseph Friedman <yossi@deshaw.com, yossi@Neon.Stanford.EDU> has written
4008   patches for Emacs 18.55 and 18.58 that provide Semitic language support
4009   under X Windows.
4010   
4011   Warren Burstein <warren@itex.jct.ac.il> says he has mapped 7-bit keys by
4012   modifying self-insert-command "for Hebrew input on 7-bit keyboards".
4013   
4014   A good suggestion is to query archie for files named with `hebrew'.
4015   
4016                        GNU Emacs FAQ: Mail and News
4018 This portion of the GNU Emacs FAQ list is cross-posted to `gnu.emacs.gnus'
4019 because many of the questions herein deal with GNUS.  See `gnu.emacs.help' for
4020 the rest of the FAQ list.
4022 If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x $" to
4023 get an overview of just the questions.  Then, when you want to look at the text
4024 of the answers, just type "C-x $".
4026 To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a C-r if
4027 that doesn't work, then type ESC to end the search.
4029 A `+' in the 78th column means something was inserted on the line.  A `-' means
4030 something was deleted and a `!' means some combination of insertions and
4031 deletions occurred.
4033 Full instructions for getting the latest FAQ are in question 22.  Also see the
4034 `Introduction to news.answers' posting in the `news.answers' newsgroup, or send
4035 e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
4036 WAIS, or Prospero to rtfm.mit.edu.
4040 Mail and News
4042 152: How do I change the included text prefix in mail/news followups?
4043   
4044   Many people want Emacs to prefix included text with something like ` > '
4045   instead of with three spaces.  One way is to change the code of the
4046   function `mail-yank-original' in lisp/sendmail.el that prefixes with
4047   spaces.  A more flexible solution is to use Supercite, which provides wide
4048   configurability in how you format included text in replies.  See question
4049   107.  Both of these solutions work for RMAIL and GNUS.
4050   
4051   A related problem is how to prevent Emacs from including various headers
4052   of the replied-to message.  For this, you should set the value of
4053   mail-yank-ignored-headers, which takes a regexp value.
4054   
4055 153: How do I save a copy of outgoing mail?
4056   
4057   Two methods:
4058   
4059   1. (setq mail-self-blind t) will result in a `BCC:' header line with your
4060      address being added to mail composition buffers.  This will cause the
4061      mail system to send a copy of the mail back to you.
4062   
4063   2. (setq mail-archive-file-name (expand-file-name "~/outgoing")) will
4064      result in an `FCC:' header line with the pathname of ~/outgoing being
4065      added to mail composition buffers.  When you send the mail, Emacs will
4066      save a copy of the mail in the file ~/outgoing and then strip off the
4067      `FCC:' line before actually sending.
4068   
4069      WARNING: There is a bug in Emacs 18.58 that prevents mail readers such
4070      as RMAIL from reading the saved mail messages individually.  See
4071      question 155.
4072   
4073      WARNING: If you are visiting the file ~/outgoing at the time you send
4074      the mail, this can cause a variety of horrible problems.  Jamie
4075      Zawinski has written a solution for this.
4076   
4077   It does not work to put `set record filename' in the .mailrc file.
4078   
4079 154: Why doesn't Emacs expand my aliases when sending mail?
4080   
4081   * You must separate multiple addresses in the headers of the mail buffer
4082     with commas.  This is because Emacs supports RFC822 standard addresses
4083     like this one:
4084   
4085       To: Willy Smith <wks@xpnsv.lwyrs.com>
4086   
4087     However, you do not need to separate addresses with commas in your
4088     .mailrc file.
4089   
4090     WARNING: Emacs breaks up aliases in the .mailrc file into multiple
4091     addresses both on commas and on whitespace, regardless of any use of
4092     quotes.  This is probably a bug.  You can get around this by directly
4093     setting the value of mail-aliases.
4094   
4095   * Emacs normally only reads the `.mailrc' file once per session, when you
4096     start to compose your first mail message.  If you edit .mailrc, you can
4097     type "M-ESC (build-mail-aliases) RET" to make Emacs reread .mailrc.
4098     (You have to include the parentheses where they are shown!)
4099   
4100   * Emacs does not interpret vendor-specific additions to the format of the
4101     .mailrc file such as the `source' command.  It also ignores any `set'
4102     commands.  The only commands it looks at are `alias' and `group'
4103     commands.
4104   
4105 155: Why does RMAIL think all my saved messages are one big message?
4106   
4107   There is a bug for FCC-ed messages in Emacs 18.58 where it adds a timezone
4108   on the "From " line after the year instead of before the year.  (Before it
4109   didn't add the timezone at all.)  This is incompatible with the standard
4110   format for the "From " line, and RMAIL in particular can no longer
4111   distinguish between the messages.  Karl Berry <karl@cs.umb.edu>, Felix Lee
4112   <flee@cs.psu.edu>, Nick Gianniotis <nico@japan.sbi.com> and many
4113   others have all posted patches for this.  Karl's is the simplest and just
4114   stops Emacs from adding the timezone:
4115   
4116     >*** ./ORIG/sendmail.el     Tue Jan 28 16:22:56 1992
4117     >--- ./sendmail.el  Thu May 14 18:23:48 1992
4118     >***************
4119     >*** 285,287 ****
4120     >        (insert "\nFrom " (user-login-name) " "
4121     >!        (current-time-string) " " timezone "\n")
4122     >        (insert-buffer-substring rmailbuf)
4123     >--- 285,287 ----
4124     >        (insert "\nFrom " (user-login-name) " "
4125     >!        (current-time-string) "\n")
4126     >        (insert-buffer-substring rmailbuf)
4127   
4128 156: How can I sort the messages in my RMAIL folder?
4129   
4130   Use rmailsort.el by Masanobu Umeda.
4131   
4132 157: Why does RMAIL need to write to /usr/spool/mail?
4133   
4134   This is the behavior of the `movemail' program which RMAIL uses.  This
4135   indicates that movemail is configured to use lock files.
4136   
4137   RMS writes:
4138   
4139     Certain systems require lock files to interlock access to mail files.
4140     On these systems, movemail must write lock files, or you risk losing
4141     mail.  You simply must arrange to let movemail write them.
4142   
4143     Other systems use the flock system call to interlock access.  On these
4144     systems, you should configure movemail to use flock.
4145   
4146 158: How do I recover my mail files after RMAIL munges their format?
4147   
4148   Users who just want to try RMAIL out to see how it works end up trapped
4149   using it because saved mail in their `mbox' file has been converted into
4150   an incompatible format (BABYL) that only RMAIL understands.  RMAIL
4151   provides no obvious way to reverse this transformation.  Kyle Jones has
4152   aptly named this "the great Emacs Mail Eating Monster".  To convert a mail
4153   file back to standard Unix format, there are several methods:
4154   
4155   * Use the rmail-output ("C-o") command within RMAIL on each message in the
4156     file.  First use M-x rmail or M-x rmail-input to visit the RMAIL file in
4157     Rmail mode.  Type "1 j" to go to the first message.  Use the C-o command
4158     to output the message to a Unix format file.  Type "n" to go to the next
4159     message.  Repeat.
4160   
4161   * If the file contains hundreds of messages, you may not want to repeat
4162     this for all of them.  Instead of the above, after getting to the first
4163     message type this (where "mbox" is the file you want to put the messages
4164     in):
4165   
4166       C-x ( C-o mbox RET M-s ^From: RET M-0 C-x )
4167   
4168     (The rmail-search command ("M-s") is used instead of just "n" because it
4169     is the only command which will cause an error when it reaches the last
4170     message in the file, which is necessary to terminate the keyboard macro.
4171     This will fail if there are messages in the file that don't have a
4172     `From:' header.  This assumes rmail-delete-after-output is nil.)
4173   
4174     It is wise to save a copy of the RMAIL file first, in case you make a
4175     mistake.
4176   
4177   * There are software packages available for converting files or even
4178     entire directories of BABYL files to standard Unix format.  These are
4179     helpful in this situation, but are intended mainly for people who have
4180     used RMAIL for a long time and are converting to some other mail reader.
4181     Lookup `rmail', `vm', and `babyl' in the Emacs Lisp Archive (see
4182     question 89).
4183   
4184   You may wish to disable RMAIL to avoid accidentally destroying your mbox
4185   file (I have this in my .emacs):
4186   
4187     (put 'rmail 'disabled t)            ; avoid mbox destruction
4188   
4189 159: How do I make Emacs automatically start my mail/news reader?
4190   
4191   Example:
4192   
4193     emacs -f gnus
4194   
4195   Also:
4196   
4197     alias gnus 'emacs -f gnus'
4198   
4199   It is probably unwise to automatically start your mail or news reader from
4200   your .emacs file.  This would cause problems if you needed to run two
4201   copies of Emacs at one time.  Also, this would make it difficult for you
4202   to start Emacs quickly when you needed to.
4203   
4204 160: How do I read news under Emacs?
4205   
4206   There are at least three news reading packages that operate inside Emacs.
4207   `rnews' comes with Emacs.  GNUS and Gnews come separately.  rnews will
4208   be replaced by GNUS in Emacs 19.
4209   
4210   rnews works only with a local news spool directory.  Both GNUS and Gnews
4211   handle reading news remotely via NNTP in addition to reading from a local
4212   news spool.  GNUS supports reading mail stored in MH folders or articles
4213   saved by GNUS.
4214   
4215   Gnews is styled after `rn' and seems to work like RMAIL.  GNUS feels more
4216   like VM.  People have complained that GNUS uses a lot of CPU time (it
4217   does).  Some people have complained that Gnews is slower than GNUS.
4218   
4219   For more information about GNUS, see question 108.
4220   
4221   Gnews was written by Matthew P. Wiener <weemba@libra.wistar.upenn.edu>.
4222   The latest version seems to be 2.0, posted October 3, 1988.  Matthew
4223   posted some fixes on October 26, 1988.  Gnews does not appear to have been
4224   supported after this date.  In particular, it has been reported that Gnews
4225   does not work with Emacs 18.57.  There is a newsgroup for Gnews called
4226   gnu.emacs.gnews.
4227   
4228 161: Why does `rnews' say "No News is good news" when there is news?
4229   
4230   rnews doesn't speak NNTP.  You may need to use GNUS or Gnews.
4231   
4232 162: Why doesn't GNUS work anymore via NNTP?
4233   
4234   There is a bug in NNTP version 1.5.10, such that when multiple requests
4235   are sent to the NNTP server, the server only handles the first one before
4236   blocking waiting for more input which never comes.  NNTP version 1.5.11
4237   claims to fix this.
4238   
4239   You can work around the bug inside Emacs like this:
4240   
4241     (setq nntp-maximum-request 1)
4242   
4243   I also have a patch for NNTP 1.5.10 by Mike Pelletier
4244   <stealth@engin.umich.edu> that is based on the timeout code that was in
4245   1.5.9.  However, please try to upgrade to 1.5.11 first.
4246   
4247   You can find out what version of NNTP your news server is running by
4248   telnetting to the NNTP port (usually 119) on the news server machine (ie.,
4249   `telnet server-machine 119').  The server should give its version number
4250   in the welcome message.  Type `quit' to get out.
4251   
4252 163: How do I view text with embedded underlining (eg., ClariNews)?
4253   
4254   Underlining appears like this:
4255   
4256     _^Hu_^Hn_^Hd_^He_^Hr_^Hl_^Hi_^Hn_^Hi_^Hn_^Hg
4257   
4258   You can destructively remove underlining with M-x ununderline-region.
4259   
4260   For ClariNews articles, clari-clean.el by David N. Blank-Edelman
4261   <dnb@meshugge.media.mit.edu> will remove both underlining and overstriking
4262   automatically.
4263   
4264 164: When I try to post a long article in GNUS (about 10K or longer), I get
4265  the error, "Writing to process: no more processes, nntpd"
4266   
4267   Upgrade to Emacs 18.58 or higher.
4268   
4269 165: How do I save all the items of a multi-part posting in GNUS?
4270   
4271   Use gnus-mark.el by Jamie Zawinski <jwz@lucid.com>.
4272   
4273 166: Why does GNUS put the subjects in replies beyond the 80th column?
4274   
4275   This is a feature.  If you set gnus-thread-hide-subject to non-nil, GNUS
4276   will only display the subject of the first posting in a thread, even if
4277   some of the replies use different subjects.  It hides the subjects by
4278   putting them past the edge of the window and setting truncate lines to t.
4279   
4280   If your screen looks messed up, then for some reason truncate-lines in
4281   your `*Subject*' buffer has been set to nil.  It should be set to t.
4282   
4283   (I have an enhancement to GNUS 3.13 that will make it only hide the subject
4284   of a posting when it is unchanged from the followed-up-to posting.  Thus,
4285   you can use the subject hiding feature and still know when someone changes
4286   the subject.  (I have forgotten who originally gave me the idea for this.))
4287   
4288 167: Why is GNUS so slow to start up?
4289   
4290   GNUS does several things that take quadratic time of the number of
4291   newsgroups that are listed in .newsrc.  The quick fix for this is to
4292   remove all the newsgroups in which you have no interest from your .newrc
4293   file by using GNUS's C-k command in the `*Newsgroup*' buffer after
4294   displaying all newsgroups with the L command.  If you were to directly
4295   edit your .newsrc to remove the newsgroups, GNUS would add them back.
4296   
4297   GNUS uses a quadratic algorithm to check for duplicates when the .newsrc
4298   file is newer than the .newsrc.el file (ie., you edited your .newsrc).
4299   GNUS uses a quadratic algorithm to check for new newsgroups every time it
4300   connects to the news server.  {There may be other quadratic algorithms
4301   that I am not aware of.}
4302   
4303   You can speed up GNUS by using the C-k command in the *Newsgroup* buffer
4304   to remove newsgroups from your .newsrc file.
4305   
4306   Of course, GNUS will run faster if you make sure it is byte-compiled.
4307   
4308   Felix Lee wrote some enhancements called `gnus-speedups.el' that fix some
4309   of the problems.  See the Emacs Lisp Archive.
4310   
4311 168: How do I catch up all newsgroups in GNUS?
4312   
4313   In the `*Newsgroup*' buffer, type the following magical incantation:
4314   
4315     M-< C-x ( C-@ c y C-u C-@ C-e C-f C-f M-0 C-x )
4316   
4317   Leave off the "M-<" if you only want to catch up from point to the end of
4318   the `*Newsgroup' buffer.
4319   
4320 169: Why can't I kill in GNUS on the Newsgroups/Keywords/Control line?
4321   
4322   GNUS 3.14.1 will complain that the `Newsgroups:', `Keywords:', and
4323   `Control:' headers are `Unknown header field's.
4324   
4325   For the `Newsgroups:' header, there is an easy workaround: kill on the
4326   `Xref' header instead, which will be present on any cross-posted article.
4327   
4328   If you really want to kill on one of these headers, you can do it like
4329   this:
4330   
4331     (gnus-kill nil "^Newsgroups: .*\\(bad\\.group\\|worse\\.group\\)")
4332   
4333   Various people (eg., Greg Holley <holley@acuson.com>) have posted
4334   solutions to allow more efficient killing on these headers than the
4335   preceding solution.  Masanobu Umeda plans to fix this problem.
4336   
4337 170: How do I get rid of flashing messages in GNUS for slow connections?
4338   
4339   GNUS outputs "NNTP: Reading..." message and then clears them, over and
4340   over.  In version 3.14.1 there is a variable named nntp-debug-read that
4341   can help.  Johan Vromans <jv@mh.nl> wrote a fix.  Others have also written
4342   fixes.
4343   
4344 171: Why is catch up slow in Gnews/GNUS?
4345   
4346   Because GNUS is marking crosspostings read.  {I think it should do this at
4347   the time the article is read to spread out the load.  Maybe someone will
4348   write the code to do this.}
4349   
4350 172: Why does GNUS hang for a long time when posting?
4351   
4352   David Lawrence <tale@uunet.uu.net> explains:
4353   
4354     The problem is almost always interaction between NNTP and C News.  NNTP
4355     POST asks C News's inews to not background itself but rather hang around
4356     and give its exit status so it knows whether the post was successful.
4357     (That wait will on some systems not return the exit status of the
4358     waited for job is a different sort of problem.)  It ends up taking a
4359     long time because inews is calling relaynews, which often waits for
4360     another relaynews to free the lock on the news system so it can file the
4361     article.
4362   
4363     My preferred solution is to change inews to not call relaynews, but
4364     rather use newsspool.  This loses some error-catching functionality, but
4365     is for the most part safe as inews will detect a lot of the errors on
4366     its own.  The C News folks have sped up inews, too, so speed should look
4367     better to most folks as that update propagates around.
4368   
4369 173: Why don't my news postings in GNUS get past the local machine?
4370   
4371   Three possible reasons: local distribution, C News date problem (see
4372   question 174, and the path problem.  This piece of code may fix the path
4373   problem for you:
4374   
4375     (setq gnus-use-generic-path t)
4376   
4377 174: Why is the GNUS-generated `Date:' header invalid?
4378   
4379   GNUS generates `Date:' headers without time zones.  C-News's `inews'
4380   doesn't replace it with a valid header, but will generate it if not
4381   already there.  If it is invalid, the article will not be forwarded
4382   properly.  Quick fix:
4383   
4384     (defun gnus-inews-date () nil)
4385   
4386   This is not fixed as of GNUS 3.14.1.
4387   
4388 175: Why doesn't GNUS generate the `Lines:' header?
4389   
4390   GNUS was written for B news, which would generate the `Lines:' header.  C
4391   news doesn't.  There is a comment in C news's `inews' that you can
4392   uncomment to enable this functionality.  Or you can have GNUS generate the
4393   header, for example:
4394   
4395     ;; idea by jbryans@beach.csulb.edu (Jack Bryans)
4396     (defun add-lines-header ()
4397       ;; Count the number of lines in the current posting and insert the
4398       ;; header line Lines into the message.
4399       (save-excursion
4400         (goto-char (point-min))
4401         (if (search-forward "\n\n") ;; ***** I suspect this is wrong *****
4402           (let ((lines (count-lines (point) (point-max))))
4403             (forward-line -1)
4404             (insert-string "Lines: " lines "\n")))))
4405   
4406   Mike Williams <mike-w@cs.aukuni.ac.nz> has written something similar.
4407   
4408   Ronald Florence <ron@mlfarm.com> has a patch for GNUS that makes it
4409   calculate the `Lines:' header for incoming articles when necessary that
4410   works for sites with local news spools.
4411   
4412   David Lawrence <tale@uunet.uu.net> says that GNUS 3.14.1 generates Lines
4413   if gnus-news-system is Cnews.
4414   
4415 176: Why do I get "Cannot open load file" "nntp" when compiling GNUS?
4416   
4417   Specifically, the error message is this:
4418   
4419     Error occurred processing gnus.el: File error (("Cannot open load file" "nntp"))
4420   
4421   This means that nntp.el is not in Emacs's load-path, which is easy to
4422   happen when compiling using the Makefile.
4423   
4424   Easiest solution: set EMACSLOADPATH in Makefile (idea from Glenn Gribble
4425   <glenn@netcom.com>):
4426   
4427     EMACSLOADPATH=/usr/local/emacs/lisp:.
4428     ELC= env EMACSLOADPATH=$(EMACSLOADPATH) emacs -batch -f batch-byte-compile
4429   
4430   Another solution, in hack.el put this:
4431   
4432     (defun gross-hack () (setq load-path (cons "/directory" load-path)))
4433   
4434   Then in Makefile:
4435   
4436     ELC= emacs -batch -l hack.el -f gross-hack -f batch-byte-compile
4437   
4438 177: How do I kill all articles in GNUS but those matching a pattern?
4439   
4440   Example:
4441   
4442     ;; kill everything
4443     (gnus-kill "subject" "" nil nil)
4444     ;; then restore stuff by our favorite poster
4445     (gnus-kill "from" "good-guy"
4446                (function
4447                 (lambda ()
4448                   (if (eq ?X (char-after (save-excursion
4449                                            (beginning-of-line 1)
4450                                            (point))))
4451                       (gnus-Subject-clear-mark-forward 1))))
4452                t)
4453   
4456 ----------------------------------------------------------------------
4457 Copyright (C) 1990, 1991, 1992 Joseph Brian Wells
4458 Copyright (C) 1992, 1993 Steven Byrnes
4460 This list of frequently asked questions about GNU Emacs with answers
4461 ("FAQ") may be translated into other languages, transformed into other
4462 formats (e.g. Texinfo, Info, WWW, WAIS, etc.), and updated with new
4463 information.  The same conditions apply to any derivative of the FAQ as
4464 apply to the FAQ itself.  Every copy of the FAQ must include this notice
4465 or an approved translation, information on who is currently maintaining
4466 the FAQ and how to contact them (including their e-mail address), and
4467 information on where the latest version of the FAQ is archived (including
4468 FTP information).  The FAQ may be copied and redistributed under these
4469 conditions, except that the FAQ may not be embedded in a larger literary
4470 work unless that work itself allows free copying and redistribution.