# HG changeset patch # User Dave Love # Date 939148288 0 # Node ID 5efbdf87eb4d2cb2d360bf8979d50c5dcd14dd5e # Parent a2680de7b3b3ed7575e7162608f6c4c67444f4e1 Now in Texinfo. diff -r a2680de7b3b3 -r 5efbdf87eb4d etc/FAQ --- a/etc/FAQ Tue Oct 05 11:57:17 1999 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3547 +0,0 @@ - GNU Emacs FAQ: Introduction - -This is the introduction to a list of frequently asked questions (FAQ) -about GNU Emacs 20 with answers. Some of the answers are not valid for GNU -Emacs 18 or 19. - -[This version has been somewhat edited from the last-posted version -(as of February 1999) for inclusion in the Emacs distribution.] - -The FAQ is posted (in five parts) to reduce the noise level in the -gnu.emacs.help newsgroup (which is also the help-gnu-emacs mailing list) -which results from the repetition of frequently asked questions, wrong -answers to these questions, corrections to the wrong answers, corrections -to the corrections, debate, name calling, and generally unproductive use of -the mailing list. Also, it serves as a repository of the canonical "best" -answers to these questions. However, if you know a better answer or even a -slight change that improves an answer, please tell us! - -If you know the answer to a question in the FAQ list, please reply to the -question by e-mail instead of posting. Help reduce noise! - -The FAQ is crossposted to comp.emacs because some sites do not receive the -gnu.* newsgroups. The FAQ is also crossposted to news.answers. - -Full instructions for getting the latest FAQ are in question 22. - -A diff file between the last version of the FAQ and this one should have -been posted along with the FAQ. If you did not receive the diff file, you -can get it at - - ftp://the-tech.mit.edu/pub/GNU-Emacs/faq-diffs - -Please suggest new questions, answers, wording changes, and deletions by -sending mail to emacs-faq@lerner.co.il. The most helpful form for -suggestions is a context diff (i.e., the output of `diff -c'). Include -"FAQ" in the subject of messages about the FAQ list. - -Please do not send questions to us just because you do not want to disturb -a lot of people and you think we would know the answer. We do not have -time to answer questions individually. :-( - --- -Reuven M. Lerner and the FAQ team (a full list is -at the bottom of the FAQ). - ----------------------------------------------------------------------- - -Notation Used in FAQ - -1: What do these mean: C-h, M-C-a, RET, "ESC a", etc.? -2: What does "M-x command" mean? -3: How do I read topic XXX in the on-line manual? -4: What do these mean: etc/SERVICE, src/config.h, lisp/default.el? -5: What are FSF, LPF, OSF, GNU, RMS, FTP, and GPL? - -General Questions - -6: What is the LPF? -7: What is the real legal meaning of the GNU copyleft? -8: What are appropriate messages for gnu.emacs.help, gnu.emacs.bug, - comp.emacs, etc.? -9: Where can I get old postings to gnu.emacs.help and other GNU groups? -10: Where should I report bugs and other problems with Emacs? -11: How do I unsubscribe from this mailing list? -12: What is the current address of the FSF? - -On-line Help, Printed Manuals, Other Sources of Help - -13: I'm just starting Emacs; how do I do basic editing? -14: How do I find out how to do something in Emacs? -15: How do I get a printed copy of the Emacs manual? -16: Where can I get documentation on Emacs Lisp? -17: How do I install a piece of Texinfo documentation? -18: How do I print a Texinfo file? -19: Can I view Info files without using Emacs? -20: What informational files are available for Emacs? -21: Where can I get help in installing Emacs? -22: Where can I get the latest version of this document (the FAQ list)? - -Status of Emacs - -23: Where does the name "Emacs" come from? -24: What is the latest version of Emacs? -25: What is different about Emacs 20? - -Common Things People Want To Do - -26: How do I set up a .emacs file properly? -27: How do I debug a .emacs file? -28: How do I make Emacs display the current line (or column) number? -29: How can I modify the titlebar to contain the current filename? -30: How do I turn on abbrevs by default just in mode XXX? -31: How do I turn on auto-fill mode by default? -32: How do I make Emacs use a certain major mode for certain files? -33: How do I search for, delete, or replace unprintable (8-bit or control) - characters? -34: How can I highlight a region of text in Emacs? -35: How do I control Emacs's case-sensitivity when searching/replacing? -36: How do I make Emacs wrap words for me? -37: Where can I get a better spelling checker for Emacs? -38: How can I spell-check TeX or *roff documents? -39: How do I change load-path? -40: How do I use an already running Emacs from another window? -41: How do I make Emacs recognize my compiler's funny error messages? -42: How do I indent switch statements like this? -43: How can I make Emacs automatically scroll horizontally? -44: How do I make Emacs "typeover" or "overwrite" instead of inserting? -45: How do I stop Emacs from beeping on a terminal? -46: How do I turn down the bell volume in Emacs running under X Windows? -47: How do I tell Emacs to automatically indent a new line to the - indentation of the previous line? -48: How do I show which parenthesis matches the one I'm looking at? -49: In C mode, can I show just the lines that will be left after #ifdef - commands are handled by the compiler? -50: Is there an equivalent to the `.' (dot) command of vi? -51: What are the valid X resource settings (i.e., stuff in .Xdefaults)? -52: How do I execute ("evaluate") a piece of Emacs Lisp code? -53: How do I change Emacs's idea of the tab character's length? -54: How do I insert `>' at the beginning of every line? -55: How do I insert "_^H" before each character in a region to get an - underlined paragraph? -56: How do I repeat a command as many times as possible? -57: How do I make Emacs behave like this: when I go up or down, the cursor - should stay in the same column even if the line is too short? -58: How do I tell Emacs to iconify itself? -59: How do I use regexps (regular expressions) in Emacs? -60: How do I perform a replace operation across more than one file? -61: Where is the documentation for "etags"? -62: How do I disable backup files? -63: How do I disable auto-save-mode? -64: How can I create or modify new pull-down menu options? -65: How do I delete menus and menu options? -66: How do I turn on syntax highlighting? -67: How can I force Emacs to scroll only one line when I move past the - bottom of the screen? -68: How can I replace highlighted text with what I type? -69: How can I edit MS-DOS-style text files using Emacs? -70: How can I tell Emacs to fill paragraphs with a single space after - each period? - -Bugs/Problems - -71: Does Emacs have problems with files larger than 8 megabytes? -72: How do I get rid of ^M or echoed commands in my shell buffer? -73: Why do I get "Process shell exited abnormally with code 1"? -74: Where is the termcap/terminfo entry for terminal type "emacs"? -75: Why does Emacs spontaneously start displaying "I-search:" and beeping? -76: Why can't Emacs talk to certain hosts (or certain hostnames)? -77: Why does Emacs say "Error in init file"? -78: Why does Emacs ignore my X resources (my .Xdefaults file)? -79: Why does Emacs take 20 seconds to visit a file? -80: How do I edit a file with a `$' in its name? -81: Why does shell mode lose track of the shell's current directory? -82: Are there any security risks in Emacs? -83: Dired says, "no file on this line" when I try to do something. - -Difficulties Building/Installing/Porting Emacs - -84: How do I install Emacs? -85: How do I update Emacs to the latest version? -86: What should I do if I have trouble building Emacs? -87: Why does linking Emacs with -lX11 fail? - -Finding/Getting Emacs and Related Packages - -88: Where can I get Emacs on the net (or by snail mail)? -89: How do I find a Emacs Lisp package that does XXX? -90: Where can I get Emacs Lisp packages that don't come with Emacs? -91: How do I submit code to the Emacs Lisp Archive? -92: Where can I get other up-to-date GNU stuff? -93: What is the difference between Emacs and XEmacs (formerly "Lucid - Emacs")? -94: Where can I get Emacs for my PC running MS-DOS? -95: Where can I get Emacs for Microsoft Windows, Windows 9x, or Windows - NT? -96: Where can I get Emacs for my PC running OS/2? -97: Where can I get Emacs for my Atari ST? -98: Where can I get Emacs for my Amiga? -99: Where can I get Emacs for NeXTSTEP? -100: Where can I get Emacs for my Apple computer? -101: Where do I get Emacs that runs on VMS under DECwindows? -102: Where can I get modes for Lex, Yacc/Bison, Bourne shell, Csh, C++, - Objective-C, Pascal, Java, and Awk? -103: What is the IP address of XXX.YYY.ZZZ? - -Major Emacs Lisp Packages, Emacs Extensions, and Related Programs - -104: VM (View Mail) -- another mail reader within Emacs, with MIME support -105: Supercite -- mail and news citation package within Emacs -106: Calc -- poor man's Mathematica within Emacs -107: VIPER -- vi emulation for Emacs -108: AUC TeX -- enhanced LaTeX mode with debugging facilities -109: BBDB -- personal Info Rolodex integrated with mail/news readers -110: Ispell -- spell checker in C with interface for Emacs -111: W3-mode -- A World Wide Web browser inside of Emacs -112: EDB -- Database program for Emacs; replaces forms editing modes -113: Mailcrypt -- PGP interface within Emacs mail and news -114: JDE -- Development environment for Java programming -115: Patch -- program to apply "diffs" for updating files - -Changing Key Bindings and Handling Key Binding Problems - -116: How do I bind keys (including function keys) to commands? -117: Why does Emacs say "Key sequence XXX uses invalid prefix characters"? -118: Why doesn't this [terminal or window-system setup] code work in my - .emacs file, but it works just fine after Emacs starts up? -119: How do I use function keys under X Windows? -120: How do I tell what characters or symbols my function or arrow keys - emit? -121: How do I set the X key "translations" for Emacs? -122: How do I handle C-s and C-q being used for flow control? -123: How do I bind `C-s' and `C-q' (or any key) if these keys are filtered - out? -124: Why does the "Backspace" key invoke help? -125: Why doesn't Emacs look at the stty settings for Backspace vs. Delete? -126: How do I "swap" two keys? -127: How do I produce C-XXX with my keyboard? -128: What if I don't have a Meta key? -129: What if I don't have an Escape key? -130: Can I make my "Compose Character" key behave like a Meta key? -131: How do I bind a combination of modifier key and function key? -132: Why doesn't my Meta key work in an xterm window? -133: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0 - and 9.x? - -Using Emacs with Alternate Character Sets - -134: How do I make Emacs display 8-bit characters? -135: How do I input 8-bit characters? -136: Where can I get an Emacs that handles kanji, Chinese, or other - character sets? -137: Where is an Emacs that can handle Semitic (right-to-left) alphabets? - -Mail and News - -138: How do I change the included text prefix in mail/news followups? -139: How do I save a copy of outgoing mail? -140: Why doesn't Emacs expand my aliases when sending mail? -141: Why does Rmail think all my saved messages are one big message? -142: How can I sort the messages in my Rmail folder? -143: Why does Rmail need to write to /usr/spool/mail? -144: How do I recover my mail files after Rmail munges their format? -145: How can I force Rmail to reply to the sender of a message, but not the - other recipients? -146: How can I get my favorite Emacs mail package to support MIME? -147: How do I make Emacs automatically start my mail/news reader? -148: How do I read news under Emacs? -149: Why doesn't Gnus work via NNTP? -150: How do I view news articles with embedded underlining (e.g., - ClariNews)? -151: How do I save all the items of a multi-part posting in Gnus? -152: How do I make Gnus start up faster? -153: How do I catch up all newsgroups in Gnus? -154: Why can't I kill in Gnus based on the Newsgroups/Keywords/Control - headers? -155: How do I get rid of flashing messages in Gnus for slow connections? -156: Why is catch up slow in Gnus? -157: Why does Gnus hang for a long time when posting? -158: Where can I find out more about Gnus? - ------------------------------------------------------------- - -If you are viewing this text in a GNU Emacs Buffer, you can type "M-2 C-x -$" to get an overview of just the questions. Then, when you want to look -at the text of the answers, just type "C-x $". - -To search for a question numbered XXX, type "M-C-s ^XXX:", followed by a -C-r if that doesn't work. Type RET to end the search. - -If you have a web browser and the browse-url package configured for -it, you can visit ftp and HTTP uniform resource locators (URLs) by -placing the cursor on the URL and typing M-x browse-url-at-point. - -The FAQ is posted in five parts; if you are missing a section or would -prefer to read the FAQ in a single file, see question 22. - ------------------------------------------------------------- - Time-stamp: <1999-02-10 18:44:04 reuven> - - -Notation Used in FAQ - - Skip this section and then come back if you don't understand some of the - later answers. - -1: What do these mean: C-h, M-C-a, RET, "ESC a", etc.? - - C-x: press the `x' key while holding down the Control key - - M-x: press the `x' key while holding down the Meta key (if your computer - doesn't have a Meta key, see question 128) - - M-C-x: press the `x' key while holding down both Control and Meta - C-M-x: a synonym for the above - - LFD: Linefeed or Newline; same as C-j - RET: Return, sometimes marked Enter; same as C-m - DEL: Delete, usually not the same as Backspace; same as C-? (See - question 124 if deleting invokes Emacs help) - ESC: Escape; same as C-[ - TAB: Tab; same as C-i - SPC: Space bar - - Key sequences longer than one key (and some single-key sequences) are - inside double quotes or on lines by themselves. Any real spaces in such - a key sequence should be ignored; only SPC really means press the space - key. - - The ASCII code sent by C-x (except for C-?) is the value that would be - sent by pressing just `x' minus 96 (or 64 for uppercase `X') and will be - from 0 to 31. The ASCII code sent by M-x is the sum of 128 and the ASCII - code that would be sent by pressing just the `x' key. Essentially, the - Control key turns off bits 5 and 6 and the Meta key turns on bit 7. - - NOTE: C-? (aka DEL) is ASCII code 127. It is a misnomer to call C-? a - "control" key, since 127 has both bits 5 and 6 turned ON. Also, on very - few keyboards does C-? generate ASCII code 127. - - For further information, see "Characters" and "Keys" in the on-line - manual. (See question 3 if you don't know how.) - -2: What does "M-x command" mean? - - "M-x command" means type M-x, then type the name of the command, then - type RET. (See question 1 if you're not sure what "M-x" and "RET" mean.) - - M-x (by default) invokes the command "execute-extended-command". This - command allows you to run any Emacs command if you can remember the - command's name. If you can't remember the command's name, you can type - TAB and SPC for completion, `?' for a list of possibilities, and M-p and - M-n to see previous commands entered. An Emacs "command" is any - "interactive" Emacs function. - - NOTE: Your system administrator may have bound other key sequences to - invoke execute-extended-command. A function key labeled `Do' is a good - candidate for this. - - To run non-interactive Emacs functions, see question 52. - -3: How do I read topic XXX in the on-line manual? - - When we refer you to topic XXX in the on-line manual, you can read this - manual node inside Emacs (assuming nothing is broken) by typing this: - - C-h i m emacs RET m XXX RET - - This invokes Info, the GNU hypertext documentation browser. If you don't - already know how to use Info, type `?' from within Info. - - If we refer to topic XXX:YYY, type this: - - C-h i m emacs RET m XXX RET m YYY RET - - WARNING: Your system administrator may not have installed the Info files, - or may have installed them improperly. In this case you should complain. - - See question 15 if you would like a paper copy of the Emacs manual. - -4: What do these mean: etc/SERVICE, src/config.h, lisp/default.el? - - These are files that come with Emacs. The Emacs distribution is divided - into subdirectories; the important ones are "etc", "lisp", and "src". - - If you use Emacs, but don't know where it is kept on your system, start - Emacs, then type "C-h v data-directory RET". The directory name - displayed by this will be the full pathname of the installed "etc" - directory. - - The location of your Info directory (i.e., where on-line documentation is - stored) is kept in the variable Info-default-directory-list. Use "C-h v - Info-default-directory-list RET" to see the contents of this variable, - which will be a list of directory names. The last directory in that list - is probably where most Info files are stored. By default, Info - documentation is placed in /usr/local/info. - - Some of these files are available individually via FTP or e-mail; see - question 20. All are available in the source distribution. Many of the - files in the "etc" directory are also available via the Emacs "help" - menu, or by typing "C-h ?" (M-x help-for-help). - - WARNING: Your system administrator may have removed the src directory and - many files from the etc directory. - -5: What are FSF, LPF, OSF, GNU, RMS, FTP, and GPL? - - FSF == Free Software Foundation - LPF == League for Programming Freedom - OSF == Open Software Foundation - GNU == GNU's Not Unix - RMS == Richard Matthew Stallman - FTP == File Transfer Protocol - GPL == GNU General Public License - - NOTE: Avoid confusing the FSF, the LPF, and the OSF. The LPF opposes - look-and-feel copyrights and software patents. The FSF aims to make high - quality free software available for everyone. The OSF is a consortium of - computer vendors which develops commercial software for Unix systems. - - NOTE: The word "free" in the title of the Free Software Foundation refers - to "freedom," not "zero dollars." Anyone can charge any price for - GPL-covered software that they want to. However, in practice, the - freedom enforced by the GPL leads to low prices, because you can always - get the software for less money from someone else, because everyone has - the right to resell or give away GPL-covered software. - - -General Questions - -6: What is the LPF? - - The LPF opposes the expanding danger of software patents and - look-and-feel copyrights. To get more information, feel free to contact - the LPF via e-mail or otherwise. You may also contact Joe Wells - ; he will be happy to talk with you about the LPF. - - You can find more information about the LPF in the file etc/LPF. More - papers describing the LPF's views are available on the Internet and also - from the LPF: - - http://lpf.ai.mit.edu/ - -7: What is the real legal meaning of the GNU copyleft? - - The real legal meaning of the GNU General Public License (copyleft) will - only be known if and when a judge rules on its validity and scope. There - has never been a copyright infringement case involving the GPL to set any - precedents. Please take any discussion regarding this issue to the - newsgroup gnu.misc.discuss, which was created to hold the extensive flame - wars on the subject. - - RMS writes: - - The legal meaning of the GNU copyleft is less important than the - spirit, which is that Emacs is a free software project and that work - pertaining to Emacs should also be free software. "Free" means that - all users have the freedom to study, share, change and improve Emacs. - To make sure everyone has this freedom, pass along source code when you - distribute any version of Emacs or a related program, and give the - recipients the same freedom that you enjoyed. - -8: What are appropriate messages for gnu.emacs.help, gnu.emacs.bug, - comp.emacs, etc.? - - The file etc/MAILINGLISTS discusses the purpose of each GNU mailing-list. - (See question 20 if you want a copy of the file.) For those lists which - are gatewayed with newsgroups, it lists both the newsgroup name and the - mailing list address. - - comp.emacs is for discussion of Emacs programs in general. This includes - Emacs along with various other implementations, such as JOVE, MicroEmacs, - Freemacs, MG, Unipress, CCA, and Epsilon. - - Many people post Emacs questions to comp.emacs because they don't receive - any of the gnu.* newsgroups. Arguments have been made both for and - against posting GNU-Emacs-specific material to comp.emacs. You have to - decide for yourself. - - Messages advocating "non-free" software are considered unacceptable on - any of the gnu.* newsgroups except for gnu.misc.discuss, which was - created to hold the extensive flame-wars on the subject. "Non-free" - software includes any software for which the end user can't freely modify - the source code and exchange enhancements. Be careful to remove the - gnu.* groups from the "Newsgroups:" line when posting a followup that - recommends such software. - - gnu.emacs.bug is a place where bug reports appear, but avoid posting bug - reports to this newsgroup (see question 10). - -9: Where can I get old postings to gnu.emacs.help and other GNU groups? - - The FSF has maintained archives of all of the GNU mailing lists for many - years, although there may be some unintentional gaps in coverage. The - archive is not particularly well organized or easy to retrieve individual - postings from, but pretty much everything is there. The archives - are available at - - ftp://ftp-mailing-list-archives.gnu.org/ - - Web-based Usenet search services, such as DejaNews, also archive the - gnu.* groups. You can reach DejaNews at - - http://www.dejanews.com - -10: Where should I report bugs and other problems with Emacs? - - The correct way to report Emacs bugs is by e-mail to - bug-gnu-emacs@gnu.org. Anything sent here also appears in the - newsgroup gnu.emacs.bug, but please use e-mail instead of news to submit - the bug report. This ensures a reliable return address so you can be - contacted for further details. - - Be sure to read the "Bugs" section of the Emacs manual before reporting a - bug to bug-gnu-emacs! The manual describes in detail how to submit a - useful bug report. (See question 3 if you don't know how to read the - manual.) - - RMS says: - - Sending bug reports to help-gnu-emacs (which has the effect of posting - on gnu.emacs.help) is undesirable because it takes the time of an - unnecessarily large group of people, most of whom are just users and - have no idea how to fix these problem. bug-gnu-emacs reaches a much - smaller group of people who are more likely to know what to do and have - expressed a wish to receive more messages about Emacs than the others. - - However, RMS says there are circumstances when it is okay to post to - gnu.emacs.help: - - If you have reported a bug and you don't hear about a possible fix, - then after a suitable delay (such as a week) it is okay to post on - gnu.emacs.help asking if anyone can help you. - - If you are unsure whether you have found a bug, consider the following - non-exhaustive list, courtesy of RMS: - - If Emacs crashes, that is a bug. If Emacs gets compilation errors - while building, that is a bug. If Emacs crashes while building, that - is a bug. If Lisp code does not do what the documentation says it - does, that is a bug. - -11: How do I unsubscribe from this mailing list? - - If you are receiving a GNU mailing list named "XXX", you might be able to - unsubscribe from it by sending a request to the address - . However, this will not work if you are - not listed on the main mailing list, but instead receive the mail from a - distribution point. In that case, you will have to track down at which - distribution point you are listed. Inspecting the "Received:" headers on - the mail messages may help, along with liberal use of the "EXPN" or - "VRFY" sendmail commands through "telnet smtp". Ask your - postmaster for help. - -12: What is the current address of the FSF? - - E-mail: gnu@gnu.org - Telephone: +1-617-542-5942 - Fax: +1-617-542-2652 - World Wide Web: http://www.gnu.org/ - - Postal address: - Free Software Foundation - 59 Temple Place - Suite 330 - Boston, MA 02111-1307 - USA - - For details on how to order items directly from the FSF, see the file - etc/ORDERS. - - -On-line Help, Printed Manuals, Other Sources of Help - -13: I'm just starting Emacs; how do I do basic editing? - - Type "C-h t" to invoke the self-paced tutorial. Just typing `C-h' enters - the help system. - - WARNING: Your system administrator may have changed `C-h' to act like DEL - to deal with local keyboards. You can use M-x help-for-help instead to - invoke help. To discover what key (if any) invokes help on your system, - type "M-x where-is RET help-for-help RET". This will print a - comma-separated list of key sequences in the echo area. Ignore the last - character in each key sequence listed. Each of the resulting key - sequences invokes help. - - NOTE: Emacs help works best if it is invoked by a single key whose value - should be stored in the variable help-char. - - There is also a WWW-based tutorial for Emacs 18, much of which is also - relevant for Emacs 20, available at - - http://kufacts.cc.ukans.edu/cwis/writeups/misc/emacsguide.html - -14: How do I find out how to do something in Emacs? - - There are several methods for finding out how to do things in Emacs. - - * The complete text of the Emacs manual is available on-line via the Info - hypertext reader. Type "C-h i" to invoke Info. Typing `h' immediately - after entering Info will provide a short tutorial on how to use it. - - * You can order a hardcopy of the manual from the FSF. See question 15. - - * You can get a printed reference card listing commands and keys to - invoke them. You can order one from the FSF for $1 (or 10 for $5), or - you can print your own from the etc/refcard.tex or etc/refcard.ps files - in the Emacs distribution. - - * You can list all of the commands whose names contain a certain word - (actually which match a regular expression) using "C-h a" (M-x - command-apropos). - - * You can list all of the functions and variables whose names contain a - certain word using M-x apropos. - - * There are many other commands in Emacs for getting help and - information. To get a list of these commands, type `?' after `C-h'. - -15: How do I get a printed copy of the Emacs manual? - - You can order a printed copy of the Emacs manual from the FSF. For - details see the file etc/ORDERS. - - The full TeX source for the manual also comes in the "man" directory of - the Emacs distribution, if you're daring enough to try to print out this - 440-page manual yourself (see question 18). - - If you absolutely have to print your own copy, and you don't have TeX, - you can get a PostScript version from - - ftp://ftp.cs.ubc.ca/pub/archive/gnu/manuals_ps/emacs-19.21.ps.gz - - Note that the above document is somewhat out of date, although most major - concepts are still relevant. This site requests that you please *confine - any major ftping to late evenings or early mornings, local time* (Pacific - time zone, GMT-8). - - A WWW version of the (somewhat outdated) Emacs 19.34 manual is at - - http://www.cl.cam.ac.uk/texinfodoc/emacs_toc.html - - See also question 14 for how to view the manual on-line. - -16: Where can I get documentation on Emacs Lisp? - - Within Emacs, you can type "C-h f" to get the documentation for a - function, "C-h v" for a variable. - - For more information, obtain the Emacs Lisp Reference Manual. Details on - ordering it from FSF are in file etc/ORDERS. - - The Emacs Lisp Reference Manual is also available on-line, in Info - format. Texinfo source for the manual (along with pregenerated Info - files) is available at - - ftp://ftp.gnu.org/pub/gnu/emacs/elisp-manual-20-2.5.tar.gz - - and all mirrors of ftp.gnu.org (See question 92 for a list). See - question 17 if you want to install the Info files, or question 18 if you - want to use the Texinfo source to print the manual yourself. - - WWW versions of the Emacs Lisp Reference Manual are available at - - http://www.cl.cam.ac.uk/texinfodoc/elisp_1.html - http://www.cs.indiana.edu/usr/local/www/elisp/lispref/elisp_toc.html - -17: How do I install a piece of Texinfo documentation? - - First, you must turn the Texinfo files into Info files. You may do this - using the stand-alone "makeinfo" program, available as part of the latest - Texinfo package at - - ftp://ftp.gnu.org/pub/gnu/texinfo/texinfo-3.12.tar.gz - - and all mirrors of ftp.gnu.org (see question 92 for a list). - - For information about the Texinfo format, read the Texinfo manual which - comes with Emacs. This manual also comes installed in Info format, so - you can read it on-line. - - Neither texinfo-format-buffer nor makeinfo installs the resulting Info - files in Emacs's Info tree. To install Info files: - - 1. Move the files to the "info" directory in the installed Emacs - distribution. See question 4 if you don't know where that is. - - 2. Edit the file info/dir in the installed Emacs distribution, and add a - line for the top level node in the Info package that you are - installing. Follow the examples already in this file. The format is: - - * Topic: (relative-pathname). Short description of topic. - - If (as it should have done) the Texinfo file used the @direntry - command, you can run the "install-info" command from the current - Texinfo distribution to do this automatically -- see the example in - the top-level Makefile in the Emacs source. - - If you want to install Info files and you don't have the necessary - privileges, you have several options: - - * Info files don't actually need to be installed before being used. You - can feed a file name to the Info-goto-node command (invoked by pressing - `g' in Info mode) by typing the name of the file in parentheses. This - goes to the node named "Top" in that file. For example, to view a Info - file named "XXX" in your home directory, you can type this: - - C-h i g (~/XXX) RET - - * You can create your own Info directory. You can tell Emacs where the - Info directory is by adding its pathname to the value of the variable - Info-default-directory-list. For example, to use a private Info - directory which is a subdirectory of your home directory named "Info", - you could put this in your .emacs file: - - (setq Info-default-directory-list - (cons "~/Info" Info-default-directory-list)) - - You will need a top-level Info file named "dir" in this directory which - has everything the system dir file has in it, except it should list - only entries for Info files in that directory. You might not need it - if all files in this directory were referenced by other "dir" files. - The node lists from all dir files in Info-default-directory-list are - merged by the Info system. - -18: How do I print a Texinfo file? - - NOTE: You can't get nicely printed output from Info files; you must still - have the original Texinfo source file for the manual you want to print. - - Assuming you have TeX installed on your system, follow these steps: - - 1. Make sure the first line of the Texinfo file looks like this: - - \input texinfo - - You may need to change "texinfo" to the full pathname of the - texinfo.tex file, which comes with Emacs as man/texinfo.tex (or copy - or link it into the current directory). - - 2. tex XXX.texinfo - - 3. texindex XXX.?? - - The texindex program comes with Emacs as man/texindex.c. - - 4. tex XXX.texinfo - - 5. Print the DVI file XXX.dvi in the normal way for printing DVI files at - your site. - - To get more general instructions, retrieve the latest Texinfo package - mentioned in question 17. The "texi2dvi" command from it will perform - the above steps 1 to 4 for you. - -19: Can I view Info files without using Emacs? - - Yes. Here are some alternative programs: - - * Info, a stand-alone version of the Info program, comes as part of the - Texinfo package. See question 17 for details. - - * Xinfo, a stand-alone version of the Info program that runs under X - Windows. You can get it at - - ftp://ftp.gnu.org/pub/gnu/xinfo/xinfo-1.01.01.tar.gz - - and all mirrors of ftp.gnu.org (See question 92 for a list). - - * Tkinfo, an Info viewer that runs under X Windows and uses Tcl/Tk. You - can get Tkinfo at - - http://math-www.uni-paderborn.de/~axel/tkinfo/ - -20: What informational files are available for Emacs? - - This isn't a frequently asked question, but it should be! A variety of - informational files about Emacs and relevant aspects of the GNU project - are available for you to read. - - The following files are available in the "etc" directory of the Emacs - distribution (see question 4 if you're not sure where that is). - - COPYING -- Emacs General Public License - DISTRIB -- Emacs Availability Information, including the popular - "Free Software Foundation Order Form" - FAQ -- Emacs Frequently Asked Questions (You're reading it) - FTP -- How to get GNU Software by Internet FTP or by UUCP - GNU -- The GNU Manifesto - INTERVIEW -- Richard Stallman discusses his public-domain - UNIX-compatible software system with BYTE editors - LPF -- Why you should join the League for Programming Freedom - MACHINES -- Status of Emacs on Various Machines and Systems - MAILINGLISTS -- GNU Project Electronic Mailing Lists - NEWS -- Emacs news, a history of user-visible changes - PROBLEMS -- Known problems with building and running Emacs in various - situations, often with workarounds. - SERVICE -- GNU Service Directory - SUN-SUPPORT -- including "Using Emacstool with GNU Emacs" - - Latest versions of some of the above files are also available at - - ftp://ftp.gnu.org/pub/gnu/GNUinfo/ - - More GNU information, including back issues of the "GNU's Bulletin", are at - - http://www.gnu.org/bulletins/bulletins.html - http://www.cs.pdx.edu/~trent/gnu/gnu.html - -21: Where can I get help in installing Emacs? - - See question 84 for some basic installation hints, and question 83 if you - have problems with the installation. - - The file etc/SERVICE (see question 4 if you're not sure where that is) - lists companies and individuals willing to sell you help in installing or - using Emacs. An up-to-date version this file is available on ftp.gnu.org - (see question 20). - -22: Where can I get the latest version of this document (the FAQ list)? - - The Emacs FAQ is available in several ways: - - * Inside of Emacs itself. You can get it from selecting the "Emacs FAQ" - option from the "Help" menu at the top of any Emacs frame, or by typing - C-h F (M-x view-emacs-FAQ). - - * Via USENET. If you can read news, the FAQ should be available in your - news spool, in both the gnu.emacs.help and comp.emacs newsgroups. - Every news reader should allow you to read any news article that is - still in the news spool, even if you have read the article before. You - may need to read the instructions for your news reader to discover how - to do this. In rn, this command will do this for you at the article - selection level: - - ?GNU Emacs Frequently Asked Questions?rc:m - - In Gnus, you should type "C-u c-x c-s" from the *Summary* buffer or - "C-u SPC" from the *Newsgroup* buffer to view all articles in a - newsgroup. - - If the FAQ articles have expired and been deleted from your news spool, - it might (or might not) do some good to complain to your news - administrator, because the most recent FAQ should not expire for a - while. - - * Via HTTP or FTP. You can always fetch the latest FAQ at - - http://www.lerner.co.il/emacs/ - - and - - ftp://ftp.lerner.co.il/pub/emacs/ - - * In the Emacs distribution. Since Emacs 18.56, the FAQ at the time of - release has been part of the Emacs distribution as etc/FAQ (see - question 4). - - * Via the World Wide Web. A hypertext version is available at - - http://www.lerner.co.il/emacs/ - - * Via anonymous ftp and e-mail from rtfm.mit.edu (and its mirror in - Europe), the main repository for FAQs and other items posted to - news.answers. The Emacs FAQs are available at - - ftp://rtfm.mit.edu/pub/usenet/comp.emacs/ - ftp://ftp.uni-paderborn.de/pub/doc/FAQ/comp/emacs/ - - If you do not have access to anonymous FTP, you can access the archives - using the rtfm.mit.edu mail server. The Emacs FAQ can be retrieved by - sending mail to mail-server@rtfm.mit.edu with a blank subject and - containing - - send usenet/news.answers/GNU-Emacs-FAQ/diffs - send usenet/news.answers/GNU-Emacs-FAQ/part1 - send usenet/news.answers/GNU-Emacs-FAQ/part2 - send usenet/news.answers/GNU-Emacs-FAQ/part3 - send usenet/news.answers/GNU-Emacs-FAQ/part4 - send usenet/news.answers/GNU-Emacs-FAQ/part5 - - For more information, send email to mail-server@rtfm.mit.edu with - "help" and "index" in the body on separate lines. - - * As the very last resort, you can e-mail a request to - emacs-faq@lerner.co.il. Don't do this unless you have made a serious - effort to obtain the FAQ list via one of the methods listed above. - - -Status of Emacs - -23: Where does the name "Emacs" come from? - - Emacs originally was an acronym for Editor MACroS. RMS says he "picked - the name Emacs because `E' was not in use as an abbreviation on ITS at - the time." The first Emacs was a set of macros written in 1976 at MIT by - RMS for the editor TECO (Text Editor and COrrector, originally Tape - Editor and COrrector) under ITS on a PDP-10. RMS had already extended - TECO with a "real-time" full screen mode with reprogrammable keys. Emacs - was started by Guy Steele as a project to unify the - many divergent TECO command sets and key bindings at MIT, and completed - by RMS. - - Many people have said that TECO code looks a lot like line noise. See - alt.lang.teco if you are interested. Someone has written a TECO - implementation in Emacs Lisp (to find it, see question 90); it would be - an interesting project to run the original TECO Emacs inside of Emacs. - - For some not-so-serious alternative reasons for Emacs to have that name, - check out etc/JOKES (see question 4). - -24: What is the latest version of Emacs? - - Emacs 20.4 is the current version as of this writing. - -25: What is different about Emacs 20? - - To find out what has changed in recent versions, type C-h n (M-x - view-emacs-news). The oldest changes are at the bottom of the file, so - you might want to read it starting there, rather than at the top. - - The differences between Emacs versions 18 and 19 was rather dramatic; the - introduction of frames, faces, and colors on windowing systems was - obvious to even the most casual user. - - There are differences between Emacs versions 19 and 20 as well, but many - are more subtle or harder to find. Among the changes are the inclusion - of MULE code for languages that use non-Latin characters, the "customize" - facility for modifying variables without having to use Lisp, and - automatic conversion of files from Macintosh, Microsoft, and Unix - platforms. - - Many Lisp packages have been updated and enhanced for Emacs 20. - - -Common Things People Want To Do - -26: How do I set up a .emacs file properly? - - See "Init File" in the on-line manual. - - WARNING: In general, new Emacs users should not have .emacs files, - because it causes confusing non-standard behavior. Then they send - questions to help-gnu-emacs asking why Emacs isn't behaving as - documented. :-) - - Emacs 20 includes the new "customize" facility, which can be invoked - using M-x customize RET or via the Help menu. This allows users who are - unfamiliar with Emacs Lisp to modify their .emacs files in a relatively - straightforward way, using menus rather than Lisp code. While all the - packages included with Emacs (are meant to) support Customize now, - packages from other sources may not. - - While Customize might indeed make it easier to configure Emacs, consider - taking a bit of time to learn Emacs Lisp and modifying your .emacs - directly. Simple configuration options are described rather completely in - the "Init File" section of the on-line manual, for users interested in - performing frequently requested, basic tasks. - -27: How do I debug a .emacs file? - - Start Emacs with the "-debug-init" command-line option. This enables the - Emacs Lisp debugger before evaluating your .emacs file, and places you in - the debugger if something goes wrong. The top line in the trace-back - buffer will be the error message, and the second or third line of that - buffer will display the Lisp code from your .emacs file that caused the - problem. - - You can also evaluate an individual function or argument to a function in - your .emacs file by moving the cursor to the end of the function or - argument and typing "C-x C-e" (M-x eval-last-sexp). "C-M-x" (M-x - eval-defun) is particularly useful for re-evaluating "defvar" and - "customize" forms. - - Use "C-h v" (M-x describe-variable) to check the value of variables which - you are trying to set or use. - -28: How do I make Emacs display the current line (or column) number? - - To toggle having Emacs automatically display the current line number of the - point in the mode line, do "M-x line-number-mode". (This option is on by - default.) Note that Emacs will not display the line number if the buffer is - larger than the value of the variable line-number-display-limit. - - As of Emacs 20, you can similarly display the current column with "M-x - column-number-mode", by putting the form - - (setq column-number-mode t) - - in your .emacs file or by using Customize. - - The "%c" format specifier in the variable mode-line-format will insert - the current column's value into the mode line. See the documentation for - mode-line-format (using "C-h v mode-line-format RET") for more - information on how to set and use this variable. - - Users of all Emacs versions can display the current column using Per - Abrahamsen's "column" package. See question 90 for - instructions on how to get it. - - None of the vi emulation modes provide the "set number" capability of vi - (as far as we know) but Kyle Jones's setnu.el package implements such a - feature. - -29: How can I modify the titlebar to contain the current filename? - - The contains of an Emacs frame's titlebar is controlled by the variable - frame-title-format, which has the same structure as the variable - mode-line-format. (Use "C-h v" or "M-x describe-variable" to get - information about one or both of these variables.) - - By default, the titlebar for a frame does contain the name of the buffer - currently being visited, except if there is a single frame. In such a - case, the titlebar contains the name of the user and the machine at which - Emacs was invoked. This is done by setting frame-title-format to the - default value of - - (multiple-frames "%b" ("" invocation-name "@" system-name)) - - To modify the behavior such that frame titlebars contain the buffer's - name regardless of the number of existing frames, include the following - in your .emacs: - - (setq frame-title-format "%b") - -30: How do I turn on abbrevs by default just in mode XXX? - - Put this in your .emacs file: - - (condition-case () - (quietly-read-abbrev-file) - (file-error nil)) - - (add-hook 'XXX-mode-hook - (lambda () - (setq abbrev-mode t))) - -31: How do I turn on auto-fill mode by default? - - To turn on auto-fill mode just once for one buffer, use "M-x - auto-fill-mode". - - To turn it on for every buffer in a certain mode, you must use the hook - for that mode. For example, to turn on auto-fill mode for all text - buffers, including the following in your .emacs file: - - (add-hook 'text-mode-hook 'turn-on-auto-fill) - - You can also do this via the Help -> Options menu, which runs the command - toggle-text-mode-auto-fill. - - If you want auto-fill mode on in all major modes, do this: - - (setq-default auto-fill-function 'do-auto-fill) - -32: How do I make Emacs use a certain major mode for certain files? - - If you want to use XXX mode for all files which end with the extension - ".YYY", this will do it for you: - - (add-to-list 'auto-mode-alist '("\\.YYY\\'" . XXX-mode)) - - Otherwise put this somewhere in the first line of any file you want to - edit in XXX mode (in the second line, if the first line begins with - "#!"): - - -*-XXX-*- - - Beginning with Emacs 19, the variable interpreter-mode-alist specifies - which mode to use when loading a shell script. (Emacs determines which - interpreter you're using by examining the first line of the file.) This - feature only applies when the file name doesn't indicate which mode to - use. Use "C-h v" (or M-x describe-variable) on interpreter-mode-alist to - learn more. - -33: How do I search for, delete, or replace unprintable (8-bit or control) - characters? - - To search for a single character that appears in the buffer as, for - example, "\237", you can type "C-s C-q 2 3 7". (This assumes the value - of search-quote-char is 17 (i.e., `C-q').) Searching for ALL unprintable - characters is best done with a regular expression ("regexp") search. The - easiest regexp to use for the unprintable chars is the complement of the - regexp for the printable chars. - - Regexp for the printable chars: [\t\n\r\f -~] - Regexp for the unprintable chars: [^\t\n\r\f -~] - - To type these special characters in an interactive argument to - isearch-forward-regexp or re-search-forward, you need to use C-q. (`\t', - `\n', `\r', and `\f' stand respectively for TAB, LFD, RET, and C-l.) So, - to search for unprintable characters using re-search-forward: - - M-x re-search-forward RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET - - Using isearch-forward-regexp: - - M-C-s [^ TAB RET C-q RET C-q C-l SPC -~] - - To delete all unprintable characters, simply use replace-regexp: - - M-x replace-regexp RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET RET - - Replacing is similar to the above. To replace all unprintable characters - with a colon, use: - - M-x replace-regexp RET [^ TAB C-q LFD C-q RET C-q C-l SPC -~] RET : RET - - NOTE: * You don't need to quote TAB with either isearch or typing - something in the minibuffer. - -34: How can I highlight a region of text in Emacs? - - If you are using a windowing system such as X, you can cause the region - to be highlighted when the mark is active by including - - (transient-mark-mode t) - - in your .emacs file, using Customize or via the Help->Options menu. - (Also see question 66.) - -35: How do I control Emacs's case-sensitivity when searching/replacing? - - For searching, the value of the variable case-fold-search determines - whether they are case sensitive: - - (setq case-fold-search nil) ; make searches case sensitive - (setq case-fold-search t) ; make searches case insensitive - - To change this or similar variables during an Emacs session, use - M-x set-variable. - - Similarly, for replacing, the variable case-replace determines whether - replacements preserve case. - - To change the case sensitivity just for one major mode, use the major - mode's hook. For example: - - (add-hook 'XXX-mode-hook - (lambda () - (setq case-fold-search nil))) - -36: How do I make Emacs wrap words for me? - - Use auto-fill mode, activated by typing "M-x auto-fill-mode". The - default maximum line width is 70, determined by the variable fill-column. - To learn how to turn this on automatically, see question 31. - -37: Where can I get a better spelling checker for Emacs? - - Use Ispell. See question 110. - -38: How can I spell-check TeX or *roff documents? - - Use Ispell. See question 110. Ispell can handle TeX and *roff - documents. - -39: How do I change load-path? - - In general, you should only *add* to the load-path. You can add - directory /XXX/YYY to the load path like this: - - (setq load-path (cons "/XXX/YYY/" load-path)) - - To do this relative to your home directory: - - (setq load-path (cons "~/YYY/" load-path) - -40: How do I use an already running Emacs from another window? - - Emacsclient, which comes with Emacs, is for editing a file using an - already running Emacs rather than starting up a new Emacs. It does this - by sending a request to the already running Emacs, which must be - expecting the request. - - * Setup - - Emacs must have executed the "server-start" function for emacsclient to - work. This can be done either by a command line option: - - emacs -f server-start - - or by invoking server-start from the .emacs file: - - (if (some conditions are met) (server-start)) - - When this is done, Emacs starts a subprocess running a program called - "server". "server" creates a Unix domain socket in the user's home - directory named .emacs_server. - - To get your news reader, mail reader, etc., to invoke emacsclient, try - setting the environment variable EDITOR (or sometimes VISUAL) to the - value "emacsclient". You may have to specify the full pathname of the - emacsclient program instead. Examples: - - # csh commands: - setenv EDITOR emacsclient - setenv EDITOR /usr/local/emacs/etc/emacsclient # using full pathname - - # sh command: - EDITOR=emacsclient ; export EDITOR - - * Normal use - - When emacsclient is run, it connects to the ".emacs_server" socket and - passes its command line options to "server". When "server" receives - these requests, it sends this information on the the Emacs process, - which at the next opportunity will visit the files specified. (Line - numbers can be specified just like with Emacs.) The user will have to - switch to the Emacs window by hand. When the user is done editing a - file, the user can type "C-x #" (or M-x server-edit) to indicate this. - If there is another buffer requested by emacsclient, Emacs will switch - to it; otherwise emacsclient will exit, signaling the calling program - to continue. - - NOTE: "emacsclient" and "server" must be running on machines which - share the same filesystem for this to work. The pathnames that - emacsclient specifies should be correct for the filesystem that the - Emacs process sees. The Emacs process should not be suspended at the - time emacsclient is invoked. emacsclient should either be invoked from - another X window or from a shell window inside Emacs itself. - - There is an enhanced version of emacsclient/server called "gnuserv" by - Andy Norman which is available in the Emacs Lisp - Archive (see question 90). Gnuserv uses Internet domain sockets, so it - can work across most network connections. It also supports the - execution of arbitrary Emacs Lisp forms and does not require the client - program to wait for completion. - - The alpha version of an enhanced version of gnuserv is available at - - ftp://ftp.splode.com/pub/users/friedman/packages/fgnuserv-1.0.tar.gz - -41: How do I make Emacs recognize my compiler's funny error messages? - - The variable compilation-error-regexp-alist helps control how Emacs - parses your compiler output. It is a list of triples of the form: - - (REGEXP FILE-IDX LINE-IDX) - - where REGEXP, FILE-IDX and LINE-IDX are strings. To help determine what - the constituent elements should be, load compile.el and then use - - C-h v compilation-error-regexp-alist RET - - to see the current value. A good idea is to look at compile.el itself as - the comments included for this variable are quite useful -- the regular - expressions required for your compiler's output may be very close to one - already provided. Once you have determined the proper regexps, use the - following to inform Emacs of your changes: - - (add-to-list 'compilation-error-regexp-alist - '(REGEXP FILE-IDX LINE-IDX)) - -42: How do I indent C switch statements like this? - - Many people want to indent their switch statements like this: - - f() - { - switch(x) { - case A: - x1; - break; - case B: - x2; - break; - default: - x3; - } - } - - The solution at first appears to be: set c-indent-level to 4 and - c-label-offset to -2. However, this will give you an indentation spacing - of four instead of two. - - The solution is to use cc-mode (the default mode for C programming in - Emacs 20) and add the following line: - - (c-set-offset 'case-label '+) - - There appears to be no way to do this with the old c-mode. - -43: How can I make Emacs automatically scroll horizontally? - - Use hscroll-mode, included in Emacs 20. Here is some information from - the documentation, available by typing C-h f hscroll-mode RET: - - Automatically scroll horizontally when the point moves off the - left or right edge of the window. - - - Type "M-x hscroll-mode" to enable it in the current buffer. - - Type "M-x hscroll-global-mode" to enable it in every buffer. - - "turn-on-hscroll" is useful in mode hooks as in: - (add-hook 'text-mode-hook 'turn-on-hscroll) - - - hscroll-margin controls how close the cursor can get to the edge - of the window. - - hscroll-step-percent controls how far to jump once we decide to do so. - -44: How do I make Emacs "typeover" or "overwrite" instead of inserting? - - M-x overwrite-mode (a minor mode). This toggles overwrite-mode on and - off, so exiting from overwrite-mode is as easy as another M-x - overwrite-mode. - - On some systems the "Insert" key toggles overwrite-mode on and off. - -45: How do I stop Emacs from beeping on a terminal? - - Martin R. Frank writes: - - Tell Emacs to use the "visible bell" instead of the audible bell, and - set the visible bell to nothing. - - That is, put the following in your TERMCAP environment variable - (assuming you have one): - - ... :vb=: ... - - And evaluate the following Lisp form: - - (setq visible-bell t) - - There is also a way to turn off _all_ effects of a bell, by defining - a custom `ring-bell-function' that does nothing. - -46: How do I turn down the bell volume in Emacs running under X Windows? - - You can adjust the bell volume and duration for all programs with the - shell command xset. - - Invoking xset without any arguments produces some basic information, - including the following: - - usage: xset [-display host:dpy] option ... - To turn bell off: - -b b off b 0 - To set bell volume, pitch and duration: - b [vol [pitch [dur]]] b on - -47: How do I tell Emacs to automatically indent a new line to the - indentation of the previous line? - - Such behavior is automatic in text mode in Emacs 20. From the NEWS file - for Emacs 20.2: - - ** In Text mode, now only blank lines separate paragraphs. This makes - it possible to get the full benefit of Adaptive Fill mode in Text mode, - and other modes derived from it (such as Mail mode). TAB in Text mode - now runs the command indent-relative; this makes a practical difference - only when you use indented paragraphs. - - As a result, the old Indented Text mode is now identical to Text mode, - and is an alias for it. - - If you want spaces at the beginning of a line to start a paragraph, use - the new mode, Paragraph Indent Text mode. - - If you have auto-fill mode on (see question 31), you can tell Emacs to - prefix every line with a certain character sequence, the "fill prefix." - Type the prefix at the beginning of a line, position point after it, and - then type "C-x ." (set-fill-prefix) to set the fill prefix. Thereafter, - auto-filling will automatically put the fill prefix at the beginning of - new lines, and M-q (fill-paragraph) will maintain any fill prefix when - refilling the paragraph. - - NOTE: If you have paragraphs with different levels of indentation, you - will have to set the fill prefix to the correct value each time you move - to a new paragraph. To avoid this hassle, try one of the many packages - available from the Emacs Lisp Archive (see question 90.) Look up "fill" - and "indent" in the Lisp Code Directory for guidance. - -48: How do I show which parenthesis matches the one I'm looking at? - - As of version 19, Emacs comes with paren.el, which (when loaded) will - automatically highlight matching parentheses whenever point (i.e., the - cursor) is located over one. To load paren automatically, include the - line - - (require 'paren) - - in your .emacs file. As of version 20.1, you must instead call - show-paren-mode in your .emacs file: - - (show-paren-mode 1) - - and the "require" is redundant. - - The "customize" facility will let you turn on show-paren-mode. Use M-x - customize-group RET paren-showing RET. From within customize, you can - also go directly to the "paren-showing" group. - - Alternatives to paren include: - - * If you're looking at a right parenthesis (or brace or bracket) you can - delete it and reinsert it. Emacs will blink the cursor on the matching - parenthesis. - - * M-C-f (forward-sexp) and M-C-b (backward-sexp) will skip over one set - of balanced parentheses, so you can see which parentheses match. (You - can train it to skip over balanced brackets and braces at the same time - by modifying the syntax table.) - - * Here is some Emacs Lisp that will make the % key show the matching - parenthesis, like in vi. In addition, if the cursor isn't over a - parenthesis, it simply inserts a % like normal. (`Parenthesis' actually - includes and character with `open' or `close' syntax, which usually means - "()[]{}".) - - ;; By an unknown contributor - - (global-set-key "%" 'match-paren) - - (defun match-paren (arg) - "Go to the matching parenthesis if on parenthesis otherwise insert %." - (interactive "p") - (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) - ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) - (t (self-insert-command (or arg 1))))) - -49: In C mode, can I show just the lines that will be left after #ifdef - commands are handled by the compiler? - - M-x hide-ifdef-mode. (This is a minor mode.) You might also want to try - cpp.el, available at the Emacs Lisp Archive (see question 90). - -50: Is there an equivalent to the `.' (dot) command of vi? - - (`.' is the redo command in vi. It redoes the last insertion/deletion.) - - In Emacs 20.3 and later, use the C-x z ("repeat") command to repeat `simple - commands'. - - Otherwise you can type "C-x ESC ESC" (repeat-complex-command) to reinvoke - commands that used the minibuffer to get arguments. In - repeat-complex-command you can type M-p and M-n to scan through all the - different complex commands you've typed. - - To repeat a set of commands, use keyboard macros. (See "Keyboard Macros" - in the on-line manual.) - - VIPER, which comes with Emacs, emulates vi, including `.'. (See question - 107.) - -51: What are the valid X resource settings (i.e., stuff in .Xdefaults)? - - See Emacs man page, or "Resources X" in the on-line manual. - - You can also use a resource editor, such as editres (for X11R5 and - onwards), to look at the resource names for the menu bar, assuming Emacs - was compiled with the X toolkit. - -52: How do I execute ("evaluate") a piece of Emacs Lisp code? - - There are a number of ways to execute ("evaluate," in Lisp lingo) an - Emacs Lisp "form": - - * If you want it evaluated every time you run Emacs, put it in a file - named ".emacs" in your home directory. This is known as your ".emacs - file," and contains all of your personal customizations. - - * You can type the form in the *scratch* buffer, and then type LFD (or - C-j) after it. The result of evaluating the form will be inserted in - the buffer. - - * In Emacs-Lisp mode, typing M-C-x evaluates a top-level form before or - around point. - - * Typing "C-x C-e" in any buffer evaluates the Lisp form immediately - before point and prints its value in the echo area. - - * Typing M-: or M-x eval-expression allows you to type a Lisp form - in the minibuffer which will be evaluated. - - * You can use M-x load-file to have Emacs evaluate all the Lisp forms in - a file. (To do this from Lisp use the function "load" instead.) - - These functions are also useful (see question 16 if you want to learn - more about them): - - load-library, eval-region, eval-current-buffer, require, autoload - -53: How do I change Emacs's idea of the tab character's length? - - Set the variable default-tab-width. For example, to set tab stops every - 10 characters, insert the following in your .emacs file: - - (setq default-tab-width 10) - - Do not confuse variable tab-width with variable tab-stop-list. The - former is used for the display of literal tab characters. The latter - controls what characters are inserted when you press the TAB character in - certain modes. - -54: How do I insert `>' at the beginning of every line? - - To do this to an entire buffer, type "M-< M-x replace-regexp RET ^ RET > - RET". - - To do this to a region, use "string-rectangle" ("C-x r t"). Set the mark - (`C-SPC') at the beginning of the first line you want to prefix, move the - cursor to last line to be prefixed, and type "C-x r t > RET". To do this - for the whole buffer, type "C-x h C-x r t > RET". In Emacs 20.3 and - later, this will affect only the current region if Transient Mark mode is - on (see NEWS via C-h N). - - If you are trying to prefix a yanked mail message with '>', you might - want to set the variable mail-yank-prefix. Better yet, get the Supercite - package (see question 105), which provides flexible citation for yanked - mail and news messages. - -55: How do I insert "_^H" before each character in a region to get an - underlined paragraph? - - M-x underline-region. - -56: How do I repeat a command as many times as possible? - - Use "C-x (" and "C-x )" to make a keyboard macro that invokes the command - and then type "M-0 C-x e". - - WARNING: any messages your command prints in the echo area will be - suppressed. - -57: How do I make Emacs behave like this: when I go up or down, the cursor - should stay in the same column even if the line is too short? - - M-x picture-mode. - -58: How do I tell Emacs to iconify itself? - - "C-z" iconifies Emacs when running under X Windows and suspends Emacs - otherwise. See "Misc X" in the on-line manual. - -59: How do I use regexps (regular expressions) in Emacs? - - See "Regexps" in the on-line manual. - - WARNING: The "or" operator is `\|', not `|', and the grouping operators - are `\(' and `\)'. Also, the string syntax for a backslash is `\\'. To - specify a regular expression like xxx\(foo\|bar\) in a Lisp string, use - - "xxx\\(foo\\|bar\\)" - - Notice the doubled backslashes! - - WARNING: Unlike in Unix grep, sed, etc., a complement character set - ([^...]) can match a newline character (LFD aka C-j aka \n), unless - newline is mentioned as one of the characters not to match. - - WARNING: The character syntax regexps (e.g., "\sw") are not meaningful - inside character set regexps (e.g., "[aeiou]"). (This is actually - typical for regexp syntax.) - -60: How do I perform a replace operation across more than one file? - - The "tags" feature of Emacs includes the command tags-query-replace which - performs a query-replace across all the files mentioned in the TAGS file. - See "Tags Search" in the on-line manual. - - As of Emacs 19.29, Dired mode ("M-x dired RET", or C-x d) supports the - command dired-do-query-replace, which allows users to replace regular - expressions in multiple files. - -61: Where is the documentation for "etags"? - - "etags" is documented in the Tags node of the Emacs manual. The "etags" - man page should be in the same place as the "emacs" man page. - - Quick command-line switch descriptions are also available. For example, - "etags -H". - -62: How do I disable backup files? - - You probably don't want to do this, since backups are useful. - - To avoid seeing backup files (and other "uninteresting" files) in Dired, - load dired-x by adding the following to your .emacs file: - - (add-hook 'dired-load-hook - (function (lambda () - (load "dired-x")))) - - With dired-x loaded, `M-o' toggles omitting in each dired buffer. You - can make omitting the default for new dired buffers by putting the - following in your .emacs: - - (setq initial-dired-omit-files-p t) - - If you're tired of seeing backup files whenever you do an "ls" at the - Unix shell, try GNU ls with the "-B" option. GNU ls is part of the GNU - fileutils package, available at mirrors of ftp.gnu.org (see question 92). - - To disable or change how backups are made, see "Backup Names" in the - on-line manual. - -63: How do I disable auto-save-mode? - - You probably don't want to do this, since auto-saving is useful, - especially when Emacs or your computer crashes while you are editing a - document. - - Instead, you might want to change the variable auto-save-interval, which - specifies how many keystrokes Emacs waits before auto-saving. Increasing - this value forces Emacs to wait longer between auto-saves, which might - annoy you less. - - You might also want to look into Sebastian Kremer's auto-save package, - available from the Lisp Code Archive (see question 90). This package - also allows you to place all auto-save files in one directory, such as - /tmp. - - To disable or change how auto-save-mode works, see "Auto Save" in the - on-line manual. - -64: How can I create or modify new pull-down menu options? - - Each menu title (e.g., Buffers, File, Edit) represents a local or global - keymap. Selecting a menu title with the mouse displays that keymap's - non-nil contents in the form of a menu. - - So to add a menu option to an existing menu, all you have to do is add a - new definition to the appropriate keymap. Adding a "forward word" - command to the "Edit" menu thus requires the following Lisp code: - - (define-key global-map - [menu-bar edit forward] - '("Forward word" . forward-word)) - - The first line adds the entry to the global keymap, which includes global - menu bar entries. Replacing the reference to "global-map" with a local - keymap would add this menu option only within a particular mode. - - The second line describes the path from the menu-bar to the new entry. - Placing this menu entry underneath the "File" menu would mean changing - the word "edit" in the second line to "file." - - The third line is a cons cell whose first element is the title that will - be displayed, and whose second element is the function that will be - called when that menu option is invoked. - - To add a new menu, rather than a new option to an existing menu, we must - define an entirely new keymap: - - (define-key global-map [menu-bar words] - (cons "Words" (make-sparse-keymap "Words"))) - - The above code creates a new sparse keymap, gives it the name "Words", - and attaches it to the global menu bar. Adding the "forward word" - command to this new menu would thus require the following code: - - (define-key global-map - [menu-bar words forward] - '("Forward word" . forward-word)) - - Note that because of the way keymaps work, menu options are displayed - with the more recently defined items at the top. Thus if you were to - define menu options "foo", "bar", and "baz" (in that order), menu option - "baz" would appear at the top, and "foo" would be at the bottom. - - One way to avoid this problem is to use the function define-key-after, - which works the same as define-key, but lets you modify where items - appear. The following Lisp code would insert the "forward word" function - in the "edit" menu immediately following the "undo" option: - - (define-key-after - (lookup-key global-map [menu-bar edit]) - [forward] - '("Forward word" . forward-word) - 'undo) - - Note how the second and third arguments to define-key-after are different - from those of define-key, and that we have added a new (final) argument, - the function after which our new key should be defined. - - To move a menu option from one position to another, simply evaluate - define-key-after with the appropriate final argument. - - More detailed information -- and more examples of how to create and - modify menu options -- are in the Emacs Lisp Reference Manual, under - "Menu Keymaps." (See question 16 for information on this manual.) - - Note that Emacs 20.3 introduced a better (`extended') format for menu - items, described in the NEWS file and the Lisp Manual. The "easymenu" - package provides support for defining menus conveniently with some - portability amongst Emacs versions. - -65: How do I delete menus and menu options? - - The simplest way to remove a menu is to set its keymap to nil. For - example, to delete the "Words" menu (from question 64), use: - - (define-key global-map [menu-bar words] nil) - - Similarly, removing a menu option requires redefining a keymap entry to - nil. For example, to delete the "Forward word" menu option from the - "Edit" menu (we added it in question 64), use: - - (define-key global-map [menu-bar edit forward] nil) - -66: How do I turn on syntax highlighting? - - Font-lock mode is the standard way to have Emacs perform syntax - highlighting. With font-lock mode invoked, different types of text will - appear in different colors. For instance, if you turn on font-lock in a - programming mode, variables will appear in one face, keywords in a - second, and comments in a third. - - Earlier versions of Emacs supported hilit19, a similar package. Use of - hilit19 is now considered non-standard, although hilit19.el comes with - the stock Emacs distribution. It is no longer maintained. - - To turn font-lock mode on within an existing buffer, use "M-x - font-lock-mode RET". - - To automatically invoke font-lock mode when a particular major mode is - invoked, set the major mode's hook or define font-lock-global-modes as a - list with the mode name as an element. For example, to fontify all - c-mode buffers, add the following to your .emacs file: - - (add-hook 'c-mode-hook 'turn-on-font-lock) - - To automatically invoke font-lock mode for all major modes, you can turn - on global-font-lock mode by including the following line in your .emacs - file (or use Custom): - - (global-font-lock-mode 1) - - This instructs Emacs to turn on font-lock mode in those buffers for which - a font-lock mode definition has been provided (in the variable - font-lock-global-modes or via the variable font-lock-defaults-alist). If - you edit a file in pie-ala-mode, and no font-lock definitions have been - provided for pie-ala files, then the above setting will have no effect on - that particular buffer. - - Highlighting with font-lock mode can take quite a while, and thus - different levels of decoration are available, from slight to gaudy. To - control how decorated your buffers should become, set the value of - font-lock-maximum-decoration in your .emacs file, with a nil value - indicating default (usually minimum) decoration, and a t value indicating - the maximum decoration. For the gaudiest possible look, then, include - the line - - (setq font-lock-maximum-decoration t) - - in your .emacs file. You can also set this variable such that different - modes are highlighted in a different ways; for more information, see the - documentation for font-lock-maximum-decoration with "C-h v" (or "M-x - describe-variable RET"). - - You might also want to investigate fast-lock-mode and lazy-lock-mode, - versions of font-lock-mode that speed up highlighting. The advantage of - lazy-lock-mode is that it only fontifies buffers when certain conditions - are met, such as after a certain amount of idle time, or after you have - finished scrolling through text. See the documentation for - lazy-lock-mode by typing C-h f lazy-lock-mode ("M-x describe-function RET - lazy-lock-mode RET"). - - Also see the documentation for the function font-lock-mode, available by - typing C-h f font-lock-mode ("M-x describe-function RET font-lock-mode - RET"). - - For more information on font-lock mode, particularly adding new patterns, - see the Lisp Reference Manual and the commentary in the source - font-lock.el, which you can find in Emacs 20 (if it is installed) using, - say, M-x find-function font-lock-mode. - - To print buffers with the faces (i.e., colors and fonts) intact, use - "M-x ps-print-buffer-with-faces" or "M-x ps-print-region-with-faces". - -67: How can I force Emacs to scroll only one line when I move past the - bottom of the screen? - - Place the following Lisp form in your .emacs file: - - (setq scroll-step 1) - - Also see "Scrolling" in the on-line manual. - -68: How can I replace highlighted text with what I type? - - Use delete-selection mode, which you can start automatically by placing - the following Lisp form in your .emacs file: - - (delete-selection-mode t) - - According to the documentation string for delete-selection mode (which - you can read using M-x describe-function RET delete-selection-mode RET): - - When ON, typed text replaces the selection if the selection is active. - When OFF, typed text is just inserted at point. - - This mode also allows you to delete (not kill) the highlighted region by - pressing DEL. - -69: How can I edit MS-DOS-style text files using Emacs? - - As of Emacs 20, detection and handling of MS-DOS (and Windows) files is - performed transparently. You can open an MS-DOS file on a Unix system - (and vice versa), edit it, and save it without having to worry about the - file format. To save it with a different end-of-line convention use - C-x RET c to specify a new coding system such as undecided-unix. - - When editing an MS-DOS style file, a backslash (\) will appear in the - mode line. - - You can avoid translation of the end-of-line conventions either by - visiting a file using M-x find-file-literally or by setting the variable - inhibit-eol-conversion to t. - - If you are running an earlier version of Emacs, get crypt++ from - ftp://ftp.cs.umb.edu/pub/misc/crypt++.el. Among other things, crypt++ - transparently modifies MS-DOS files as they are loaded and saved, - allowing you to ignore the different conventions that Unix and MS-DOS - have for delineating the end of a line. - -70: How can I tell Emacs to fill paragraphs with a single space after - each period? - - Ulrich Mueller suggests adding the following two - lines to your .emacs file: - - (setq sentence-end "[.?!][]\"')}]*\\($\\|[ \t]\\)[ \t\n]*") - (setq sentence-end-double-space nil) - - See "Sentences" in the online manual. - - -Bugs/Problems - -71: Does Emacs have problems with files larger than 8 megabytes? - - Old versions (i.e., anything before 19.29) of Emacs had problems editing - files larger than 8 megabytes. As of version 19.29, the maximum buffer - size is at least 2^27-1, or 134,217,727 bytes. - - If you are using an older version of Emacs and cannot upgrade, you will - have to recompile. Leonard N. Zubkoff suggests putting - the following two lines in src/config.h before compiling Emacs to allow - for 26-bit integers and pointers (and thus file sizes of up to 33,554,431 - bytes): - - #define VALBITS 26 - #define GCTYPEBITS 5 - - WARNING: This method may result in "ILLEGAL DATATYPE" and other random - errors on some machines. - - David Gillespie explains how this problems - crops up; while his numbers are true only for pre-19.29 versions of - Emacs, the theory remains the same with current versions. - - Emacs is largely written in a dialect of Lisp; Lisp is a freely-typed - language in the sense that you can put any value of any type into any - variable, or return it from a function, and so on. So each value must - carry a "tag" along with it identifying what kind of thing it is, e.g., - integer, pointer to a list, pointer to an editing buffer, and so on. - Emacs uses standard 32-bit integers for data objects, taking the top 8 - bits for the tag and the bottom 24 bits for the value. So integers - (and pointers) are somewhat restricted compared to true C integers and - pointers. - -72: How do I get rid of ^M or echoed commands in my shell buffer? - - Try typing "M-x shell-strip-ctrl-m RET" while in shell-mode to make them - go away. You might add this function to comint-output-filter-functions: - - (add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m) - - If that doesn't work, you have several options: - - For tcsh, put this in your .cshrc (or .tcshrc) file: - - if ($?EMACS) then - if ("$EMACS" == t) then - if ($?tcsh) unset edit - stty nl - endif - endif - - Or put this in your .emacs_tcsh file: - - unset edit - stty nl - - Alternatively, use csh in your shell buffers instead of tcsh. One way - is: - - (setq explicit-shell-file-name "/bin/csh") - - and another is to do this in your .cshrc (or .tcshrc) file: - - setenv ESHELL /bin/csh - - (You must start Emacs over again with the environment variable properly - set for this to take effect.) - - You can also set the ESHELL environment variable in Emacs Lisp with - the following Lisp form, - - (setenv "ESHELL" "/bin/csh") - - On a related note: If your shell is echoing your input line in the shell - buffer, you might want to try the following command in your shell - start-up file: - - stty -icrnl -onlcr -echo susp ^Z - -73: Why do I get "Process shell exited abnormally with code 1"? - - The most likely reason for this message is that the "env" program is not - properly installed. Compile this program for your architecture, and - install it with a+x permission in the architecture-dependent Emacs - program directory. (You can find what this directory is at your site by - inspecting the value of the variable exec-directory by typing "C-h v - exec-directory RET".) - - You should also check for other programs named "env" in your path (e.g., - SunOS has a program named /usr/bin/env). We don't understand why this - can cause a failure and don't know a general solution for working around - the problem in this case. - - It has been reported that this sometimes happened when Emacs was started - as an X client from an xterm window (i.e., had a controlling tty) but the - xterm was later terminated. - - See also etc/PROBLEMS for other possible causes of this message. - -74: Where is the termcap/terminfo entry for terminal type "emacs"? - - The termcap entry for terminal type "emacs" is ordinarily put in the - TERMCAP environment variable of subshells. It may help in certain - situations (e.g., using rlogin from shell buffer) to add an entry for - "emacs" to the system-wide termcap file. Here is a correct termcap entry - for "emacs": - - emacs:tc=unknown: - - To make a terminfo entry for "emacs", use "tic" or "captoinfo." You need - to generate /usr/lib/terminfo/e/emacs. It may work to simply copy - /usr/lib/terminfo/d/dumb to /usr/lib/terminfo/e/emacs. - - Having a termcap/terminfo entry will not enable the use of full screen - programs in shell buffers. Use M-x terminal-emulator for that instead. - - A workaround to the problem of missing termcap/terminfo entries is to - change terminal type "emacs" to type "dumb" or "unknown" in your shell - start up file. "csh" users could put this in their .cshrc files: - - if ("$term" == emacs) set term=dumb - -75: Why does Emacs spontaneously start displaying "I-search:" and beeping? - - Your terminal (or something between your terminal and the computer) is - sending C-s and C-q for flow control, and Emacs is receiving these - characters and interpreting them as commands. (The C-s character - normally invokes the isearch-forward command.) For possible solutions, - see question 122. - -76: Why can't Emacs talk to certain hosts (or certain hostnames)? - - The problem may be that Emacs is linked with a wimpier version of - gethostbyname than the rest of the programs on the machine. This is - often manifested as a message on startup of "X server not responding. - Check your DISPLAY environment variable." or a message of "Unknown host" - from open-network-stream. - - On a Sun, this may be because Emacs had to be linked with the static C - library. The version of gethostbyname in the static C library may only - look in /etc/hosts and the NIS (YP) maps, while the version in the - dynamic C library may be smart enough to check DNS in addition to or - instead of NIS. On a Motorola Delta running System V R3.6, the version - of gethostbyname in the standard library works, but the one that works - with NIS doesn't (the one you get with -linet). Other operating systems - have similar problems. - - Try these options: - - * Explicitly add the host you want to communicate with to /etc/hosts. - - * Relink Emacs with this line in src/config.h: - - #define LIBS_SYSTEM -lresolv - - * Replace gethostbyname and friends in libc.a with more useful versions - such as the ones in libresolv.a. Then relink Emacs. - - * If you are actually running NIS, make sure that "ypbind" is properly - told to do DNS lookups with the correct command line switch. - -77: Why does Emacs say "Error in init file"? - - An error occurred while loading either your .emacs file or the - system-wide lisp/default.el file. For information on how to debug your - .emacs file, see question 27. - - It may be the case that you need to load some package first, or use a - hook that will be evaluated after the package is loaded. A common case - of this is explained in question 118. - -78: Why does Emacs ignore my X resources (my .Xdefaults file)? - - As of version 19, Emacs searches for X resources in the files specified - by the XFILESEARCHPATH, XUSERFILESEARCHPATH, and XAPPLRESDIR environment - variables, emulating the functionality provided by programs written using - Xt. - - XFILESEARCHPATH and XUSERFILESEARCHPATH should be a list of file names - separated by colons; XAPPLRESDIR should be a list of directory names - separated by colons. - - Emacs searches for X resources - - + specified on the command line, with the "-xrm RESOURCESTRING" - option, - + then in the value of the XENVIRONMENT environment variable, - - or if that is unset, in the file named ~/.Xdefaults-HOSTNAME if it - exists - (where HOSTNAME is the hostname of the machine Emacs is running on), - + then in the screen-specific and server-wide resource properties - provided by the server, - - or if those properties are unset, in the file named ~/.Xdefaults - if it exists, - + then in the files listed in XUSERFILESEARCHPATH, - - or in files named LANG/Emacs in directories listed in XAPPLRESDIR - (where LANG is the value of the LANG environment variable), if - the LANG environment variable is set, - - or in files named Emacs in the directories listed in XAPPLRESDIR - - or in ~/LANG/Emacs (if the LANG environment variable is set), - - or in ~/Emacs, - + then in the files listed in XFILESEARCHPATH. - -79: Why does Emacs take 20 seconds to visit a file? - - Old versions of Emacs (i.e., versions before Emacs 20.x) often - encountered this when the master lock file, "!!!SuperLock!!!" has been - left in the lock directory somehow. Delete it. - - Mark Meuer says that NeXT NFS has a bug where an - exclusive create succeeds but returns an error status. This can cause - the same problem. Since Emacs's file locking doesn't work over NFS - anyway, the best solution is to recompile Emacs with CLASH_DETECTION - undefined. - -80: How do I edit a file with a `$' in its name? - - When entering a filename in the minibuffer, Emacs will attempt to expand - a `$' followed by a word as an environment variable. To suppress this - behavior, type "$$" instead. - -81: Why does shell mode lose track of the shell's current directory? - - Emacs has no way of knowing when the shell actually changes its - directory. This is an intrinsic limitation of Unix. So it tries to - guess by recognizing "cd" commands. If you type "cd" followed by a - directory name with a variable reference ("cd $HOME/bin") or with a shell - metacharacter ("cd ../lib*"), Emacs will fail to correctly guess the - shell's new current directory. A huge variety of fixes and enhancements - to shell mode for this problem have been written to handle this problem. - Check the Lisp Code Directory (see question 89). - - You can tell Emacs the shell's current directory with the command "M-x - dirs". - -82: Are there any security risks in Emacs? - - * the "movemail" incident (No, this is not a risk.) - - In his book "The Cuckoo's Egg," Cliff Stoll describes this in chapter - 4. The site at LBL had installed the "etc/movemail" program setuid - root. (As of version 19, movemail is in your architecture-specific - directory; type "C-h v exec-directory RET" to see what it is.) Since - "movemail" had not been designed for this situation, a security hole - was created and users could get root privileges. - - "movemail" has since been changed so that this security hole will not - exist, even if it is installed setuid root. However, movemail no - longer needs to be installed setuid root, which should eliminate this - particular risk. - - We have heard unverified reports that the 1988 Internet worm took - advantage of this configuration problem. - - * the file-local-variable feature (Yes, a risk, but easy to change.) - - There is an Emacs feature that allows the setting of local values for - variables when editing a file by including specially formatted text - near the end of the file. This feature also includes the ability to - have arbitrary Emacs Lisp code evaluated when the file is visited. - Obviously, there is a potential for Trojan horses to exploit this - feature. - - Emacs 18 allowed this feature by default; users could disable it by - setting the variable inhibit-local-variables to a non-nil value. - - As of Emacs 19, Emacs has a list of local variables that create a - security risk. If a file tries to set one of them, it asks the user to - confirm whether the variables should be set. You can also tell Emacs - whether to allow the evaluation of Emacs Lisp code found at the bottom - of files by setting the variable enable-local-eval. - - For more information, see "File Variables" in the on-line manual. - - * synthetic X events (Yes, a risk; use MIT-MAGIC-COOKIE-1 or better.) - - Emacs accepts synthetic X events generated by the SendEvent request as - though they were regular events. As a result, if you are using the - trivial host-based authentication, other users who can open X - connections to your X workstation can make your Emacs process do - anything, including run other processes with your privileges. - - The only fix for this is to prevent other users from being able to open - X connections. The standard way to prevent this is to use a real - authentication mechanism, such as MIT-MAGIC-COOKIE-1. If using the - "xauth" program has any effect, then you are probably using - MIT-MAGIC-COOKIE-1. Your site may be using a superior authentication - method; ask your system administrator. - - If real authentication is not a possibility, you may be satisfied by - just allowing hosts access for brief intervals while you start your X - programs, then removing the access. This reduces the risk somewhat by - narrowing the time window when hostile users would have access, but - DOES NOT ELIMINATE THE RISK. - - On most computers running Unix and X Windows, you enable and disable - access using the "xhost" command. To allow all hosts access to your X - server, use - - xhost + - - at the shell prompt, which (on an HP machine, at least) produces the - following message: - - access control disabled, clients can connect from any host - - To deny all hosts access to your X server (except those explicitly - allowed by name), use - - xhost - - - On the test HP computer, this command generated the following message: - - access control enabled, only authorized clients can connect - -83: Dired says, "no file on this line" when I try to do something. - - Chances are you're using a localized version of Unix that doesn't - use US date format in dired listings. You can check this by looking - at dired listings or by typing `ls -l' to a shell and looking at the - dates that come out. - - Dired uses a regular expression to find the beginning of a file - name. In a long Unix-style directory listing ("ls -l"), the file - name starts after the date. The regexp has thus been written to - look for the date, the format of which can vary on non-US systems. - - There are two approaches to solving this. The first one involves - setting things up so that "ls -l" outputs US date format. This can - be done by setting the locale. See your OS manual for more - information. - - The second approach involves changing the regular expression used by - dired, dired-move-to-filename-regexp. - - -Difficulties Building/Installing/Porting Emacs - -84: How do I install Emacs? - - This answer is meant for users of Unix and Unix-like systems. Users of - other operating systems should see the series of questions beginning with - question 94, which describe where to get non-Unix source and binaries. - These packages should come with installation instructions. - - For Unix and Unix-like systems, the easiest way is often to compile it - from scratch. You will need: - - * Emacs sources. See question 92 for a list of ftp sites that make them - available. On ftp.gnu.org, the main GNU distribution site, sources are - available at - - ftp://ftp.gnu.org/pub/gnu/emacs/emacs-20.4.tar.gz - - The above will obviously change as new versions of Emacs come out. For - instance, when Emacs 20.5 is released, it will most probably be - available at - - ftp://ftp.gnu.org/pub/gnu/emacs/emacs-20.5.tar.gz - - Again, you should use one of the mirror sites in question 92 (and - adjust the URL accordingly) so as to reduce load on ftp.gnu.org. - - * Gzip, the GNU compression utility. You can get gzip via anonymous ftp - at mirrors of ftp.gnu.org sites; it should compile and install without - much trouble on most systems. Once you have retrieved the Emacs - sources, you will probably be able to uncompress them with the command - - gunzip --verbose emacs-20.4.tar.gz - - changing the Emacs version (20.4), as necessary. Once gunzip has - finished doing its job, a file by the name of "emacs-20.4.tar" should - be in your build directory. - - * Tar, the "tape archiving" program, which moves multiple files into and - out of archive files, or "tarfiles." All of the files comprising the - Emacs source come in a single tarfile, and must be extracted using tar - before you can build Emacs. Typically, the extraction command would - look like - - tar -xvvf emacs-20.4.tar - - The `x' indicates that we want to extract files from this tarfile, the - two `v's force verbose output, and the `f' tells tar to use a disk - file, rather than one on tape. - - If you're using GNU tar (available at mirrors of ftp.gnu.org), you can - combine this step and the previous one by using the command - - tar -zxvvf emacs-20.4.tar.gz - - The additional `z' at the beginning of the options list tells GNU tar - to uncompress the file with gunzip before extracting the tarfile's - components. - - At this point, the Emacs sources (all 25+ megabytes of them) should be - sitting in a directory called "emacs-20.4". On most common Unix and - Unix-like systems, you should be able to compile Emacs (with X Windows - support) with the following commands: - - cd emacs-20.4 [ change directory to emacs-20.4 ] - ./configure [ configure Emacs for your particular system ] - make [ use Makefile to build components, then Emacs ] - - If the "make" completes successfully, the odds are fairly good that the - build has gone well. (See question 86 if you weren't successful.) - - To install Emacs in its default directories of /usr/local/bin (binaries), - /usr/local/share/emacs/20.xx (Lisp code and support files), - /usr/local/libexec/CONFIGURATION/emacs/VERSION (executable files to be - run by Emacs rather than users), /usr/local/man/man1 (man pages) and - /usr/local/info (Info documentation), become the super-user and type - - make install - - Note that "make install" will overwrite /usr/local/bin/emacs and any - Emacs Info files that might be in /usr/local/info. - - Much more verbose instructions (with many more hints and suggestions) - come with the Emacs sources, in the file "INSTALL". - -85: How do I update Emacs to the latest version? - - Follow the instructions in question 84. - - Emacs places nearly everything in version-specific directories (e.g., - /usr/local/share/emacs/20.4), so the only files that can be overwritten - when installing a new release are /usr/local/bin/emacs and the Emacs Info - documentation in /usr/local/info. Back up these files before you install - a new release, and you shouldn't have too much trouble. - -86: What should I do if I have trouble building Emacs? - - First look in the file PROBLEMS (in the top-level directory when you - unpack the Emacs source) to see if there is already a solution for your - problem. Next, look for other questions in this FAQ that have to do with - Emacs installation and compilation problems. - - If you'd like to have someone look at your problem and help solve it, see - question 21. - - If you don't find a solution, then report your problem via e-mail to - bug-gnu-emacs@gnu.org. Please do not post it to gnu.emacs.help - or e-mail it to help-gnu-emacs@gnu.org. For further guidelines, - see question 8 and question 10. - -87: Why does linking Emacs with -lX11 fail? - - Emacs needs to be linked with the static version of the X11 library, - libX11.a. This may be missing. - - Under OpenWindows, you may need to use "add_services" to add the - "OpenWindows Programmers" optional software category from the CD-ROM. - - Under HP-UX 8.0, you may need to run "update" again to load the X11-PRG - "fileset". This may be missing even if you specified "all filesets" the - first time. If libcurses.a is missing, you may need to load the - "Berkeley Development Option." - - David Zuhn says that MIT X builds shared libraries by - default, and only shared libraries, on those platforms that support them. - These shared libraries can't be used when undumping temacs (the last - stage of the Emacs build process). To get regular libraries in addition - to shared libraries, add this to site.cf: - - #define ForceNormalLib YES - - Other systems may have similar problems. You can always define - CANNOT_DUMP and link with the shared libraries instead. - - To get the Xmenu stuff to work, you need to find a copy of MIT's - liboldX.a. - - -Finding/Getting Emacs and Related Packages - -88: Where can I get Emacs on the net (or by snail mail)? - - Look in the files etc/DISTRIB and etc/FTP for information on nearby - archive sites and etc/ORDERS for mail orders. If you don't already have - Emacs, see question 20 for how to get these files. - - See question 84 for information on how to obtain and build the latest - version of Emacs, and question 92 for a list of archive sites that make - GNU software available. - -89: How do I find a Emacs Lisp package that does XXX? - - First of all, you should check to make sure that the package isn't - already available. For example, typing "M-x apropos RET wordstar RET" - lists all functions and variables containing the string "wordstar". - - It is also possible that the package is on your system, but has not been - loaded. To see which packages are available for loading, look through your - computer's lisp directory (see question 4) or use the Finder (C-h p) to - search under keywords. The Lisp source to most packages contains a - short description of how they should be loaded, invoked, and configured -- - so before you use or modify a Lisp package, see if the author has provided - any hints in the source code. - - If a package does not come with Emacs, check the Lisp Code - Directory, maintained (unfortunately slowly at present) by Dave - Brennan . The directory is contained in the file - LCD-datafile.Z, available from the Emacs Lisp Archive (see question - 90), and is accessed using the "lispdir" package, available from the - same site. Note that lispdir.el requires crypt++, which you can - grab from the Emacs Lisp Archive's "misc" subdirectory when you get - lispdir.el. - - Once you have installed lispdir.el and LCD-datafile, you can use "M-x - lisp-dir-apropos" to search the listing. For example, "M-x - lisp-dir-apropos RET ange-ftp RET" produces this output: - - GNU Emacs Lisp Code Directory Apropos -- "ange-ftp" - "~/" refers to ftp.cis.ohio-state.edu:pub/emacs-lisp/ - - ange-ftp (4.18) 15-Jul-1992 - Andy Norman, - ~/packages/ange-ftp.tar.Z - transparent FTP Support for GNU Emacs - auto-save (1.19) 01-May-1992 - Sebastian Kremer, - ~/misc/auto-save.el.Z - Safer autosaving with support for ange-ftp and /tmp - ftp-quik (1.0) 28-Jul-1993 - Terrence Brannon, - ~/modes/ftp-quik.el.Z - Quik access to dired'ing of ange-ftp and normal paths - - You actually don't need the directory file LCD-datafile if your computer - is on the Internet, since the latest version is retrieved automatically - the first time you type "M-x lisp-dir-apropos" in a particular Emacs - session. If you would prefer to use a local copy of LCD-datafile, be - sure to set the variable lisp-code-directory at the top of the lispdir.el - source code. - - A searchable version of the LCD is also available at - - http://www.cs.indiana.edu/LCD/cover.html - -90: Where can I get Emacs Lisp packages that don't come with Emacs? - - First, check the Lisp Code Directory to find the name of the package you - are looking for (see question 89). Next, check local archives and the - Emacs Lisp Archive to find a copy of the relevant files. If you still - haven't found it, you can send e-mail to the author asking for a copy. - If you find Emacs Lisp code that doesn't appear in the LCD, please submit - a copy to the LCD (see question 91). - - You can access the Emacs Lisp Archive at the following sites: - - ftp://ftp.cis.ohio-state.edu/pub/emacs-lisp/ - ftp://ftp.uni-mainz.de/pub/gnu/elisp-archive/ - ftp://gatekeeper.dec.com/pub/GNU/elisp-archive/ - ftp://nic.funet.fi/pub/gnu/emacs/elisp-archive/ - ftp://sunsite.cnlab-switch.ch/mirror/elisp-archive/ - ftp://src.doc.ic.ac.uk/public/Mirrors/ftp.cis.ohio-state.edu/pub/emacs-lisp/ - - Retrieve and read the file README first. - - NOTE: * The archive maintainers do not have time to answer individual - requests for packages or the list of packages in the archive. If - you cannot use FTP or UUCP to access the archive yourself, try to - find a friend who can, but please don't ask the maintainers. - - * Any files with names ending in ".Z", ".z", or ".gz" are - compressed, so you should use "binary" mode in FTP to retrieve - them. You should also use binary mode whenever you retrieve any - files with names ending in ".elc". - - Packages which have been posted to gnu.emacs.sources should be locatable - via a service like Dejanews. - -91: How do I submit code to the Emacs Lisp Archive? - - Guidelines and procedures for submission to the archive can be found in - the file GUIDELINES in the archive directory (see question 90). It - covers documentation, copyrights, packaging, submission, and the Lisp - Code Directory Record. Anonymous FTP uploads are not permitted. - Instead, all submissions are mailed to elisp-archive@cis.ohio-state.edu. - The lispdir.el package has a function named submit-lcd-entry which will - help you with this. - - Note that maintenance of the archive is currently very slow. - -92: Where can I get other up-to-date GNU stuff? - - The most up-to-date official GNU software is normally kept on - ftp.gnu.org and is available at - - ftp://ftp.gnu.org/pub/gnu - - Read the files etc/DISTRIB and etc/FTP for more information. - - A list of sites mirroring ftp.gnu.org can be found at - - http://www.gnu.org/order/ftp.html - -93: What is the difference between Emacs and XEmacs (formerly "Lucid - Emacs")? - - XEmacs is a modified version of GNU Emacs. - - This FAQ refers to the latest version to be distributed by the FSF - as "Emacs," partly because the XEmacs maintainers now refer to their - product using the "XEmacs" name, and partly because there isn't any - accurate way to differentiate between the two without getting mired - in paragraphs of legalese and history. - - XEmacs, which began life as Lucid Emacs, is based on an early version of - Emacs 19 and Epoch, an X-aware version of Emacs 18. - - Emacs (i.e., the version distributed by the FSF) has a larger installed - base and now always contains the MULE multilingual facilities. XEmacs - can do some clever tricks with X Windows, such as putting arbitrary - graphics in a buffer; similar facilities have been implemented for Emacs, - which will be integrated after version 20.4. Emacs and XEmacs each come - with some Lisp packages that are lacking or more up-to-date in the other; - RMS says that the FSF would include more packages that come with XEmacs, - but that the XEmacs maintainers don't always keep track of the authors of - contributed code, which makes it impossible for the FSF to have certain - legal papers signed. (Without these legal papers, the FSF will not - distribute Lisp packages with Emacs.) The two versions have some - significant differences at the Lisp programming level. - -94: Where can I get Emacs for my PC running MS-DOS? - - A pre-built binary distribution of Emacs is available from the Simtel - archives. This version works under MS-DOS and Windows (3.x, 9x, and NT) and - supports long file names under Windows 9x. More information is available - from: - - ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/emacs.README - - And the binary itself is available in the files em1934*.zip in the - directory - - ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/ - - If you prefer to compile Emacs for yourself, you will need a 386 (or - better) processor, and are running MS-DOS 3.0 or later. According to Eli - Zaretskii and Darrel Hankerson - , you will need the following: - - Compiler: djgpp version 1.12 maint 1 or later. Djgpp 2.0 or later is - recommended, since 1.x is being phased out. Djgpp 2 supports - long filenames under Windows 9x. - - You can get the latest release of djgpp by retrieving - all of the files in - - ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp - - Gunzip and tar: - - The easiest way is to use "djtar" which comes with djgpp v2.x, - because it can open gzip'ed tarfiles (i.e., those ending with - ".tar.gz") in one step. Djtar comes in "djdev201.zip", from - the URL mentioned above. - - Utilities: make, mv, sed, rm. - - All of these utilities are available at - - ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu - - 16-bit utilities can be found in GNUish: - - ftp://ftp.simtel.net/pub/simtelnet/gnu/gnuish - - The files INSTALL and etc/PROBLEMS in the Emacs source contains some - additional information regarding Emacs under MS-DOS. - - For a list of other MS-DOS implementations of Emacs (and Emacs - look-alikes), consult the list of "Emacs implementations and literature," - available at - - ftp://rtfm.mit.edu/pub/usenet/comp.emacs/ - - Note that while many of these programs look similar to Emacs, they often - lack certain features, particularly the Emacs Lisp extension language. - -95: Where can I get Emacs for Microsoft Windows, Windows 9x, or Windows - NT? - - GNU Emacs has been fully ported to Windows NT and Windows 95/98. - If you have MSVC 4.0 or greater, then you can compile GNU Emacs - directly from the source distribution. First read the file - nt/README, and then the file nt/INSTALL, for step by step - instructions on how to compile and install GNU Emacs on your system. - - You can also download precompiled distributions of GNU Emacs from: - - ftp://ftp.cs.washington.edu/pub/ntemacs - - If you need the gunzip and tar utilities for unpacking distributions, - you can download precompiled versions from: - - ftp://ftp.cs.washington.edu/pub/ntemacs/utilities - - For more information on configuring your favorite package to run with - GNU Emacs on Windows NT/95/98, see the following FAQ: - - http://www.cs.washington.edu/homes/voelker/ntemacs.html - ftp://ftp.cs.washington.edu/pub/ntemacs/docs/ntemacs.html - - If you are running Windows 3.11, and if you compile GNU Emacs for MSDOS - with the tools listed in the previous question, it will run under - Microsoft Windows in a DOS box. - -96: Where can I get Emacs for my PC running OS/2? - - Emacs 19.33 is ported for emx on OS/2 2.0 or 2.1, and is available at: - - ftp://hobbes.nmsu.edu/pub/os2/apps/editors/emacs/v19.33/ - -97: Where can I get Emacs for my Atari ST? - - Roland Schäuble reports that Emacs 18.58 running on plain TOS and MiNT - is available at - - ftp://atari.archive.umich.edu/Editors/Emacs-18-58/1858b-d3.zoo - -98: Where can I get Emacs for my Amiga? - - The files you need are available at - - ftp://ftp.wustl.edu/pub/aminet/util/gnu/ - - David Gilbert has released a beta - version of Emacs 19.25 for the Amiga. You can get the binary at - - ftp://ftp.wustl.edu/pub/aminet/util/gnu/a2.0bEmacs-bin.lha - -99: Where can I get Emacs for NeXTSTEP? - - Emacs.app is a NeXTSTEP version of Emacs 19.34 which supports colors, - menus, and multiple frames. You can get it from - - ftp://next-ftp.peak.org/pub/next/apps/emacs/Emacs_for_NeXTstep.4.20a1.NIHS.b.tar.gz - -100: Where can I get Emacs for my Apple computer? - - - There used to be a boycott of Apple because of its "look and feel" - lawsuit. The lawsuit failed, and the boycott is over. - Currently the GNU project treats Apple like other computer companies. - - Since the Mac operating system is very different from Unix and GNU, - support for it would be a big job. And this job would be tangential - to the GNU project's goals. Meanwhile, we don't have the resources - to do all we want to do on supporting Emacs for GNU-like systems. - So if we had to do work on support for the Macintosh, that would - directly harm the GNU project. - - Of course, the same is true for MSDOS and Windows NT. We decided to - incorporate support for those systems because the code was very modular, - because volunteers not only wrote all the code but also investigate - all the bugs reported on those systems, and because we hoped that we - will be able to raise funds for GNU using these versions, and in this - way these ports will make up for the effort that they took. (We still - hope so, but it has not happened yet.) - - An unofficial port of GNU Emacs 18.59 to the Macintosh is available at a - number of ftp sites, the home being - - ftp://ftp.cs.cornell.edu/pub/parmet/Emacs-1.17.sit.bin - - To the best of our knowledge, Emacs 19 has not been ported to the - Macintosh. - - Apple's forthcoming "OS X" is based largely on NeXTSTEP and OpenStep. - See question 99 for more details about that version. - -101: Where do I get Emacs that runs on VMS under DECwindows? - - Up-to-date information about GNU software (including Emacs) for VMS is - available at - - http://vms.gnu.org/ - -102: Where can I get modes for Lex, Yacc/Bison, Bourne shell, Csh, C++, - Objective-C, Pascal, Java, and Awk? - - Most of these modes are now available in standard Emacs distribution. To - get additional modes, look in the Lisp Code Directory (see question 89). - For C++, if you use lisp-dir-apropos, you must specify the pattern like - this: - - M-x lisp-dir-apropos RET c\+\+ RET - - Note that Barry Warsaw's cc-mode now works for C, C++, Objective-C, and - Java code. You can get the latest version from the Emacs Lisp Archive; - see question 90 for details. A FAQ for cc-mode is available at - - http://www.python.org/emacs/cc-mode/ - -103: What is the IP address of XXX.YYY.ZZZ? - - If you are on a Unix machine, try using the "nslookup" command, included - in the Berkeley BIND package. For example, to find the IP address of - "ftp.gnu.org", you would type - - nslookup ftp.gnu.org - - Your computer should then provide the IP address of that computer. - - If your site's nameserver is deficient, you can use IP addresses to FTP - files. You can get this information by - - * E-mail: - - To: dns@[134.214.84.25] (to grasp.insa-lyon.fr) - Body: ip XXX.YYY.ZZZ (or "help" for more information - and options - no quotes) - or: - - To: resolve@[147.31.254.130] (to laverne.cs.widener.edu) - Body: site XXX.YYY.ZZZ - - -Major Emacs Lisp Packages, Emacs Extensions, and Related Programs - -104: VM (View Mail) -- another mail reader within Emacs, with MIME support - - Author: Kyle Jones - Latest version: 6.67 - Anonymous FTP: - ftp://ftp.wonderworks.com/pub/vm/vm.tar.gz - Newsgroups and mailing lists: - Informational newsgroup/mailing list: - gnu.emacs.vm.info (newsgroup) - info-vm-request@uunet.uu.net (for subscriptions) - info-vm@uunet.uu.net (for submissions) - Bug reports newsgroup/mailing list: - gnu.emacs.vm.bug (newsgroup) - bug-vm-request@uunet.uu.net (for subscriptions) - bug-vm@uunet.uu.net (for submissions) - NOTE: VM 6 is not guaranteed to work under Emacs 20 (although many people - seem to use it without too much trouble). Users of Emacs 20 might prefer - to use VM 5.97, available from the same FTP site. - -105: Supercite -- mail and news citation package within Emacs - - Author: Barry Warsaw - Latest version: 3.1 (comes with Emacs 20) - - World Wide Web: - http://www.python.org/emacs/supercite.tar.gz - Mailing list: - supercite-request@python.org (for subscriptions) - supercite@python.org (for submissions) - NOTE: Superyank is an old version of Supercite. - -106: Calc -- poor man's Mathematica within Emacs - - Author: Dave Gillespie - Latest version: 2.02f - Anonymous FTP: - ftp://ftp.gnu.org/pub/gnu/calc/calc-2.02f.tar.gz - NOTE: Unlike Wolfram Research, Dave has never threatened to sue - anyone for having a program with a similar command language to - Calc. :-) - -107: VIPER -- vi emulation for Emacs - - Since Emacs 19.29, the preferred vi emulation in Emacs is VIPER (M-x - viper-mode RET), which comes with Emacs. It extends and supersedes VIP - (including VIP 4.3) and provides vi emulation at several levels, from one - that closely follows vi to one that departs from vi in several - significant ways. - - For Emacs 19.28 and earlier, the following version of VIP is generally - better than the one distributed with Emacs: - - Author: Aamod Sane - Latest version: 4.3 - Anonymous FTP: - ftp://ftp.cis.ohio-state.edu/pub/emacs-lisp/modes/vip-mode.tar.Z - -108: AUC TeX -- enhanced LaTeX mode with debugging facilities - - Authors: Kresten Krab Thorup - and Per Abrahamsen - Latest version: 9.8l - Anonymous FTP: - ftp://sunsite.auc.dk/packages/auctex/auctex.tar.gz - Mailing list: - auc-tex-request@iesd.auc.dk (for subscriptions) - auc-tex@iesd.auc.dk (for submissions) - auc-tex_mgr@iesd.auc.dk (auc-tex development team) - World Wide Web: - http://sunsite.auc.dk/auctex/ - -109: BBDB -- personal Info Rolodex integrated with mail/news readers - - Maintainer: Matt Simmons - Latest released version: 2.00 - Available from: - http://www.netcom.com/~simmonmt/bbdb/index.html - Mailing lists: - info-bbdb-request@xemacs.org (for subscriptions) - info-bbdb@xemacs.org (for submissions) - bbdb-announce-request@xemacs.org (to be informed of new releases) - -110: Ispell -- spell checker in C with interface for Emacs - - Author: Geoff Kuenning - Latest released version: 3.1.20 - Anonymous FTP: - Master Sites: - ftp://ftp.cs.ucla.edu/pub/ispell/ispell-3.1.20.tar.gz - Known Mirror Sites: - ftp://ftp.th-darmstadt.de/pub/dicts/ispell/ - ftp://ftp.nl.net/pub/textproc/ispell/ - World Wide Web: - http://fmg-www.cs.ucla.edu/geoff/ispell.html - - NOTE: * Do not ask Geoff to send you the latest version of Ispell. - He does not have free e-mail. - - * This Ispell program is distinct from GNU Ispell 4.0. GNU - Ispell 4.0 is no longer a supported product. - -111: W3-mode -- A World Wide Web browser inside of Emacs - - Author: Bill Perry - Latest version: 4.0pre.39 - Anonymous FTP: - ftp://ftp.cs.indiana.edu/pub/elisp/w3/.betas/w3.tar.gz - Mailing lists: - w3-announce-request@indiana.edu (to get announcements of new versions) - w3-beta-request@indiana.edu (for beta-testers of new versions) - w3-dev@indiana.edu (for developers of W3) - -112: EDB -- Database program for Emacs; replaces forms editing modes - - Author: Michael Ernst - Latest version: 1.21 - Anonymous FTP: - ftp://theory.lcs.mit.edu/pub/emacs/edb - -113: Mailcrypt -- PGP interface within Emacs mail and news - - Authors: Patrick J. LoPresti and - Jin S. Choi - Maintainer: Len Budney - Latest version: 3.5.1 - Anonymous FTP: - ftp://metalab.unc.edu/pub/Linux/apps/crypto/mailcrypt-3.5.1.tar.gz - World Wide Web: - http://www.nb.net/~lbudney/linux/software/mailcrypt.html - -114: JDE -- Development environment for Java programming - - Author: Paul Kinnucan - Mailing list: jde-subscribe@sunsite.auc.dk - Latest version: 2.1.4 - World Wide Web: http://sunsite.auc.dk/jde/ - -115: Patch -- program to apply "diffs" for updating files - - Author: Larry Wall (with GNU modifications) - Latest version: 2.5 - Anonymous FTP: See question 92 - - -Changing Key Bindings and Handling Key Binding Problems - -116: How do I bind keys (including function keys) to commands? - - Keys can be bound to commands either interactively or in your .emacs - file. To interactively bind keys for all modes, type - - M-x global-set-key RET KEY CMD RET - - To bind a key just in the current major mode, type - - M-x local-set-key RET KEY CMD RET - - See "Key Bindings" in the on-line manual for further details. - - To bind keys on starting Emacs or on starting any given mode, use the - following "trick": First bind the key interactively, then immediately - type "C-x ESC ESC C-a C-k C-g". Now, the command needed to bind the key - is in the kill ring, and can be yanked into your .emacs file. If the key - binding is global, no changes to the command are required. For example, - - (global-set-key [f1] 'help-for-help) - - can be placed directly into the .emacs file. If the key binding is - local, the command is used in conjunction with the "add-hook" command. - For example, in tex-mode, a local binding might be - - (add-hook 'tex-mode-hook - (lambda () - (local-set-key [f1] 'help-for-help))) - - NOTE: * Control characters in key sequences, in the form yanked from the - kill ring are given in their graphic form -- i.e., CTRL is shown - as `^', TAB as a set of spaces (usually 8), etc. You may want to - convert these into their vector or string forms. - - * If a prefix key of the character sequence to be bound is already - bound as a complete key, then you must unbind it before the new - binding. For example, if "ESC {" is previously bound: - - (global-unset-key [?\e ?{]) ;; or - (local-unset-key [?\e ?{]) - - * Aside from commands and "lambda lists," a vector or string also - can be bound to a key and thus treated as a macro. For example: - - (global-set-key [f10] [?\C-x?\e?\e?\C-a?\C-k?\C-g]) ;; or - (global-set-key [f10] "\C-x\e\e\C-a\C-k\C-g") - - * The "kbd" macro is convenient for converting a key description in - the form used in documentation or printed by C-h c (except that - function key symbols must be enclosed in angle brackets). For - example: - - (global-set-key (kbd "") 'help-for-help) - (global-set-key (kbd "C-h") 'help-for-help) - (local-set-key (kbd "DEL") 'scroll-down) - -117: Why does Emacs say "Key sequence XXX uses invalid prefix characters"? - - Usually, one of two things has happened. In one case, the control - character in the key sequence has been misspecified (e.g. "C-f" used - instead of "\C-f" within a Lisp expression). In the other case, a - "prefix key" in the keystroke sequence you were trying to bind was - already bound as a "complete key." Historically, the "ESC [" prefix was - usually the problem, in which case you should evaluate either of these - forms before attempting to bind the key sequence: - - (global-unset-key [?\e ?[]) ;; or - (global-unset-key "\e[") - -118: Why doesn't this [terminal or window-system setup] code work in my - .emacs file, but it works just fine after Emacs starts up? - - During startup, Emacs initializes itself according to a given code/file - order. If some of the code executed in your .emacs file needs to be - postponed until the initial terminal or window-system setup code has been - executed but is not, then you will experience this problem (this - code/file execution order is not enforced after startup). - - To postpone the execution of Emacs Lisp code until after terminal or - window-system setup, treat the code as a "lambda list" and set the value - of either the "term-setup-hook" or "window-setup-hook" variable to this - "lambda function." For example, - - (setq term-setup-hook - (function - (lambda () - (cond ((string-match "\\`vt220" (or (getenv "TERM") "")) - ;; Make vt220's "Do" key behave like M-x: - (global-set-key [do] 'execute-extended-command)) - )))) - - For information on what Emacs does every time it is started, see - "Starting Up Emacs" in the Lisp Reference Manual. - -119: How do I use function keys under X Windows? - - With Emacs 19, functions keys under X are bound like any other key. See - question 116 for details. - -120: How do I tell what characters or symbols my function or arrow keys - emit? - - Type "C-h c" then the function or arrow keys. The command will return - either a function key symbol or character sequence (see the Emacs on-line - documentation for an explanation). This works for other keys as well. - -121: How do I set the X key "translations" for Emacs? - - Emacs is not written using the Xt library by default, so there are no - "translations" to be set. (We aren't sure how to set such translations - if you do build Emacs with Xt; please let us know if you've done this!) - - The only way to affect the behavior of keys within Emacs is through - "xmodmap" (outside Emacs) or "define-key" (inside Emacs). The - "define-key" command should be used in conjunction with the - "function-key-map" map. For instance, - - (define-key function-key-map [M-tab] [?\M-\t]) - - defines the "M-TAB" key sequence. - -122: How do I handle C-s and C-q being used for flow control? - - C-s and C-q are used in the XON/XOFF flow control protocol. This messes - things up when you're using Emacs, because Emacs binds these keys to - commands by default. Because Emacs won't honor them as flow control - characters, too many of these characters are not passed on and overwhelm - output buffers. Sometimes, intermediate software using XON/XOFF flow - control will prevent Emacs from ever seeing C-s and C-q. - - Possible solutions: - - * Disable the use of C-s and C-q for flow control. - - You need to determine the cause of the flow control. - - * your terminal - - Your terminal may use XON/XOFF flow control to have time to display - all the characters it receives. For example, VT series terminals do - this. It may be possible to turn this off from a setup menu. For - example, on a VT220 you may select "No XOFF" in the setup menu. This - is also true for some terminal emulation programs on PCs. - - When you turn off flow control at the terminal, you will also need to - turn it off at the other end, which might be at the computer you are - logged in to or at some terminal server in between. - - If you turn off flow control, characters may be lost; using a printer - connected to the terminal may fail. You may be able to get around - this problem by modifying the "termcap" entry for your terminal to - include extra NUL padding characters. - - * a modem - - If you are using a dialup connection, the modems may be using - XON/XOFF flow control. It's not clear how to get around this. - - * a router or terminal server - - Some network box between the terminal and your computer may be using - XON/XOFF flow control. It may be possible to make it use some other - kind of flow control. You will probably have to ask your local - network experts for help with this. - - * tty and/or pty devices - - If your connection to Emacs goes through multiple tty and/or pty - devices, they may be using XON/XOFF flow control even when it is not - necessary. - - Eirik Fuller writes: - - Some versions of "rlogin" (and possibly telnet) do not pass flow - control characters to the remote system to which they connect. On - such systems, Emacs on the remote system cannot disable flow - control on the local system. Sometimes "rlogin -8" will avoid this - problem. - - One way to cure this is to disable flow control on the local host - (the one running rlogin, not the one running rlogind) using the - stty command, before starting the rlogin process. On many systems, - "stty start u stop u" will do this. - - Some versions of "tcsh" will prevent even this from working. One - way around this is to start another shell before starting rlogin, - and issue the stty command to disable flow control from that shell. - - Use "stty -ixon" instead of "stty start u stop u" on some systems. - - * Make Emacs speak the XON/XOFF flow control protocol. - - You can make Emacs treat C-s and C-q as flow control characters by - evaluating the form - - (enable-flow-control) - - to unconditionally enable flow control or - - (enable-flow-control-on "vt100" "h19") - - (using your terminal names instead of "vt100" or "h19") to enable - selectively. These commands will automatically swap `C-s' and `C-q' to - `C-\' and `C-^'. Variables can be used to change the default swap keys - ("flow-control-c-s-replacement" and "flow-control-c-q-replacement"). - - If you are fixing this for yourself, simply put the form in your .emacs - file. If you are fixing this for your entire site, the best place to - put it is in the lisp/site-start.el file. Putting this form in - lisp/default.el has the problem that if the user's .emacs file has an - error, this will prevent lisp/default.el from being loaded and Emacs - may be unusable for the user, even for correcting their .emacs file - (unless they're smart enough to move it to another name). - - For further discussion of this issue, read the file PROBLEMS (in the - top-level directory when you unpack the Emacs source). - -123: How do I bind `C-s' and `C-q' (or any key) if these keys are filtered - out? - - To bind `C-s' and `C-q', use either "enable-flow-control" or - "enable-flow-control-on". See question 122 for usage and implementation - details. - - To bind other keys, use "keyboard-translate". See question 126 for usage - details. To do this for an entire site, you should swap the keys in - lisp/site-start.el. See question 122 for an explanation of why - lisp/default.el should not be used. - - NOTE: * If you do this for an entire site, the users will be confused by - the disparity between what the documentation says and how Emacs - actually behaves. - -124: Why does the "Backspace" key invoke help? - - The "Backspace" key (on most keyboards) generates ASCII code 8. `C-h' - sends the same code. In Emacs by default `C-h' invokes help-command. - This is intended to be easy to remember since the first letter of "help" - is `h'. The easiest solution to this problem is to use `C-h' (and - Backspace) for help and DEL (the Delete key) for deleting the previous - character. - - For many people this solution may be problematic: - - * They normally use Backspace outside of Emacs for deleting the previous - character. This can be solved by making DEL the command for deleting - the previous character outside of Emacs. On many Unix systems, this - command will remap DEL: - - stty erase `^?' - - * The person may prefer using the Backspace key for deleting the previous - character because it is more conveniently located on their keyboard or - because they don't even have a separate Delete key. In this case, the - Backspace key should be made to behave like Delete. There are several - methods. - - * Some terminals (e.g., VT3## terminals) allow the character generated by - the Backspace key to be changed from a setup menu. - - * You may be able to get a keyboard that is completely programmable. - - * Under X or on a dumb terminal, it is possible to swap the Backspace and - Delete keys inside Emacs: - - (keyboard-translate ?\C-h ?\C-?) - - See question 126 for further details of "keyboard-translate". - - * Another approach is to switch key bindings and put help on "C-x h" - instead: - - (global-set-key "\C-h" 'delete-backward-char) - (global-set-key "\C-xh" 'help-command) ;; overrides mark-whole-buffer - - Other popular key bindings for help are M-? and "C-x ?". - - NOTE: * Don't try to bind DEL to help-command, because there are many - modes that have local bindings of DEL that will interfere. - -125: Why doesn't Emacs look at the stty settings for Backspace vs. Delete? - - Good question! - -126: How do I "swap" two keys? - - In Emacs 19, you can swap two keys (or key sequences) by using the - "keyboard-translate" function. For example, to turn `C-h' into DEL and - DEL to `C-h', use - - (keyboard-translate ?\C-h ?\C-?) ; translate `C-h' to DEL - (keyboard-translate ?\C-? ?\C-h) ; translate DEL to `C-h'. - - The first key sequence of the pair after the function identifies what is - produced by the keyboard; the second, what is matched for in the keymaps. - - Keyboard translations are not the same as key bindings in keymaps. Emacs - contains numerous keymaps that apply in different situations, but there - is only one set of keyboard translations, and it applies to every - character that Emacs reads from the terminal. Keyboard translations take - place at the lowest level of input processing; the keys that are looked - up in keymaps contain the characters that result from keyboard - translation. - - Also see "Keyboard Translations" in the on-line manual. - -127: How do I produce C-XXX with my keyboard? - - On terminals (but not under X), some common "aliases" are: - - C-2 or C-SPC for C-@ - C-6 for C-^ - C-7 or C-S-- for C-_ - C-4 for C-\ - C-5 for C-] - C-/ for C-? - - Often other aliases exist; use the "C-h c" command and try `CTRL' with - all of the digits on your keyboard to see what gets generated. You can - also try the "C-h w" command if you know the name of the command. - -128: What if I don't have a Meta key? - - Instead of typing "M-a", you can type "ESC a". In fact, Emacs converts - M-a internally into "ESC a" anyway (depending on the value of - meta-prefix-char). Note that you press "Meta" and `a' together, while - you press `ESC', release it, and then press `a'. - -129: What if I don't have an Escape key? - - Type `C-[' instead. This should send ASCII code 27 just like an Escape - key would. `C-3' may also work on some terminal (but not under X). For - many terminals (notably DEC terminals) `F11' generates ESC. If not, the - following form can be used to bind it: - - (define-key function-key-map [f11] [?\e]) ; F11 is the documented ESC - ; replacement on DEC terminals. - -130: Can I make my "Compose Character" key behave like a Meta key? - - On a dumb terminal such as a VT220, no. It is rumored that certain VT220 - clones could have their Compose key configured this way. If you're using - X, you might be able to do this with the "xmodmap" program. - -131: How do I bind a combination of modifier key and function key? - - With Emacs 19 you can represent modified function keys in vector format - by adding prefixes to the function key symbol. For example (from the - on-line documentation): - - (global-set-key [?\C-x right] 'forward-page) - - where "?\C-x" is the Lisp character constant for the character "C-x". - - You can use the modifier keys Control, Meta, Hyper, Super, Alt, and Shift - with function keys. To represent these modifiers, prepend the strings - "C-", "M-", "H-", "s-", "A-", and "S-" to the symbol name. Here is how - to make "Hyper-Meta-RIGHT" move forward a word: - - (global-set-key [H-M-right] 'forward-word) - - In recent Emacs versions this may also be written as: - - (global-set-key [(hyper meta right)] 'forward-word) - - NOTE: * Not all modifiers are permitted in all situations. Hyper, Super, - and Alt are available only under X (provided there are such - keys). Non-ASCII keys and mouse events (e.g. "C-=" and - "mouse-1") also fall under this category. - - See question 116 for general key binding instructions. - -132: Why doesn't my Meta key work in an xterm window? - - Try all of these methods before asking for further help: - - * You may have big problems using "mwm" as your window manager. {Does - anyone know a good generic solution to allow the use of the Meta key in - Emacs with mwm?} - - * For X11: Make sure it really is a Meta key. Use "xev" to find out what - keysym your Meta key generates. It should be either Meta_L or Meta_R. - If it isn't, use xmodmap to fix the situation. - - * Make sure the pty the xterm is using is passing 8 bit characters. - "stty -a" (or "stty everything") should show "cs8" somewhere. If it - shows "cs7" instead, use "stty cs8 -istrip" (or "stty pass8") to fix - it. - - * If there is an rlogin connection between the xterm and the Emacs, the - "-8" argument may need to be given to rlogin to make it pass all 8 bits - of every character. - - * If the Emacs is running under Ultrix, it is reported that evaluating - (set-input-mode t nil) helps. - - * If all else fails, you can make xterm generate "ESC W" when you type - M-W, which is the same conversion Emacs would make if it got the M-W - anyway. In X11R4, the following resource specification will do this: - - XTerm.VT100.EightBitInput: false - - (This changes the behavior of the insert-eight-bit action.) - - With older xterms, you can specify this behavior with a translation: - - XTerm.VT100.Translations: #override \ - Meta: string(0x1b) insert() - - You might have to replace "Meta" with "Alt". - -133: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0 - and 9.x? - - This is a result of an internationalization extension in X11R4 and the - fact that HP is now using this extension. Emacs assumes that - XLookupString returns the same result regardless of the Meta key state - which is no longer necessarily true. Until Emacs is fixed, the temporary - kludge is to run this command after each time the X server is started but - preferably before any xterm clients are: - - xmodmap -e 'remove mod1 = Mode_switch' - - NOTE: This will disable the use of the extra keysyms systemwide, which - may be undesirable if you actually intend to use them. - - -Using Emacs with Alternate Character Sets - -134: How do I make Emacs display 8-bit characters? - - Emacs 19 introduced built-in support for 8-bit characters. Emacs 20 can - operate similarly in Unibyte mode or else in Multibyte mode. See the - "International" node in the online manual, specifically "Single-Byte - European Support". - -135: How do I input 8-bit characters? - - Again, see the "International" node of the on-line manual. - -136: Where can I get an Emacs that handles kanji, Chinese, or other - character sets? - - Emacs 20 now includes many of the features of MULE, the Multilingual - Enhancement of Emacs. See question 84 for information on where to find - and download Emacs. - -137: Where is an Emacs that can handle Semitic (right-to-left) alphabets? - - Emacs 20 supports Hebrew characters (ISO 8859-8), but does not yet - support right-to-left character entry. - - Joel M. Hoffman has written a Lisp package called - hebrew.el that allows right-to-left editing of Hebrew. It reportedly - works out of the box with Emacs 19, but requires patches for Emacs 18. - Write to Joel if you want the patches or package. - - Hebrew.el requires a Hebrew screen font, but no other Hardware support. - Joel has a screen font for PCs running MS-DOS and Linux. - - You might also try to query archie for files named with "hebrew"; several - ftp sites in Israel may also have the necessary files. - - -Mail and News - -138: How do I change the included text prefix in mail/news followups? - - If you read mail with Rmail or news with Gnus, set the variable - mail-yank-prefix. For VM, set vm-included-text-prefix. For mh-e, set - mh-ins-buf-prefix. - - For fancier control of citations, use Supercite. See question 105. - - To prevent Emacs from including various headers of the replied-to - message, set the value of mail-yank-ignored-headers to an appropriate - regexp. - -139: How do I save a copy of outgoing mail? - - You can either mail yourself a copy by including a "BCC:" header in the - mail message, or store a copy of the message directly to a file by - including an "FCC:" header. - - If you use standard mail, you can automatically create a "BCC:" to - yourself by putting - - (setq mail-self-blind t) - - in your .emacs file. You can automatically include an "FCC:" field by - putting something like the following in your .emacs file: - - (setq mail-archive-file-name (expand-file-name "~/outgoing")) - - The output file will be in Unix mail format, which can be read directly - by VM, but not always by Rmail. See question 141. - - For Gnus, see the `Archived Messages node of the Gnus manual. - - If you use mh-e, add an "FCC:" or "BCC:" field to your components file. - - It does not work to put "set record filename" in the .mailrc file. - -140: Why doesn't Emacs expand my aliases when sending mail? - - * You must separate multiple addresses in the headers of the mail buffer - with commas. This is because Emacs supports RFC822 standard addresses - like this one: - - To: Willy Smith - - However, you do not need to -- and probably should not, unless your - system's version of /usr/ucb/mail (aka mailx) supports RFC822 -- - separate addresses with commas in your ~/.mailrc file. - - * Emacs normally only reads the ".mailrc" file once per session, when you - start to compose your first mail message. If you edit .mailrc, you can - type "M-x rebuild-mail-abbrevs RET" to make Emacs reread your ~/.mailrc - file. - - * If you like, you can expand mail aliases as abbrevs, as soon as you - type them in. To enable this feature, execute the following: - - (add-hook 'mail-setup-hook 'mail-abbrevs-setup) - - Note that the aliases are expanded automatically only after you type - RET or a punctuation character (e.g. `,'). You can force their - expansion by moving point to the end of the alias and typing "C-x a e" - (M-x expand-abbrev). - -141: Why does Rmail think all my saved messages are one big message? - - A file created through the FCC: field in a message is in Unix mail - format, not the format that Rmail uses (BABYL format). Rmail will try to - convert a Unix mail file into BABYL format on input, but sometimes it - makes errors. For guaranteed safety, you can make the saved-messages - file be an inbox for your Rmail file by using the function - set-rmail-inbox-list. - -142: How can I sort the messages in my Rmail folder? - - In Rmail, type "C-c C-s C-h" to get a list of sorting functions and their - key bindings. - -143: Why does Rmail need to write to /usr/spool/mail? - - This is the behavior of the "movemail" program which Rmail uses. This - indicates that movemail is configured to use lock files. - - RMS writes: - - Certain systems require lock files to interlock access to mail files. - On these systems, movemail must write lock files, or you risk losing - mail. You simply must arrange to let movemail write them. - - Other systems use the flock system call to interlock access. On these - systems, you should configure movemail to use flock. - -144: How do I recover my mail files after Rmail munges their format? - - If you have just done rmail-input on a file and you don't want to save it - in Rmail's format (called BABYL), just kill the buffer (with C-x k). - - If you typed M-x rmail and it read some messages out of your inbox and - you want to put them in a Unix mail file, use C-o on each message. - - If you want to convert an existing file from BABYL format to Unix mail - format, use the command M-x unrmail: it will prompt you for the input and - output file names. - -145: How can I force Rmail to reply to the sender of a message, but not the - other recipients? - - Ron Isaacson says: When you hit "r" to reply in - Rmail, by default it CCs all of the original recipients (everyone on the - original "To" and "CC" lists). With a prefix argument (i.e., typing "C-u" - before "r"), it replies only to the sender. However, going through the - whole C-u business every time you want to reply is a pain. This is the - best fix I've been able to come up with: - - (defun rmail-reply-t () - "Reply only to the sender of the current message. (See rmail-reply.)" - (interactive) - (rmail-reply t)) - - (add-hook 'rmail-mode-hook - '(lambda () - (define-key rmail-mode-map "r" 'rmail-reply-t) - (define-key rmail-mode-map "R" 'rmail-reply))) - -146: How can I get my favorite Emacs mail package to support MIME? - - Look at the Emacs MIME FAQ, maintained by MacDonald Hall Jackson - at - - http://bmrc.berkeley.edu/~trey/emacs/mime.html - - Version 6.x of VM supports MIME. See question 104. - - MIME support has been added in the development version of Gnus which will - be included with a future version of Emacs. - -147: How do I make Emacs automatically start my mail/news reader? - - To start Emacs in Gnus: - - emacs -f gnus - - in Rmail: - - emacs -f rmail - - A more convenient way to start with Gnus: - - alias gnus 'emacs -f gnus' - gnus - - It is probably unwise to automatically start your mail or news reader - from your .emacs file. This would cause problems if you needed to run - two copies of Emacs at one time. Also, this would make it difficult for - you to start Emacs quickly when you needed to. - -148: How do I read news under Emacs? - - Use M-x gnus. It is documented in Info (see question 14). - -149: Why doesn't Gnus work via NNTP? - - There is a bug in NNTP version 1.5.10, such that when multiple requests - are sent to the NNTP server, the server only handles the first one before - blocking waiting for more input which never comes. NNTP version 1.5.11 - claims to fix this. - - You can work around the bug inside Emacs like this: - - (setq nntp-maximum-request 1) - - You can find out what version of NNTP your news server is running by - telnetting to the NNTP port (usually 119) on the news server machine - (i.e., "telnet server-machine 119"). The server should give its version - number in the welcome message. Type "quit" to get out. - - Also see question 75 in this FAQ for some additional ideas. - -150: How do I view news articles with embedded underlining (e.g., - ClariNews)? - - Underlining appears like this: - - _^Hu_^Hn_^Hd_^He_^Hr_^Hl_^Hi_^Hn_^Hi_^Hn_^Hg - - Use Gnus' "Overstrike" function from the Article -> Washing menu (or type - "W o"). You can do this for all articles with: - - (add-hook 'gnus-article-prepare-hook 'gnus-article-treat-overstrike) - - If you prefer to do away with underlining altogether, you can - destructively remove it with M-x ununderline-region; do this - automatically via - - (add-hook 'gnus-article-prepare-hook - (lambda () (ununderline-region (point-min) (point-max)))) - - See the Gnus manual for more information about this and similar methods - for treating article contents. - -151: How do I save all the items of a multi-part posting in Gnus? - - Use gnus-uu. Type C-c C-v C-h in the Gnus summary buffer to see a list - of available commands. - -152: How do I make Gnus start up faster? - - From the Gnus FAQ (see question 158): - - Pranav Kumar Tiwari writes: I posted the same - query recently and I got an answer to it. I am going to repeat the - answer. What you need is a newer version of gnus, version 5.0.4+. I am - using 5.0.12 and it works fine with me with the following settings: - - (setq gnus-check-new-newsgroups nil - gnus-read-active-file 'some - gnus-nov-is-evil nil - gnus-select-method '(nntp gnus-nntp-server)) - -153: How do I catch up all newsgroups in Gnus? - - In the "*Newsgroup*" buffer, type the following magical incantation: - - M-< C-x ( c y C-x ) M-0 C-x e - - Leave off the "M-<" if you only want to catch up from point to the end of - the "*Newsgroup" buffer. - -154: Why can't I kill in Gnus based on the Newsgroups/Keywords/Control - headers? - - Gnus will complain that the "Newsgroups:", "Keywords:", and "Control:" - headers are "Unknown header" fields. - - For the "Newsgroups:" header, there is an easy workaround: kill on the - "Xref" header instead, which will be present on any cross-posted article - (as long as your site carries the cross-post group). - - If you really want to kill on one of these headers, you can do it like - this: - - (gnus-kill nil "^Newsgroups: .*\\(bad\\.group\\|worse\\.group\\)") - -155: How do I get rid of flashing messages in Gnus for slow connections? - - Set nntp-debug-read to nil. - -156: Why is catch up slow in Gnus? - - Because Gnus is marking crosspostings read. You can control this with - the variable gnus-use-cross-reference. - -157: Why does Gnus hang for a long time when posting? - - David Lawrence explains: - - The problem is almost always interaction between NNTP and C News. NNTP - POST asks C News's inews to not background itself but rather hang - around and give its exit status so it knows whether the post was - successful. (That wait will on some systems not return the exit status - of the waited for job is a different sort of problem.) It ends up - taking a long time because inews is calling relaynews, which often - waits for another relaynews to free the lock on the news system so it - can file the article. - - My preferred solution is to change inews to not call relaynews, but - rather use newsspool. This loses some error-catching functionality, - but is for the most part safe as inews will detect a lot of the errors - on its own. The C News folks have sped up inews, too, so speed should - look better to most folks as that update propagates around. - -158: Where can I find out more about Gnus? - - Visit http://www.gnus.org/, which has a pointer to the current Gnus FAQ and - more information. The relevant newsgroup is gnu.emacs.gnus. - ------------------------------------------------------------- -Modified, with permission, for the Emacs 20.4 distribution by Dave Love. - -Copyright 1994-1998 Reuven M. Lerner -Copyright 1992-1993 Steven Byrnes -Copyright 1990-1992 Joseph Brian Wells - -This list of frequently asked questions about GNU Emacs with answers -("FAQ") may be translated into other languages, transformed into other -formats (e.g. Texinfo, Info, WWW, WAIS), and updated with new information. - -The same conditions apply to any derivative of the FAQ as apply to the FAQ -itself. Every copy of the FAQ must include this notice or an approved -translation, information on who is currently maintaining the FAQ and how to -contact them (including their e-mail address), and information on where the -latest version of the FAQ is archived (including FTP information). - -The FAQ may be copied and redistributed under these conditions, except that -the FAQ may not be embedded in a larger literary work unless that work -itself allows free copying and redistribution. - ------------------------------------------------------------- - -People who helped with this version of the FAQ: - -Ethan Bradford , William G. Dubuque -, Michael Ernst , -and Denby Wong <3dw16@qlink.QueensU.CA>.