mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-11 09:20:51 +00:00
4470 lines
190 KiB
Plaintext
4470 lines
190 KiB
Plaintext
GNU Emacs FAQ: Introduction
|
|
|
|
[To find what has changed, see the "Changes" posting.]
|
|
|
|
[The FAQ post date slipped big-time this time. Now that school is over
|
|
with and I can get on with the rest of my life, posting should become a
|
|
lot more regular. - sbyrnes]
|
|
|
|
This is the introduction to a list of frequently asked questions (FAQ) about
|
|
GNU Emacs with answers. This article contains a listing of the questions;
|
|
subsequent articles contain the questions and answers.
|
|
|
|
The FAQ list is posted 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, etc. 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 of a question is in the FAQ list, please reply to the
|
|
question by e-mail instead of posting. Help reduce noise!
|
|
|
|
The FAQ list is crossposted to `comp.emacs' because some sites do not receive
|
|
the `gnu.*' newsgroups. The FAQ list is also crossposted to `news.answers'.
|
|
|
|
Please suggest new questions, answers, wording changes, deletions, etc. The
|
|
most helpful form for suggestions is a context diff (ie., the output of `diff
|
|
-c'). Include `FAQ' in the subject of messages sent to us 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. :-(
|
|
|
|
Full instructions for getting the latest FAQ are in question 22. Also see the
|
|
`Introduction to news.answers' posting in the `news.answers' newsgroup, or send
|
|
e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
|
|
WAIS, or Prospero to rtfm.mit.edu.
|
|
|
|
These ideas have already been suggested, but we have not had time to
|
|
implement them:
|
|
|
|
* A Texinfo version.
|
|
* Marking questions in the table of contents that have been changed
|
|
recently.
|
|
|
|
--
|
|
Steven Byrnes <sbyrnes@rice.edu> (and Joe Wells <jbw@cs.bu.edu>)
|
|
|
|
E-mail lpf@uunet.uu.net for details about the League for Programming Freedom.
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
GNU Emacs FAQ: Table of Contents
|
|
|
|
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 and why should I join it?
|
|
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 GNU Emacs?
|
|
11: How do I unsubscribe to 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 GNU Emacs; how do I do basic editing?
|
|
14: How do I find out how to do something in GNU Emacs?
|
|
15: How do I get a printed copy of the GNU Emacs manual?
|
|
16: Where can I get documentation on GNU 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 GNU Emacs?
|
|
20: What informational files are available for GNU Emacs?
|
|
21: Where can I get help in installing GNU 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 GNU Emacs?
|
|
25: When will GNU Emacs 19 be available?
|
|
26: What is different about GNU Emacs 19?
|
|
27: What variants of GNU Emacs exist?
|
|
|
|
Common Things People Want To Do
|
|
|
|
28: How do I set up a .emacs file properly?
|
|
29: How do I debug a .emacs file?
|
|
30: How do I make Emacs display the current line (or column) number?
|
|
31: How do I turn on Abbrevs by default just in mode XXX?
|
|
32: How do I turn on Auto-Fill mode by default?
|
|
33: How do I make Emacs use a certain major mode for certain files?
|
|
34: How do I search for, delete, or replace unprintable (8-bit or control)
|
|
characters?
|
|
35: How can I highlight a region of text in Emacs?
|
|
36: How do I control Emacs's case-sensitivity when searching/replacing?
|
|
37: How do I make Emacs wrap words for me?
|
|
38: Where can I get a better spelling checker for Emacs?
|
|
39: How can I spell-check TeX or *roff documents?
|
|
40: How do I change load-path?
|
|
41: How do I use an already running Emacs from another window?
|
|
42: How do I make Emacs recognize my compiler's funny error messages?
|
|
43: How do I indent switch statements like this?
|
|
44: How can I make Emacs automatically scroll horizontally?
|
|
45: How do I make Emacs "typeover" or "overwrite" instead of inserting?
|
|
46: How do I stop Emacs from beeping on a terminal?
|
|
47: How do I turn down the bell volume in Emacs running under X Windows?
|
|
48: How do I tell Emacs to automatically indent a new line to the
|
|
indentation of the previous line?
|
|
49: How do I show which parenthesis matches the one I'm looking at?
|
|
50: In C mode, can I show just the lines that will be left after #ifdef
|
|
commands are handled by the compiler?
|
|
51: Is there an equivalent to the `.' (dot) command of vi?
|
|
52: What are the valid X resource settings (ie., stuff in .Xdefaults)?
|
|
53: How do I execute a piece of Emacs Lisp code?
|
|
54: How do I change Emacs's idea of the tab character's length?
|
|
55: How do I insert `>' at the beginning of every line?
|
|
56: How do I insert `_^H' before each character in a paragraph to get an
|
|
underlined paragraph?
|
|
57: How do I repeat a command as many times as possible?
|
|
58: 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?
|
|
59: How do I tell Emacs to iconify itself?
|
|
60: How do I use regexps (regular expressions) in Emacs?
|
|
61: How do I perform a replace operation across more than one file?
|
|
62: Where is the documentation for `etags'?
|
|
|
|
Bugs/Problems
|
|
|
|
63: Does Emacs have problems with files larger than 8 megabytes?
|
|
64: Why can't Emacs find files in current directory on startup?
|
|
65: How do I get rid of the ^M junk in my Shell buffer?
|
|
66: Why do I get `Process shell exited abnormally with code 1'?
|
|
67: Why can't I cut from Emacs and paste in other X programs?
|
|
68: Where is the termcap/terminfo entry for terminal type `emacs'?
|
|
69: Why does Emacs spontaneously start displaying `I-search:' and beeping?
|
|
70: Why can't Emacs talk to certain hosts (or certain hostnames)?
|
|
71: Why does Emacs say `Error in init file'?
|
|
72: Why does Emacs ignore my X resources (my .Xdefaults file)?
|
|
73: Why does Emacs take 20 seconds to visit a file?
|
|
74: How do I edit a file with a `$' in its name?
|
|
75: Why does Shell mode lose track of the shell's current directory?
|
|
76: Why doesn't my change to load-path work?
|
|
77: Why does the cursor always go to the wrong column when I move up or
|
|
down one line?
|
|
78: Why does Emacs hang with message `Unknown XMenu error' with X11R4?
|
|
79: Why doesn't display-time show the load average in the mode line
|
|
anymore?
|
|
80: Why does ispell sometimes ignore the local dictionary?
|
|
81: Why does Ispell treat each line as a single word?
|
|
82: Are there any security risks in GNU Emacs?
|
|
|
|
Difficulties Building/Installing/Porting Emacs
|
|
|
|
83: What should I do if I have trouble building Emacs?
|
|
84: How do I stop Emacs from failing when the executable is stripped?
|
|
85: Why does linking Emacs with -lX11 fail?
|
|
86: Why does Emacs 18.55 say `Fatal error (6).Abort' under SunOS 4.1?
|
|
|
|
Finding/Getting Emacs and Related Packages
|
|
|
|
87: Where can I get GNU Emacs on the net (or by snail mail)?
|
|
88: How do I find a GNU Emacs Lisp package that does XXX?
|
|
89: Where can I get GNU Emacs Lisp packages that don't come with Emacs?
|
|
90: How do I submit code to the Emacs Lisp Archive?
|
|
91: Where can I get other up-to-date GNU stuff?
|
|
92: Where can I get an Emacs with better mouse and X window support?
|
|
93: What is the difference between GNU Emacs and Epoch?
|
|
94: What is the difference between GNU Emacs and Lucid GNU Emacs?
|
|
95: Where can I get the "unofficial HP GNU Emacs"?
|
|
96: Where can I get Emacs for my PC running MS-DOS?
|
|
97: Where can I get Emacs for my PC running Windows?
|
|
98: Where can I get Emacs for my PC running OS/2?
|
|
99: Where can I get Emacs for my Atari ST?
|
|
100: Where can I get Emacs for my Amiga?
|
|
101: Where can I get Emacs for my Apple computer?
|
|
102: Where can I get Emacs with NeWS support?
|
|
103: Where do I get Emacs that runs on VMS under DECwindows?
|
|
104: Where can I get modes for Lex, Yacc/Bison, Bourne Shell, Csh, C++,
|
|
Objective C, Pascal, Awk?
|
|
105: What is the IP address of XXX.YYY.ZZZ?
|
|
|
|
Major Emacs Lisp Packages, Emacs Extensions, and Related Programs
|
|
|
|
106: VM (View Mail) -- another mail reader within Emacs
|
|
107: Supercite -- mail and news citation package within Emacs
|
|
108: GNUS -- news reader within Emacs
|
|
109: Calc -- poor man's Mathematica within Emacs
|
|
110: Calendar/Diary -- calendar manager within Emacs
|
|
111: Ange-FTP -- transparent FTP access for Emacs's file access routines
|
|
112: VIP -- vi emulation for Emacs
|
|
113: Dired -- better directory editor for Emacs
|
|
114: AUC TeX -- enhanced LaTeX mode with debugging facilities
|
|
115: Hyperbole -- extensible hypertext management system within Emacs
|
|
116: Byte Compiler -- enhanced version of Emacs's byte compiler
|
|
117: comint -- hugely enhanced shell mode and other derived modes
|
|
118: BBDB -- personal info rolodex integrated with mail/news readers
|
|
119: Ispell -- spell checker in C with interface for Emacs
|
|
120: Epoch -- enhanced GNU Emacs with better X interface
|
|
121: Lucid GNU Emacs -- alternative Emacs 19 with better X interface
|
|
122: Demacs -- GNU Emacs altered to run on MS-DOS on 386/486 machines
|
|
123: Freemacs -- a small Emacs for MS-DOS
|
|
124: Patch -- program to apply "diffs" for updating files
|
|
|
|
Changing Key Bindings and Handling Key Binding Problems
|
|
|
|
125: How do I bind keys (including function keys) to commands?
|
|
126: Why does Emacs say `Key sequence XXX uses invalid prefix characters'?
|
|
127: Why doesn't this [terminal or window-system setup] code work in my
|
|
.emacs file, but it works just fine after Emacs starts up?
|
|
128: How do I use function keys under X Windows?
|
|
129: How do I tell what characters my function or arrow keys emit?
|
|
130: How do I set the X key "translations" for Emacs?
|
|
131: How do I handle C-s and C-q being used for flow control?
|
|
132: How do I use commands bound to C-s and C-q (or any key) if these keys
|
|
are filtered out?
|
|
133: Why does the `BackSpace' key invoke help?
|
|
134: Why doesn't Emacs look at the stty settings for Backspace vs. Delete?
|
|
135: Why don't the arrow keys work?
|
|
136: How do I "swap" two keys?
|
|
137: How do I produce C-XXX with my keyboard?
|
|
138: What if I don't have a Meta key?
|
|
139: What if I don't have an Escape key?
|
|
140: How do I type DEL on PC terminal emulators?
|
|
141: Can I make my `Compose Character' key behave like a Meta key?
|
|
142: How do I bind a combination of modifier key and function key?
|
|
143: Why doesn't my Meta key work in an xterm window?
|
|
144: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0?
|
|
145: Where can I get key bindings to make Emacs emulate WordStar?
|
|
146: Where can I get an XEDIT emulator for Emacs?
|
|
|
|
Using Emacs with Alternate Character Sets
|
|
|
|
147: How do I make Emacs display 8-bit characters?
|
|
148: How do I input 8-bit characters?
|
|
149: Where can I get an Emacs that can handle kanji characters?
|
|
150: Where can I get an Emacs that can handle Chinese?
|
|
151: Where is an Emacs that can handle Semitic (right-to-left) alphabets?
|
|
|
|
Mail and News
|
|
|
|
152: How do I change the included text prefix in mail/news followups?
|
|
153: How do I save a copy of outgoing mail?
|
|
154: Why doesn't Emacs expand my aliases when sending mail?
|
|
155: Why does RMAIL think all my saved messages are one big message?
|
|
156: How can I sort the messages in my RMAIL folder?
|
|
157: Why does RMAIL need to write to /usr/spool/mail?
|
|
158: How do I recover my mail files after RMAIL munges their format?
|
|
159: How do I make Emacs automatically start my mail/news reader?
|
|
160: How do I read news under Emacs?
|
|
161: Why does `rnews' say "No News is good news" when there is news?
|
|
162: Why doesn't GNUS work anymore via NNTP?
|
|
163: How do I view text with embedded underlining (eg., ClariNews)?
|
|
164: When I try to post a long article in GNUS (about 10K or longer), I get
|
|
the error, "Writing to process: no more processes, nntpd"
|
|
165: How do I save all the items of a multi-part posting in GNUS?
|
|
166: Why does GNUS put the subjects in replies beyond the 80th column?
|
|
167: Why is GNUS so slow to start up?
|
|
168: How do I catch up all newsgroups in GNUS?
|
|
169: Why can't I kill in GNUS on the Newsgroups/Keywords/Control line?
|
|
170: How do I get rid of flashing messages in GNUS for slow connections?
|
|
171: Why is catch up slow in Gnews/GNUS?
|
|
172: Why does GNUS hang for a long time when posting?
|
|
173: Why don't my news postings in GNUS get past the local machine?
|
|
174: Why is the GNUS-generated `Date:' header invalid?
|
|
175: Why doesn't GNUS generate the `Lines:' header?
|
|
176: Why do I get "Cannot open load file" "nntp" when compiling GNUS?
|
|
177: How do I kill all articles in GNUS but those matching a pattern?
|
|
|
|
|
|
GNU Emacs FAQ: Notation/General/Help/Status
|
|
|
|
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, then type ESC to end the search.
|
|
|
|
A `+' in the 78th column means something was inserted on the line. A `-' means
|
|
something was deleted and a `!' means some combination of insertions and
|
|
deletions occurred.
|
|
|
|
Full instructions for getting the latest FAQ are in question 22. Also see the
|
|
`Introduction to news.answers' posting in the `news.answers' newsgroup, or send
|
|
e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
|
|
WAIS, or Prospero to rtfm.mit.edu.
|
|
|
|
|
|
|
|
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 means press the `x' key while holding down the Control key. M-x means
|
|
press the `x' key while holding down the Meta key. M-C-x means press the
|
|
`x' key while holding down both the Control key and the Meta key. C-M-a
|
|
is a synonym for M-C-a. RET, LFD, DEL, ESC, and TAB respectively refer to
|
|
pressing the Return, Linefeed (aka Newline), Delete, Escape, and Tab keys
|
|
and are equivalent to C-m, C-j, C-?, C-[, and C-i. SPC means press the
|
|
Space bar.
|
|
|
|
I put any key sequence that is longer than one key (and some single-key
|
|
sequences) inside double quotes or on a line by itself. 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.
|
|
|
|
For further information, see `Characters' and `Keys' in the online manual.
|
|
|
|
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 Control-? generate ASCII code 127.
|
|
|
|
2: What does "M-x command" mean?
|
|
|
|
"M-x command" means type M-x, then type the name of the command, then
|
|
type RET.
|
|
|
|
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, and "?" for a list of possibilities. 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 53.
|
|
|
|
3: How do I read topic XXX in the on-line manual?
|
|
|
|
When I 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 the Info facility. If you don't already know how to use
|
|
Info, type "?" from within Info.
|
|
|
|
If I refer you to topic XXX:YYY, you need to 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 properly. In this case you should complain.
|
|
|
|
4: What do these mean: etc/SERVICE, src/config.h, lisp/default.el?
|
|
|
|
These are files that come with GNU Emacs. The GNU Emacs distribution is
|
|
divided into subdirectories; the important ones are `etc', `lisp', and
|
|
`src'.
|
|
|
|
If you use GNU Emacs, but don't know where it is kept on your system,
|
|
start Emacs, then type "C-h v exec-directory RET". The directory name
|
|
displayed by this will be the full pathname of the installed `etc'
|
|
directory.
|
|
|
|
Some of these files are available individually via FTP or e-mail, see
|
|
question 20. All are available in the source distribution.
|
|
|
|
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 Licence
|
|
|
|
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 commercial
|
|
organization which wants to provide an alternative, standardized version
|
|
of Unix not controlled by AT&T.
|
|
|
|
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 and why should I join it?
|
|
|
|
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 me, jbw@cs.bu.edu; I will be
|
|
happy to talk with you about the LPF.} Here is the contact information:
|
|
|
|
E-mail address: league@prep.ai.mit.edu
|
|
Phone number: (617) 243-4091
|
|
Postal address:
|
|
League for Programming Freedom
|
|
1 Kendall Square, Number 143
|
|
Post Office Box 9171
|
|
Cambridge, MA 02139, USA
|
|
|
|
Papers describing the LPF's views are available on the internet and also
|
|
from the LPF:
|
|
|
|
Anonymous FTP:
|
|
/prep.ai.mit.edu:/pub/lpf/
|
|
/archive.cis.ohio-state.edu:pub/lpf/
|
|
Anonymous UUCP:
|
|
osu-cis!~/lpf/*
|
|
|
|
7: What is the real legal meaning of the GNU copyleft?
|
|
|
|
The real legal meaning of the GNU General Public Licence (copyleft) is
|
|
however it is interpreted by a judge. 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 on how to get a copy.) For those 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 GNU Emacs along with various other implementations like JOVE,
|
|
MicroEmacs, Freemacs, MG, Unipress, CCA, Epsilon, etc.
|
|
|
|
Many people post GNU 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, instead 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.
|
|
|
|
Anonymous FTP:
|
|
/prep.ai.mit.edu:/pub/gnu/MailingListArchives/
|
|
|
|
There is a WAIS database named `comp.emacs' on wais.oit.unc.edu that
|
|
makes available the last few days of articles in comp.emacs.
|
|
|
|
10: Where should I report bugs and other problems with GNU Emacs?
|
|
|
|
The correct way to report GNU Emacs bugs is by e-mail to
|
|
bug-gnu-emacs@prep.ai.mit.edu. 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 way a reliable return address is available so you
|
|
can be contacted for further details.
|
|
|
|
RMS explains:
|
|
|
|
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 a bug, RMS describes how to tell:
|
|
|
|
... 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 to this mailing list?
|
|
|
|
If you are receiving a GNU mailing list named `XXX', you might be able
|
|
to unsubscribe to it by sending a request to the address
|
|
`XXX-request@prep.ai.mit.edu'. 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 <site-address> smtp'. Ask your
|
|
postmaster for help.
|
|
|
|
12: What is the current address of the FSF?
|
|
|
|
E-mail address: gnu@prep.ai.mit.edu
|
|
Phone number: (617) 876-3296
|
|
Postal address:
|
|
Free Software Foundation, Inc.
|
|
675 Massachusetts Avenue
|
|
Cambridge, MA 02139, USA
|
|
|
|
|
|
|
|
On-line Help, Printed Manuals, Other Sources of Help
|
|
|
|
13: I'm just starting GNU Emacs; how do I do basic editing?
|
|
|
|
Type "C-h t" to invoke the self-paced tutorial. Typing just C-h is
|
|
how to enter the help system.
|
|
|
|
WARNING: Your system administrator may have changed C-h to act like DEL to
|
|
deal 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's help facility works best if help is invoked by a single key
|
|
whose value should be stored in the variable help-char. Andrew
|
|
Arensburger <arensb@kong.gsfc.nasa.gov> wrote a patch that allows the help
|
|
facility to work properly when invoked by multiple character sequences.
|
|
|
|
14: How do I find out how to do something in GNU Emacs?
|
|
|
|
There are several methods for finding out how to do things in Emacs.
|
|
|
|
* The complete text of the Emacs manual is available online via the Info
|
|
hypertext reader. Type "C-h i" to invoke Info.
|
|
|
|
* 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 file in the Emacs distribution.
|
|
{Are PostScript versions of this available for FTP?}
|
|
|
|
* 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 "C-h C-h C-h".
|
|
|
|
NOTE: You may find that command-apropos and apropos are extremely slow
|
|
on your system. This will be fixed in Emacs 19. If you can't wait that
|
|
long, there is a fast-apropos.el file available in the Emacs Lisp
|
|
Archive (see question 89) that contains the fix.
|
|
|
|
15: How do I get a printed copy of the GNU Emacs manual?
|
|
|
|
You can order a printed copy of the GNU Emacs manual from the FSF for
|
|
$20. For 6 or more manuals the price is $13 each. The price may be
|
|
tax-deductible as a business expense.
|
|
|
|
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
|
|
300 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 via anonymous FTP:
|
|
|
|
/cs.ubc.ca:pub/archive/gnu/manuals_ps/emacs-18.57.ps.Z !
|
|
|
|
which site requests that you please CONFINE ANY MAJOR FTPING TO LATE
|
|
EVENINGS OR EARLY MORNINGS OUR TIME (pacific time zone, GMT-8)). A DVI
|
|
version is also available via FTP:
|
|
|
|
/prep.ai.mit.edu:pub/gnu/emacs-manual-6.0.dvi.Z
|
|
|
|
If you don't have TeX you can convert the Texinfo sources into
|
|
{t,n,ps}roff format with the `texi2roff' program, which is available via
|
|
anonymous FTP:
|
|
|
|
/archive.cis.ohio-state.edu:pub/gnu/texi2roff/texi2roff.shar.Z
|
|
|
|
See also question 14 for how to view the manual online.
|
|
|
|
16: Where can I get documentation on GNU 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 GNU Emacs Lisp Reference Manual for Emacs
|
|
18 under Unix. It is available from the FSF for $50 (or 5 for $200). The
|
|
latest revision available for FTP is edition 1.03 dated 28 January 1991.
|
|
|
|
For online use, a set of pregenerated Info files is available with the
|
|
Texinfo source for the Emacs Lisp manual via anonymous FTP:
|
|
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/
|
|
/prep.ai.mit.edu:pub/gnu/elisp-manual-1.03.tar.Z
|
|
|
|
(You can also create the Info files from the Texinfo source.) See
|
|
question 17 for details on how to install these files online.
|
|
|
|
If you are daring enough to try to print this 550 page manual out
|
|
yourself, for instructions see question 18.
|
|
|
|
Also, as a popular USENET saying goes, "Use the Force, Read the Source".
|
|
|
|
17: How do I install a piece of Texinfo documentation?
|
|
|
|
First create Info files from the Texinfo files with the `makeinfo'
|
|
program. makeinfo is available as part of the latest Texinfo package:
|
|
|
|
/prep.ai.mit.edu:pub/gnu/texinfo-2.14.tar.Z
|
|
|
|
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 online.
|
|
|
|
Neither texinfo-format-buffer nor the makeinfo program install 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 are already in this file. The format
|
|
is:
|
|
|
|
* Topic: (relative-pathname). Short description of topic.
|
|
|
|
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 setting the value of the variable Info-directory
|
|
to its pathname. For example, to use a private Info directory which
|
|
is a subdirectory of your home directory named `Info', you could do
|
|
this:
|
|
|
|
(setq Info-directory (expand-file-name "~/Info"))
|
|
|
|
You will need a top-level Info file named `dir' in this directory.
|
|
You can include the system-wide Info directory in your private Info
|
|
directory with symbolic links or by copying it.
|
|
|
|
* You can use an enhanced version of lisp/info.el that handles multiple
|
|
Info directories. Then you can more easily use a mix of private and
|
|
shared Info files. Dave Gillespie <daveg@synaptics.com,
|
|
daveg@csvax.cs.caltech.edu> has written one such enhancement and I
|
|
believe there are others. Dave's info.el also handles compressed Info
|
|
files.
|
|
|
|
Anonymous FTP:
|
|
/archive.cis.ohio-state.edu:modes/info.el.Z
|
|
/ftp.uu.net:languages/emacs-lisp/modes/info.el.Z !
|
|
|
|
According to Jay Bourland <jayb@math.stanford.edu>, a version of Dave's
|
|
info.el comes with `xinfo' (see question 19).
|
|
|
|
18: How do I print a Texinfo file?
|
|
|
|
NOTE: You can't get nice printed output from Info files; you must still
|
|
have the original Texinfo source file for the manual you want to print.
|
|
|
|
1. Make sure the first line of the Texinfo file looks like this:
|
|
|
|
\input texinfo
|
|
|
|
You may need to alter `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.
|
|
|
|
19: Can I view Info files without using GNU Emacs?
|
|
|
|
Yes, the `info', `xinfo', and `ivinfo' programs do this. info uses
|
|
curses, xinfo uses standard X11 libraries, and ivinfo uses InterViews.
|
|
You can get info as part of the latest Texinfo package (see question
|
|
17). xinfo is available separately:
|
|
|
|
/prep.ai.mit.edu:pub/gnu/xinfo-1.01.01.tar.Z
|
|
/export.lcs.mit.edu:
|
|
|
|
ivinfo is available in a comp.sources.misc archive or from Tom Horsley
|
|
<tom@ssd.csd.harris.com>. For ivinfo, you need Stanford's InterViews C++
|
|
X library, available via anonymous FTP (interviews.stanford.edu).
|
|
|
|
20: What informational files are available for GNU Emacs?
|
|
|
|
This isn't a frequently asked question, but it should be! A variety of
|
|
informational files about GNU 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 GNU
|
|
Emacs distribution, and also the latest versions are available
|
|
individually via anonymous FTP (prep.ai.mit.edu:/pub/gnu/GNUinfo/):
|
|
|
|
APPLE -- Why the FSF doen't support GNU Emacs on Apple computers
|
|
DISTRIB -- GNU Emacs Availability Information,
|
|
including the popular "Free Software Foundation Order Form"
|
|
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
|
|
MACHINES -- Status of GNU Emacs on Various Machines and Systems
|
|
MAILINGLISTS -- GNU Project Electronic Mailing Lists
|
|
SERVICE -- GNU Service Directory
|
|
SUN-SUPPORT -- including "Using Emacstool with GNU Emacs"
|
|
|
|
These files are available in the `etc' directory of the GNU Emacs
|
|
distribution:
|
|
|
|
DIFF -- Differences between GNU Emacs and Twenex Emacs
|
|
CCADIFF -- Differences between GNU Emacs and CCA Emacs
|
|
GOSDIFF -- Differences between GNU Emacs and Gosling (Unipress??) Emacs
|
|
COPYING -- GNU Emacs General Public License
|
|
NEWS -- GNU Emacs News, a history of user-visible changes
|
|
LPF -- Why you should join the League for Programming Freedom
|
|
FAQ -- GNU Emacs Frequently Asked Questions (You're reading it)
|
|
OPTIONS -- a complete explanation of startup option handling
|
|
|
|
These files are available via anonymous FTP (prep.ai.mit.edu:/pub/gnu/):
|
|
|
|
tasks -- GNU Task List
|
|
standards.text -- GNU Coding Standards
|
|
|
|
In addition, all of the above files are available directly from the FSF
|
|
via e-mail. Of course, please try to get them from a local source
|
|
first.
|
|
|
|
These additional files are available from the FSF via e-mail:
|
|
|
|
* GNU's Bulletin, June, 1991 -- this file includes:
|
|
GNU'S Who
|
|
What Is the Free Software Foundation?
|
|
What Is Copyleft?
|
|
A Small Way to Help Free Software
|
|
GNUs Flashes (important recent developments for project GNU)
|
|
Free Software Support (and how to get it!)
|
|
Copyrighted Programming Languages
|
|
AT&T Threatens Users of X Windows (and other software patent threats)
|
|
Project Gutenberg
|
|
GNU Project Status Report
|
|
GNU in Japan
|
|
GNU Wish List
|
|
Help Keep Government Software Free
|
|
GNU Software Available Now
|
|
Contents of the Emacs Tape
|
|
Contents of the Compiler Tape
|
|
Contents of the X11 Tapes
|
|
VMS Emacs and Compiler Tapes
|
|
GNU Documentation
|
|
How to Get GNU Software
|
|
Free Software for Microcomputers
|
|
GNU Software on Apple computers
|
|
GNU Software on the Amiga
|
|
GNU Software on the Atari
|
|
GNUish MS-DOS project
|
|
Freemacs, an Extensible Editor for MS-DOS
|
|
GNU in Japan
|
|
FSF Order Form
|
|
Thank GNUs
|
|
* Legal issues about contributing code to GNU
|
|
* GNU Project Status Report
|
|
|
|
A collection of past GNU's Bulletins is available via anonymous FTP:
|
|
|
|
/ftp.funet.fi:pub/gnu/Bulletins/
|
|
|
|
21: Where can I get help in installing GNU Emacs?
|
|
|
|
Look in etc/SERVICE for names of companies and individuals who will sell
|
|
you this type of service. An up-to-date version of the SERVICE file is
|
|
available on prep.ai.mit.edu (also see question 20).
|
|
|
|
22: Where can I get the latest version of this document (the FAQ list)?
|
|
|
|
The GNU Emacs FAQ is available in several ways:
|
|
|
|
* 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 of which I know will 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 FAQ?rc:m
|
|
|
|
In GNUS, you should type "C-u G" from the *Subject* buffer or "C-u SPC"
|
|
from the *Newsgroup* buffer to view all articles in a newsgroup.
|
|
|
|
The FAQ articles' message IDs are:
|
|
|
|
<GNU-Emacs-FAQ-0.1993.05.04.025218@rice.edu> !
|
|
<GNU-Emacs-FAQ-1.1993.05.04.025218@rice.edu> !
|
|
<GNU-Emacs-FAQ-2.1993.05.04.025218@rice.edu> !
|
|
<GNU-Emacs-FAQ-3.1993.05.04.025218@rice.edu> !
|
|
<GNU-Emacs-FAQ-4.1993.05.04.025218@rice.edu> !
|
|
<GNU-Emacs-FAQ-5.1993.05.04.025218@rice.edu> !
|
|
|
|
If you are viewing this in the GNUS *Article* buffer, you can move point
|
|
within one of the above message IDs and type "r" to fetch the referenced
|
|
article. Type "o" in the *Article* buffer to restore the previous
|
|
contents. If this text is not in the GNUS *Article* buffer, use M-r
|
|
from the *Subject* buffer instead.
|
|
|
|
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 before
|
|
July 3, 1993. !
|
|
|
|
* Via anonymous FTP. You can fetch the FAQ articles via anonymous FTP
|
|
|
|
/rtfm.mit.edu:pub/usenet/news.answers/GNU-Emacs-FAQ/ part*
|
|
|
|
* Via e-mail. You can send the following magical incantation in the body
|
|
of a message to mail-server@rtfm.mit.edu:
|
|
|
|
send usenet/news.answers/GNU-Emacs-FAQ/part0
|
|
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
|
|
|
|
* Via WAIS. The GNU Emacs FAQ is available via WAIS indexed on a
|
|
per-question basis from the `faq' database on bigbird.bu.edu on the
|
|
non-standard IP port number of 2210. This is probably the best way to
|
|
find out if there is something in the FAQ related to your question. I
|
|
use this myself to answer questions I see posted on gnu.emacs.help.
|
|
|
|
The articles of the GNU Emacs FAQ are also available from the `usenet'
|
|
database on rtfm.mit.edu (on the standard IP port: 210), along with a
|
|
lot of other FAQ articles. However, these are all indexed at the whole
|
|
article level instead of at the question level. This is a better place
|
|
to look if you want to fetch the entire FAQ.
|
|
|
|
* In the GNU Emacs distribution. Since GNU Emacs 18.56, the latest
|
|
available version of the FAQ at the time of release has been part of the
|
|
GNU Emacs distribution as file etc/FAQ. 18.59 is the latest version,
|
|
and it was released in October 1992.
|
|
|
|
* There is an old version of the FAQ list available for FTP in the GNU
|
|
archives at MIT:
|
|
|
|
/prep.ai.mit.edu:pub/gnu/GNUinfo/FAQ.emacs
|
|
|
|
* As the very last resort, you can e-mail a request to
|
|
gnu-emacs-faq-maintainers@bigbird.bu.edu. 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 active keys. Emacs was started by Guy
|
|
Steele <gls@think.com> as a project to unify the many divergent TECO
|
|
command sets and keybindings at MIT.
|
|
|
|
Many people have told me that TECO code looks a lot like line noise. See
|
|
alt.lang.teco if you are interested. I think someone has written a TECO
|
|
implementation in Emacs Lisp. It would be an interesting project to run
|
|
the original TECO Emacs inside of GNU Emacs.
|
|
|
|
24: What is the latest version of GNU Emacs?
|
|
|
|
GNU Emacs 18.59 is the current version. Fixes from 18.57 include better
|
|
mail address parsing, an X visual bell speedup, a call-process
|
|
enhancement, a regexp matching change, the ability to apply a numeric
|
|
argument to a self-inserting digit, getting X resource values from the
|
|
RESOURCE_MANAGER property, more reliable shell mode job control, and a
|
|
change to copy-keymap. Also, support has been added for many new system
|
|
types. Fixes from 18.55 include the removal of arbitrary limits on the
|
|
undo facility.
|
|
|
|
According to the January 1992 GNU's Bulletin, "Emacs 18 maintenance
|
|
continues for simple bug fixes.".
|
|
|
|
To visit a file with information about what has changed in recent
|
|
versions, type "C-h n".
|
|
|
|
25: When will GNU Emacs 19 be available?
|
|
|
|
Richard Stallman recently (February 19, 1993) posted in gnu.emacs.help !
|
|
the following: !
|
|
!
|
|
People should keep in mind that the successor of Emacs 18 does not !
|
|
come from Lucid. Its is GNU Emacs 19. I still can't say exactly when !
|
|
public release is going to be, but we are about to start testing at a !
|
|
number of sites. !
|
|
!
|
|
GNU Emacs 19 will support a broad spectrum of machines, like Emacs !
|
|
18. Ensuring this is the purpose of the testing we are about to do. !
|
|
!
|
|
(Please don't volunteer; we have enough pretesters, and if more people !
|
|
offer, dealing with those messages will slow things down.) !
|
|
!
|
|
Once we make sure it is indeed working reliably on various different !
|
|
systems, we will have a public beta test release. !
|
|
!
|
|
Emacs 19 does support adding properties to ranges of text, and using !
|
|
these to switch fonts. In the future, the Epoch people will help !
|
|
merge support for variable-width fonts. !
|
|
!
|
|
Meanwhile, I have almost finished updating the Emacs Lisp manual. Its !
|
|
next edition will describe Emacs 19. There will be an announcement !
|
|
when we know when this edition will be available. !
|
|
|
|
Lucid has released Lucid GNU Emacs 19.6, which is based on an early !
|
|
unreleased version of GNU Emacs 19. This will be similar to Emacs 19 when
|
|
it finally arrives, but they are not the same. See question 121.
|
|
|
|
Work has begun on features for Emacs 20.
|
|
|
|
26: What is different about GNU Emacs 19?
|
|
|
|
From the January 1992 GNU's Bulletin:
|
|
|
|
Version 19 will enter beta test late this year. Among its new features
|
|
are: before and after change hooks, source-level debugging of Emacs Lisp
|
|
programs, X selection processing (including clipboard selections),
|
|
scrollbars, support for European character sets, floating point numbers,
|
|
per-buffer mouse commands, X resource manager interfacing,
|
|
mouse-tracking, Lisp-level binding of function keys, multiple X windows
|
|
(`screens' to Emacs), a new input system, and buffer allocation, which
|
|
uses a new mechanism capable of returning storage to the system when a
|
|
buffer is killed.
|
|
|
|
The input stream is now a sequence of Lisp objects, instead of a
|
|
sequence of characters. This allows a reasonable representation for
|
|
mouse clicks, function keys, menu selections, etc.
|
|
|
|
Thanks go to Alan Carroll and the people who worked on Epoch for
|
|
generating initial feedback to a multi-windowed Emacs, and to Eric
|
|
Raymond for help in polishing the Emacs 19 Lisp libraries.
|
|
|
|
The June 1991 GNU's bulletin had this to say about future plans for Emacs:
|
|
|
|
Features being considered for later releases of Emacs include:
|
|
associating property lists with regions of text in a buffer; multiple
|
|
fonts, color, and pixmaps defined by those properties; different
|
|
visibility conditions for the regions, and for various windows showing
|
|
one buffer; hooks to be run if point or mouse moves outside a certain
|
|
range; incrementally saving undo history in a file; static menu bars;
|
|
and better pop-up menus.
|
|
|
|
Mention of this feature disappeared in the January 1992 GNU's bulletin:
|
|
|
|
Emacs 19 supports two styles of multiple windows, one with a separate
|
|
screen for the minibuffer, and another with a minibuffer attached to
|
|
each screen.
|
|
|
|
Mention of these two proposed features disappeared in the January 1991
|
|
GNU's bulletin:
|
|
|
|
* Incremental syntax analysis for various programming languages (Leif).
|
|
* A more sophisticated emacsclient/server model, which would provide
|
|
network transparent Emacs widget functionality.
|
|
|
|
27: What variants of GNU Emacs exist?
|
|
|
|
* Nemacs (Nihongo Emacs), which can handle Japanese text, is derived from
|
|
GNU Emacs 18.55. See question 149.
|
|
|
|
* Demacs, which can run under MS-DOS on 386 machines, is derived from
|
|
Nemacs. See question 122.
|
|
|
|
* Epoch, which has better X support, is derived from GNU Emacs 18.58.
|
|
See question 120 and 92.
|
|
|
|
* Nepoch (Nihongo Epoch), which can handle Japanese text, is derived from
|
|
Epoch.
|
|
|
|
* Mule (the MULtilingual Enhancement of GNU Emacs) can handle many
|
|
character sets simultaneously. It is derived from Emacs 18.58. It is
|
|
available for FTP:
|
|
|
|
/sh.wide.ad.jp:/JAPAN/mule/
|
|
/etlport.etl.go.jp:/pub/mule/
|
|
|
|
* Lucid GNU Emacs is derived from an early unreleased version of GNU Emacs
|
|
19. See question 121 and 92.
|
|
|
|
|
|
|
|
GNU Emacs FAQ: Common Requests/Problems
|
|
|
|
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, then type ESC to end the search.
|
|
|
|
A `+' in the 78th column means something was inserted on the line. A `-' means
|
|
something was deleted and a `!' means some combination of insertions and
|
|
deletions occurred.
|
|
|
|
Full instructions for getting the latest FAQ are in question 22. Also see the
|
|
`Introduction to news.answers' posting in the `news.answers' newsgroup, or send
|
|
e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
|
|
WAIS, or Prospero to rtfm.mit.edu.
|
|
|
|
|
|
|
|
Common Things People Want To Do
|
|
|
|
28: 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. :-)
|
|
|
|
29: How do I debug a .emacs file?
|
|
|
|
First start Emacs with the `-q' command line option. Then, in the
|
|
*scratch* buffer, type the following:
|
|
|
|
(setq debug-on-error t) LFD
|
|
(load-file "~/.emacs") LFD
|
|
|
|
(Type LFD by pressing C-j.)
|
|
|
|
If you have an error in your .emacs file, this will invoke the debugger
|
|
when the error occurs. If you don't know how to use the debugger do
|
|
(setq stack-trace-on-error t) instead.
|
|
|
|
WARNING: this will not discover errors caused by trying to do something
|
|
that requires the terminal/window-system initialization code to have
|
|
been loaded. See question 127.
|
|
|
|
30: How do I make Emacs display the current line (or column) number?
|
|
|
|
To find out what line of the buffer you are on right now, do "M-x
|
|
what-line". Use "M-x goto-line" to go to a specific line. To find the
|
|
current column number, type "M-ESC (current-column)".
|
|
|
|
Typing "C-x l" will also tell you what line you are on, provided the
|
|
buffer isn't separated into "pages" with C-l characters. In that case, it
|
|
will only tell you what line of the current "page" you are on. WARNING:
|
|
"C-x l" gives the wrong value when point is at the beginning of a line.
|
|
|
|
There is no "correct" way to constantly display the current (or total)
|
|
line (or column) number on the mode line in Emacs 18, or to display the
|
|
line numbers next to the lines like vi can. Emacs is not a line-oriented
|
|
editor, and really has no idea what "lines" of the buffer are displayed in
|
|
the window. It would require a lot of work at the C code level to make
|
|
Emacs keep track of this. It would not be that hard to get the column
|
|
number, but it would still require changes at the C code level.
|
|
|
|
None of the vi emulation modes provide the `set number' capability of vi
|
|
(as far as I know).
|
|
|
|
Emacs 19 will probably be able to show the line number on the mode-line,
|
|
but probably very inefficiently.
|
|
|
|
People have written various kludges to display line numbers. One is
|
|
`display-line-numbers' by Wayne Mesard <wmesard@tofu.oracle.com,
|
|
Mesard@bbn.com>. Look in the Lisp Code Directory. (See question
|
|
88.)
|
|
|
|
31: How do I turn on Abbrevs by default just in mode XXX?
|
|
|
|
Put this in your .emacs file:
|
|
|
|
(condition-case ()
|
|
(read-abbrev-file nil t)
|
|
(file-error nil))
|
|
|
|
(setq XXX-mode-hook
|
|
(function
|
|
(lambda ()
|
|
(setq abbrev-mode t))))
|
|
|
|
32: 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, for example, Text
|
|
mode, do this:
|
|
|
|
(setq text-mode-hook 'turn-on-auto-fill)
|
|
|
|
If you want Auto-Fill mode on in all major modes, do this:
|
|
|
|
(setq-default auto-fill-hook 'do-auto-fill)
|
|
|
|
33: 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:
|
|
|
|
(setq auto-mode-alist (cons '("\\.YYY\\'" . XXX-mode) auto-mode-alist))
|
|
|
|
Otherwise put this somewhere in the first line of any file you want to
|
|
edit in XXX mode:
|
|
|
|
-*-XXX-*-
|
|
|
|
34: 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 (ie., C-q).) Searching for ALL unprintable
|
|
characters is best done with a "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 some of 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 a 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. {I need to write the text for this
|
|
part of the answer!}
|
|
|
|
Notes:
|
|
|
|
* With isearch, you can type RET to get a quoted LFD (not a quoted RET).
|
|
|
|
* You don't need to quote TAB with either isearch or typing something in
|
|
the minibuffer.
|
|
|
|
Here are the Emacs Lisp forms of the above regexps:
|
|
|
|
;; regexp matching all printable characters:
|
|
"[\t\n\r\f -~]"
|
|
|
|
;; regexp matching all unprintable characters:
|
|
"[^\t\n\r\f -~]"
|
|
|
|
35: How can I highlight a region of text in Emacs?
|
|
|
|
There are ways to get highlighting (reverse video, inverse video) in GNU
|
|
Emacs 18.59, but either they require patching the C code of Emacs and
|
|
rebuilding, or they are slow and the highlighting disappears if you scroll
|
|
or redraw the screen and it can not follow the point. Howard Gayle's
|
|
patches for 8-bit output appear to allow highlighting (see question
|
|
^8-bit-output). Another patch for highlighting is by Kenichi Handa
|
|
<handa@etl.go.jp>. There is a patch for use with X by Andy Norman
|
|
<ange@hplb.hpl.hp.com> (and modified for 18.57 by Matthieu Herrb
|
|
<matthieu@laas.fr>), which is available for FTP:
|
|
|
|
/laas.laas.fr:pub/emacs/patch-X11-18.55
|
|
/laas.laas.fr:pub/emacs/patch-X11-18.57
|
|
|
|
You can highlight regions in a variety of ways in Epoch and Lucid Emacs.
|
|
GNU Emacs 19 may not be able to just temporarily highlight a region.
|
|
|
|
Similar comments apply to displaying text in different fonts, except that
|
|
it is even harder.
|
|
|
|
36: 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
|
|
|
|
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:
|
|
|
|
(setq XXX-mode-hook
|
|
(function
|
|
(lambda ()
|
|
(setq case-fold-search nil))))
|
|
|
|
37: How do I make Emacs wrap words for me?
|
|
|
|
M-x auto-fill-mode. The default maximum line width is 74, determined by
|
|
the variable fill-column. To find how to turn this on automatically see
|
|
question 32.
|
|
|
|
38: Where can I get a better spelling checker for Emacs?
|
|
|
|
Use Ispell. See question 119.
|
|
|
|
39: How can I spell-check TeX or *roff documents?
|
|
|
|
If you want to spell-check TeX or *roff documents with Ispell, you need to
|
|
arrange for a filter program that understands how to strip TeX or *roff
|
|
formatting commands to be run. In the TeX distribution, there are several
|
|
different programs named `detex', all with incompatible options, and a
|
|
very old pair of programs named `detex' and `delatex', which should
|
|
probably be avoided. The most useful one for Ispell is `detex' by Daniel
|
|
Trinkle. A more recent version is available via FTP:
|
|
|
|
/arthur.cs.purdue.edu:pub/trinkle/detex-2.4.tar
|
|
|
|
Raphael Cerf <cerf@clipper.ens.fr> recently released a program for this
|
|
named `xetal':
|
|
|
|
/spi.ens.fr:pub/unix/tex/
|
|
|
|
There is a program that comes with Unix named `deroff' for stripping
|
|
formatting commands from *roff files.
|
|
|
|
Here is an example of code you can put in a .emacs file to use these
|
|
programs:
|
|
|
|
;; Based on suggestions by David G. Grubbs <dgg@ksr.com> and Paul Palmer
|
|
;; <palmerp@math.orst.edu>.
|
|
|
|
;; Assuming the use of detex 2.3 by Daniel Trinkle:
|
|
;; -w means one word per line.
|
|
;; -n means don't expand \input or \include commands.
|
|
;; -l means force LaTeX mode.
|
|
|
|
(require 'ispell) ; for the make-variable-buffer-local statements
|
|
(setq plain-TeX-mode-hook
|
|
(function
|
|
(lambda ()
|
|
(setq ispell-filter-hook "detex")
|
|
(setq ispell-filter-hook-args '("-nw")))))
|
|
(setq LaTeX-mode-hook
|
|
(function
|
|
(lambda ()
|
|
(setq ispell-filter-hook "detex")
|
|
(setq ispell-filter-hook-args '("-lnw")))))
|
|
(setq nroff-mode-hook
|
|
(function
|
|
(lambda ()
|
|
(setq ispell-filter-hook "deroff")
|
|
(setq ispell-filter-hook-args '("-w")))))
|
|
|
|
You will have to adjust the arguments for programs other than Trinkle's
|
|
detex or for other versions of deroff. Experiment running the command
|
|
from the shell to find the correct options. If you don't have a filter
|
|
that knows how to output one word per line, you must pipe its output
|
|
through another filter to break up the output.
|
|
|
|
40: 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 (append load-path '("/XXX/YYY/")))
|
|
|
|
To do this relative to your home directory:
|
|
|
|
(setq load-path (append load-path (list (expand-file-name "~/YYY/"))))
|
|
|
|
41: How do I use an already running Emacs from another window?
|
|
|
|
The `emacsclient' program 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 #" to indicate this. This will switch to
|
|
another buffer created at the request of emacsclient if there are any.
|
|
When "C-x #" has been invoked on all of the files that the emacsclient
|
|
requested to be edited, Emacs will send notification of this to `server'
|
|
which will pass this on to the emacsclient, which will then exit.
|
|
|
|
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 <ange@hplb.hpl.hp.com> which is available in the Emacs Lisp
|
|
Archive. gnuserv uses Internet domain sockets, so it can work across most
|
|
network connections. It also supports the execution of arbitrary Emacs
|
|
Lisp forms and also does not require the client program to wait for
|
|
completion. It is available via anonymous FTP (Emacs Lisp Archive:
|
|
packages/gnuserv.shar).
|
|
|
|
42: How do I make Emacs recognize my compiler's funny error messages?
|
|
|
|
Write a program which runs the compiler as a child and filters its output,
|
|
rearranging as necessary. Install with same name as compiler somewhere in
|
|
path.
|
|
|
|
Keith Moore <moore@cs.utk.edu> wrote one such for a C compiler under AIX.
|
|
Available via FTP:
|
|
|
|
/cs.utk.edu:readonly/aixcc.lex
|
|
|
|
Jim Frost <jimf@saber.com> wrote another for the IBM xlc compiler on the
|
|
RS/6000. (I don't know if these are both for the same compiler.)
|
|
Johnathan Vail <vail@tegra.COM> wrote something for a High C compiler
|
|
(`hc', which is one of the compilers on the RS/6000, although I think
|
|
Johnathan wrote his program for hc on a different computer).
|
|
|
|
43: How do I indent 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;
|
|
}
|
|
}
|
|
|
|
I don't believe there is any way to do this exactly without modifying the
|
|
Lisp code in c-mode.el. You can set c-indent-level to 4 and
|
|
c-label-offset to -2, but this has bad effects elsewhere. {Anyone have a
|
|
solution?}
|
|
|
|
44: How can I make Emacs automatically scroll horizontally?
|
|
|
|
There is no completely correct way of doing this that does not involve
|
|
rewriting all commands or writing your own top-level command loop (not a
|
|
completely bad idea). Wayne Mesard <wmesard@pescadero.stanford.edu> has
|
|
written a particularly advanced kludge called `hscroll.el' that checks
|
|
once a second to make sure point is visible.
|
|
|
|
45: How do I make Emacs "typeover" or "overwrite" instead of inserting?
|
|
|
|
M-x overwrite-mode (a minor mode).
|
|
|
|
46: How do I stop Emacs from beeping on a terminal?
|
|
|
|
Martin R. Frank <martin@cc.gatech.edu> writes:
|
|
|
|
Tell Emacs to use the 'visible bell' instead of the audible bell, and
|
|
set the visible bell to nothing.
|
|
|
|
Put this in your TERMCAP environment variable:
|
|
|
|
... :vb=: ...
|
|
|
|
And evaluate this:
|
|
|
|
(setq visible-bell t)
|
|
|
|
47: How do I turn down the bell volume in Emacs running under X Windows?
|
|
|
|
Under versions of Emacs before 18.58, the bell volume was annoying loud
|
|
and difficult to turn off. So upgrading to 18.58 or higher will reduce
|
|
the volume. If you want to turn it off completely, use `xset'. There is
|
|
no way to turn the bell off just for Emacs without affecting all other
|
|
programs.
|
|
|
|
Under Epoch you can do:
|
|
|
|
(setq epoch::bell-volume 20)
|
|
|
|
Stu Grossman <grossman@sunburn.stanford.edu> wrote a patch that allows the
|
|
bell volume to be adjusted from inside Emacs just for Emacs.
|
|
|
|
48: How do I tell Emacs to automatically indent a new line to the
|
|
indentation of the previous line?
|
|
|
|
One solution is Indented Text Mode (M-x indented-text-mode).
|
|
|
|
If you have Auto-Fill mode on (a minor mode, see question 32), 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. Look up `fill' and `indent' in the
|
|
Lisp Code Directory for guidance.
|
|
|
|
49: How do I show which parenthesis matches the one I'm looking at?
|
|
|
|
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 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.
|
|
|
|
;; 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)))))
|
|
|
|
50: 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 may have to (load "hideif") first. If you want to do this regularly,
|
|
put this in your .emacs file:
|
|
|
|
(autoload 'hide-ifdef-mode "hideif" nil t)
|
|
|
|
{Yes, I know, this should be in lisp/loaddefs.el already.}
|
|
|
|
51: Is there an equivalent to the `.' (dot) command of vi?
|
|
|
|
(`.' is the redo command in vi. It redoes the last insertion/deletion.)
|
|
|
|
No, not really.
|
|
|
|
You can type "C-x 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 something on each line I recommend using keyboard macros.
|
|
|
|
52: What are the valid X resource settings (ie., stuff in .Xdefaults)?
|
|
|
|
See the Emacs man page, or the etc/OPTIONS file. Ignore the information
|
|
in etc/XDOC which is way out of date.
|
|
|
|
53: How do I execute a piece of Emacs Lisp code?
|
|
|
|
There are a number of ways to execute (called "evaluate") 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.
|
|
|
|
* 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-ESC 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 used for evaluating Lisp forms:
|
|
|
|
load-library, eval-region, eval-current-buffer, require, autoload
|
|
|
|
54: How do I change Emacs's idea of the tab character's length?
|
|
|
|
Example: (setq default-tab-width 10).
|
|
|
|
55: How do I insert `>' at the beginning of every line?
|
|
|
|
Type "M-x replace-regexp RET ^ RET > RET".
|
|
|
|
To do this only in the region, type "C-x n M-x replace-regexp RET ^ RET
|
|
> RET C-x w".
|
|
|
|
WARNING: The command narrow-to-region (C-x n) is disabled by default
|
|
because it can be very confusing (ie., "Oh no! Where did my file go?").
|
|
|
|
56: How do I insert `_^H' before each character in a paragraph to get an
|
|
underlined paragraph?
|
|
|
|
M-x underline-region.
|
|
|
|
57: 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.
|
|
|
|
58: 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. (This is a minor mode, in theory anyway ...)
|
|
|
|
59: How do I tell Emacs to iconify itself?
|
|
|
|
You need to modify C source and recompile. Either that or get Epoch or
|
|
Lucid Emacs instead. Patches have been written by Robert Forsman
|
|
<thoth@reef.cis.ufl.edu> and Johan Vromans <jv@mh.nl> to allow Emacs to
|
|
iconify itself and by Matt Wette <mwette@mr-ed.jpl.nasa.gov> and
|
|
Manavendra K. Thakur <thakur@zerkalo.harvard.edu> (for 18.57, plus icon
|
|
geometry) to allow Emacs to start up iconified. I don't know which of
|
|
these patches work together.
|
|
|
|
Anonymous FTP:
|
|
/csi.jpl.nasa.gov:pub/emax.patch1 (Matt Wette)
|
|
/ftp.eu.net:gnu/emacs/FP-Xfun.Z (Johan Vromans)
|
|
/ftp.urc.tue.nl:/pub/tex/emacs/FP-Xfun (Johan Vromans)
|
|
|
|
60: How do I use regexps (regular expressions) in Emacs?
|
|
|
|
See `Regexps' in the online manual.
|
|
|
|
WARNING: The "or" operator is `\|', not `|', and the grouping operators
|
|
are `\(' and `\)'. Also, the string syntax for a backslash is "\\".
|
|
Thus, the string syntax for a regular expression like xxx\(foo\|bar\) is
|
|
"xxx\\(foo\\|bar\\)". Notice the duplicated 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 (eg. `\sw') are not meaningful
|
|
inside character set regexps (eg. `[aeiou]'). (This is actually typical
|
|
for regexp syntax.)
|
|
|
|
61: 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:Tags Search' in the online manual.
|
|
|
|
In addition, Martin Boyer has written a package named global-replace which
|
|
will perform a query-replace across all the files mentioned in the
|
|
*compilation* buffer (usually done after a `grep'), which is available via
|
|
anonymous FTP:
|
|
|
|
/ireq-robot.hydro.qc.ca:pub/emacs/lisp/compile.el.Z
|
|
/ireq-robot.hydro.qc.ca:pub/emacs/lisp/global-replace.el.Z
|
|
/ireq-robot.hydro.qc.ca:pub/emacs/lisp/query.el.Z
|
|
|
|
62: Where is the documentation for `etags'?
|
|
|
|
`etags' takes options just like a prior version of ctags, so your ctags
|
|
manual (if any) may be useful. Eoin Woods, in comp.emacs, writes the !
|
|
following: !
|
|
!
|
|
From reading the source (!) the way I use it is: !
|
|
!
|
|
for f in `find <args>` !
|
|
do !
|
|
etags -at -f ETAGS $f !
|
|
done !
|
|
!
|
|
The "-t" option means to create tags for typedefs as well as functions. !
|
|
The "-a" option tells it to append to the output file. If you have a !
|
|
small number of files (up to a few hundred I think) you can use it !
|
|
direct as: !
|
|
!
|
|
etags -f ETAGS file1 file2 file3 ... filen !
|
|
!
|
|
The option list is: !
|
|
!
|
|
-f file - Specify the output file name (Default is "TAGS") !
|
|
-a - Append to the output file. (Default is to rewrite it) !
|
|
-t - Create tags for typedefs (default is just functions) !
|
|
-u - Update the output file. Do not re-create it. !
|
|
-w - Suppress warnings !
|
|
-v - Create vgrind style indexed output (What is vgrind??) !
|
|
-x - Create cxref style output (default is Emacs Tags) !
|
|
-e - Emacs tags style output (the default the way I !
|
|
compile it) !
|
|
!
|
|
Having got it working, it works fine! !
|
|
|
|
|
|
|
|
Bugs/Problems
|
|
|
|
63: Does Emacs have problems with files larger than 8 megabytes?
|
|
|
|
Most installed versions of GNU Emacs will use 24-bit signed integers (and
|
|
24-bit pointers) internally. This limits the file size that Emacs can
|
|
handle to 8,388,607 bytes (2^23 - 1).
|
|
|
|
Leonard N. Zubkoff <lnz@lucid.com> suggests putting the following two
|
|
lines in src/config.h before compiling Emacs to allow for 26-bit integers
|
|
and pointers (and thus filesizes 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 <daveg@csvax.cs.caltech.edu> gives an explanation of why
|
|
Emacs uses 24 bit integers and pointers:
|
|
|
|
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, eg.,
|
|
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.
|
|
|
|
Emacs uses 8-bit tags because that's a little faster on byte-oriented
|
|
machines, but there are only really enough tags to require 6 bits.
|
|
|
|
64: Why can't Emacs find files in current directory on startup?
|
|
|
|
The PWD bug has been fixed as of GNU Emacs 18.59. Read on if you are
|
|
running an older version of Emacs.
|
|
|
|
Most likely, you have an environment variable named PWD that is set to a
|
|
value other than the name of your current directory. This is most
|
|
likely caused by using two different shell programs. `ksh' and (some
|
|
versions of) `csh' set and maintain the value of the PWD environment
|
|
variable, but `sh' doesn't. If you start sh from ksh, change your
|
|
current directory inside sh, and then start Emacs from inside sh, PWD
|
|
will have the wrong value but Emacs will use this value. An invalid
|
|
setting for PWD can also be a problem if you use X Windows and csh on an
|
|
RS/6000. See the etc/OPTIONS file for more details.
|
|
|
|
Perhaps an easier solution is not to use two shells. The `chsh' program
|
|
can often be used to change one's default login shell.
|
|
|
|
You may have PWD set for other reasons. Another possibility is that you
|
|
are setting default-directory from your .emacs file.
|
|
|
|
Here is a fix by Jim Blandy <jimb@occs.cs.oberlin.edu>:
|
|
|
|
>--- emacs/jjj/emacs-18.58/lisp/startup.el Tue Jan 15 23:19:04 1991
|
|
>+++ startup.el Mon Apr 20 00:21:01 1992
|
|
>@@ -81,5 +81,7 @@
|
|
> ;; In presence of symlinks, switch to cleaner form of default directory.
|
|
> (if (and (not (eq system-type 'vax-vms))
|
|
>- (getenv "PWD"))
|
|
>+ (getenv "PWD")
|
|
>+ (equal (nthcdr 10 (file-attributes default-directory))
|
|
>+ (nthcdr 10 (file-attributes (getenv "PWD")))))
|
|
> (setq default-directory (file-name-as-directory (getenv "PWD"))))
|
|
> (unwind-protect
|
|
|
|
65: How do I get rid of the ^M junk in my Shell buffer?
|
|
|
|
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.)
|
|
|
|
66: 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. This program should be compiled (for the correct
|
|
architecture!) and installed with execute permission for everyone in
|
|
Emacs's program directory, which is normally /usr/local/emacs/etc. 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". `env'
|
|
should also be for the correct architecture (check using `file' command).
|
|
|
|
You should also check for other programs named `env' in your path (eg.,
|
|
SunOS has a program named /usr/bin/env). I don't understand why this can
|
|
cause a failure and I don't know a general solution for working around the
|
|
problem in this case.
|
|
|
|
The `make clean' command will remove `env' and other vital programs, so be
|
|
careful when using it.
|
|
|
|
It has been reported that this sometimes happened when Emacs was started
|
|
as an X client from an xterm window (ie. had a controlling tty) but the
|
|
xterm was later terminated.
|
|
|
|
See also etc/PROBLEMS for other possible causes of this message.
|
|
|
|
67: Why can't I cut from Emacs and paste in other X programs?
|
|
|
|
Emacs stores things you "cut" in the X "cut buffers". It also pastes from
|
|
the cut buffer `CUT_BUFFER0'. This is obsolete. Most modern X programs
|
|
now expect to work with "selections" instead of cut buffers, although some
|
|
like `xterm' will try to use the cut buffers if the selection is null.
|
|
|
|
Emacs 18.58 contains a "fix" that makes xterm work by default. This
|
|
"fix" is that Emacs clears the `PRIMARY' selection when it stores
|
|
something in the cut buffer. By making the selection null, xterm will
|
|
then fetch from the cut buffer when you try to paste.
|
|
|
|
For versions of Emacs prior to 18.58, you can make pasting from Emacs into
|
|
xterm work with the following X resources:
|
|
|
|
! Solution by Thomas Narten, should work under X11R3 and later GNU
|
|
! Emacs only copies to CUT_BUFFER0. xterm by default wants to paste
|
|
! from the PRIMARY selection.
|
|
XTerm*VT100.Translations: #override \
|
|
~Meta <Btn2Up>: insert-selection(CUT_BUFFER0,PRIMARY)
|
|
|
|
You may have problems copying between Emacs and programs other than xterm
|
|
that won't store cut text in the cut buffers or look in the cut buffers
|
|
for text to paste (for backwards compatibility with obsolete applications
|
|
like Emacs :-). The best workaround is to use the `xcutsel' program as an
|
|
intermediary.
|
|
|
|
This problem does not exist for Epoch or Lucid Emacs.
|
|
|
|
68: 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 (eg., 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
|
|
|
|
69: 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 131.
|
|
|
|
70: 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
|
|
gethosbyname 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.
|
|
|
|
* Use tcp.el and tcp.c from GNUS. This has the additional advantage that
|
|
you can use numeric IP addresses instead of names. open-network-stream
|
|
currently can't handle numeric addresses. Brian Thomson
|
|
<thomson@hub.toronto.edu> has a enhancement to open-network-stream to
|
|
allow it to handle numeric addresses.
|
|
|
|
71: 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 29.
|
|
|
|
It may be the case that you may 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 127.
|
|
|
|
72: Why does Emacs ignore my X resources (my .Xdefaults file)?
|
|
|
|
* Try compiling Emacs with the XBACKWARDS macro defined. There is a bug
|
|
in some implementations of XGetDefault, which do not correspond to the
|
|
documentation or the header files.
|
|
|
|
* Make sure you are either using the class name of `Emacs' (oops,
|
|
apparently this is buggy in Emacs 18.58!) or the correct instance name.
|
|
The instance name is normally the same as the name of the file Emacs is
|
|
in (ie., the last part of argv[0]), but this can be overridden by -rn
|
|
command line option or the WM_RES_NAME environment variable.
|
|
|
|
WARNING: Reports say using the class name fails in Emacs 18.58.
|
|
|
|
WARNING: The advice the man page gives to use `emacs' is often wrong.
|
|
|
|
WARNING: Older versions of Emacs got the class name wrong.
|
|
|
|
* Emacs currently ignores the -xrm command line argument.
|
|
|
|
* Emacs does not yet handle X11R5 screen-specific resources.
|
|
|
|
* Emacs has a bug where it ignores color specifications if running on a
|
|
1-bit display (ie. a non-color display).
|
|
|
|
* I don't think Emacs will use either of the application-specific resource
|
|
files. Thus these environment variables don't affect it: XAPPLRESDIR,
|
|
XUSERFILESEARCHPATH, XFILESEARCHPATH. {Correct?}
|
|
|
|
73: Why does Emacs take 20 seconds to visit a file?
|
|
|
|
The usual cause is that the master lock file, `!!!SuperLock!!!' has been
|
|
left in the lock directory somehow. Delete it.
|
|
|
|
Mark Meuer <meuer@geom.umn.edu> 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.
|
|
|
|
74: 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.
|
|
|
|
75: 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 88).
|
|
|
|
76: Why doesn't my change to load-path work?
|
|
|
|
If you added a directory name containing a tilde (~) to your load-path,
|
|
expecting the tilde to be interpreted as your home directory, then you
|
|
need to do something like this:
|
|
|
|
(setq load-path (mapcar 'expand-file-name load-path))
|
|
|
|
77: Why does the cursor always go to the wrong column when I move up or
|
|
down one line?
|
|
|
|
You have inadvertently typed "C-x C-n" (set-goal-column) which sets the
|
|
"goal column" to the column where the cursor was. To undo this type
|
|
"C-u C-x C-n".
|
|
|
|
If you make this mistake frequently, you might want to unbind or disable
|
|
this command by doing one of these two:
|
|
|
|
(define-key ctl-x-map "\C-n" nil)
|
|
(put 'set-goal-column 'disabled t)
|
|
|
|
78: Why does Emacs hang with message `Unknown XMenu error' with X11R4?
|
|
|
|
Many different X errors can produce this message. Here is the solution
|
|
to one problem:
|
|
|
|
X11 Release 4 (and later, including OpenWindows) enforces some conditions
|
|
in the X protocol that were previously allowed to pass unnoticed. You
|
|
need to put the X11R4 server into X11R3 bug compatibility mode for Emacs's
|
|
Xmenu code to work. You can do this with the command `xset bc'.
|
|
|
|
79: Why doesn't display-time show the load average in the mode line
|
|
anymore?
|
|
|
|
In GNU Emacs 18.56, a change was made in the display-time code.
|
|
Formerly, in version 18.55, Emacs used a program named `loadst' to
|
|
notify Emacs of the change in time every minute. loadst also sent Emacs
|
|
the system load average if it was installed with sufficient privilege to
|
|
get that information (or was on a system where no such privilege was
|
|
needed). Emacs then displayed this information in the mode line.
|
|
|
|
In version 18.56, this code was changed to use a program named `wakeup'.
|
|
wakeup doesn't send Emacs any information, it's only purpose is to send
|
|
Emacs *something* every minute, thus invoking the filter function in
|
|
Emacs once a minute. The filter function in Emacs does all the work of
|
|
finding the time, date, and load average. However, getting the load
|
|
average requires the privilege to read kernel memory on most systems.
|
|
Since giving Emacs this privilege would destroy any security a system
|
|
might have, for almost everyone this is not an option. In addition,
|
|
Emacs does not have the code built into it to get this information on
|
|
the systems which have special system calls for this purpose, even
|
|
though loadst had code for this.
|
|
|
|
The solution I use is to get the files lisp/display-time.el and
|
|
etc/loadst.c from version 18.55 and use those with 18.58. (I have heard
|
|
a rumor that loadst disappeared because of the legal action Unipress
|
|
threatened against IBM.)
|
|
|
|
WARNING: Do not install Emacs setgid kmem unless you wish to destroy
|
|
any security your system might have!!!!!!!!!!
|
|
|
|
If you are using Emacs 18.55 or earlier, or already using the solution I
|
|
describe above, read further:
|
|
|
|
The most likely cause of the problem is that `loadst' can't read the
|
|
special file /dev/kmem. To properly install loadst, it should be either
|
|
setuid to the owner of /dev/kmem, or is should be setgid to the group to
|
|
which /dev/kmem belongs. In either case, /dev/kmem should be readable by
|
|
its owner or its group, respectively. Assuming the existence of a group
|
|
named `kmem', here is an example of how to do this:
|
|
|
|
chgrp kmem /dev/kmem
|
|
chmod g+r /dev/kmem
|
|
chgrp kmem /usr/local/emacs/etc/loadst
|
|
chmod g+s /usr/local/emacs/etc/loadst
|
|
|
|
Another possibility is that your version of Unix doesn't have the load
|
|
average data available in /dev/kmem. Your version of Unix might have a
|
|
special system call to retrieve this information (eg., inq_stats under
|
|
UMAX), and loadst might not have been enhanced to cope with this.
|
|
|
|
80: Why does ispell sometimes ignore the local dictionary?
|
|
|
|
You need to update the version of Ispell to 2.0.02. (Or you can switch to
|
|
version 3.0 which is still in beta-testing.) A patch is available via
|
|
anonymous FTP:
|
|
|
|
/archive.cis.ohio-state.edu:pub/gnu/ispell/patch2.Z
|
|
|
|
You also need to change a line in ispell.el from:
|
|
|
|
(defconst ispell-version "2.0.01") ; Check against output of "ispell -v".
|
|
|
|
to:
|
|
|
|
(defconst ispell-version "2.0.02") ; Check against output of "ispell -v".
|
|
|
|
81: Why does Ispell treat each line as a single word?
|
|
|
|
Ispell expects to get its input one word per line. The ispell filter,
|
|
which is specified by the variables ispell-filter-hook and
|
|
ispell-filter-hook-args, should output at most one word per line.
|
|
|
|
82: Are there any security risks in GNU Emacs?
|
|
|
|
* the `movemail' incident (No, this is not a risk.)
|
|
|
|
Cliff Stoll in his book `The Cuckoo's Egg' describes this in chapter 4.
|
|
The site at LBL had installed the `etc/movemail' program setuid root.
|
|
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 even if it is installed setuid
|
|
root this security hole will not be a result.
|
|
|
|
I have heard unverified reports that the 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.
|
|
|
|
If you set the variable inhibit-local-variables to a non-nil value,
|
|
Emacs will display the special local variable settings of a file that
|
|
you visit and ask you if you really want them. This variable is not
|
|
mentioned in the manual.
|
|
|
|
It is wise to do this in lisp/site-init.el before building Emacs:
|
|
|
|
(setq inhibit-local-variables t)
|
|
|
|
If Emacs has already been built, the expression can be put in
|
|
lisp/default.el instead, or an individual can put it in their own .emacs
|
|
file.
|
|
|
|
The ability to exploit this feature by sending e-mail to an RMAIL user
|
|
was fixed sometime after Emacs 18.52. However, any new package that
|
|
uses find-file or find-file-noselect has to be careful about this.
|
|
|
|
For more information, see `File Variables' in the online manual (which,
|
|
incidentally, does not describe how to disable the feature).
|
|
|
|
There is a new variable in Emacs 18.58 named ignore-local-eval which
|
|
turns out to be useless as currently implemented. Ignore it.
|
|
|
|
* 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.
|
|
|
|
Lucid GNU Emacs does not accept synthetic X events unless you set a
|
|
variable.
|
|
|
|
* autosave file permissions (Yes, a risk, hard to work around.)
|
|
|
|
The file permissions for autosave files are determined solely by the
|
|
Emacs process's `umask' value. The permissions of the file being
|
|
autosaved are not used. The easiest workaround is to keep sensitive
|
|
files in protected directories. Sebastian Kremer has written an
|
|
enhanced version of the autosave file name picking code that can avoid
|
|
this problem by keeping autosave files in a protected directory. {FTP
|
|
information please?} This problem will be fixed in Emacs 19.
|
|
|
|
|
|
|
|
Difficulties Building/Installing/Porting Emacs
|
|
|
|
83: What should I do if I have trouble building Emacs?
|
|
|
|
First look in the file etc/PROBLEMS to see if there is already a solution
|
|
for your problem. Next check the FAQ (you're reading it). If you don't
|
|
find a solution, then report your problem via e-mail to
|
|
bug-gnu-emacs@prep.ai.mit.edu. Please do not post it to gnu.emacs.help or
|
|
e-mail it to help-gnu-emacs@prep.ai.mit.edu. For further guidelines, see
|
|
question 8.
|
|
|
|
84: How do I stop Emacs from failing when the executable is stripped?
|
|
|
|
Don't do that.
|
|
|
|
This problem has been reported on SGI Indigo machines running Irix 4.0.*
|
|
and RS/6000 machines. Scott Henry <scotth@hoshi.corp.SGi.COM> posted a
|
|
patch that fixes the problem for Irix.
|
|
|
|
85: 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' {???}.
|
|
|
|
If you are building the MIT X11 sources, you may need to modify your
|
|
`site.cf' file to get static versions of the libraries. (Info from David
|
|
Zuhn <zoo@cygnus.com>.)
|
|
|
|
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.
|
|
|
|
86: Why does Emacs 18.55 say `Fatal error (6).Abort' under SunOS 4.1?
|
|
|
|
I had hoped this question would go away after Emacs 18.57 was released,
|
|
but people continue to compile 18.55. Easiest solution: upgrade.
|
|
|
|
This is a result of the SunOS localtime/tzsetwall malloc bug, which was
|
|
(finally!) fixed in SunOS 4.1.2. If you actually need the full
|
|
explanation, send me e-mail. If you absolutely must compile Emacs 18.55
|
|
(eg., you are compiling Nemacs), the easiest workaround was to put
|
|
`#define SYSTEM_MALLOC' in src/config.h.
|
|
|
|
|
|
|
|
GNU Emacs FAQ: Getting Emacs/Packages
|
|
|
|
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, then type ESC to end the search.
|
|
|
|
A `+' in the 78th column means something was inserted on the line. A `-' means
|
|
something was deleted and a `!' means some combination of insertions and
|
|
deletions occurred.
|
|
|
|
Full instructions for getting the latest FAQ are in question 22. Also see the
|
|
`Introduction to news.answers' posting in the `news.answers' newsgroup, or send
|
|
e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
|
|
WAIS, or Prospero to rtfm.mit.edu.
|
|
|
|
|
|
|
|
Finding/Getting Emacs and Related Packages
|
|
|
|
87: Where can I get GNU Emacs on the net (or by snail mail)?
|
|
|
|
Look in the files etc/DISTRIB and etc/FTP for information on nearby
|
|
archive sites. If you don't already have GNU Emacs, see question 20
|
|
for how to get these two files.
|
|
|
|
The latest version is always available via anonymous FTP at MIT:
|
|
|
|
/prep.ai.mit.edu:pub/gnu/emacs-18.59.tar.Z
|
|
|
|
See question 91.
|
|
|
|
88: How do I find a GNU Emacs Lisp package that does XXX?
|
|
|
|
A listing of Emacs Lisp packages, called the Lisp Code Directory, is being
|
|
maintained by Dave Brennan <brennan@hal.com> and Dave Sill <de5@ornl.gov>.
|
|
You can search through this list to find if someone has written something
|
|
that fits your needs.
|
|
|
|
This list is file LCD-datafile.Z in the Emacs Lisp Archive. (See
|
|
question 89 for methods for getting this file.) The files lispdir.el.Z
|
|
and lispdir.doc.Z in the archive contain information to help you use the
|
|
list. Once you have installed lispdir.el and LCD-datafile, then you can
|
|
use the "M-x lisp-dir-apropos" command to look things up in the database.
|
|
For example, the command "M-x lisp-dir-apropos RET ange-ftp RET" produces
|
|
this (outdated) output:
|
|
|
|
GNU Emacs Lisp Code Apropos -- "ange-ftp"
|
|
|
|
ange-ftp (3.112) 91-08-12
|
|
Andy Norman, <ange@hplb.hpl.hp.com>
|
|
archive.cis.ohio-state.edu:
|
|
/pub/gnu/emacs/elisp-archive/as-is/ange-ftp.el.Z
|
|
transparent FTP Support for GNU Emacs
|
|
|
|
89: Where can I get GNU 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 88). Then check local archives and
|
|
the Emacs Lisp Archive to find a copy of the relevant files. Then, if
|
|
you still haven't found it, you can send e-mail to the author asking for
|
|
a copy.
|
|
|
|
You can access the Emacs Lisp Archive via anonymous FTP:
|
|
|
|
/archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/
|
|
|
|
Fetch 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.
|
|
|
|
NOTE: Any files with names ending in `.Z' are compressed, and 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'.
|
|
|
|
90: How do I submit code to the Emacs Lisp Archive?
|
|
|
|
Submissions should be 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. Mail messages (submissions) are automatically saved and
|
|
periodically archived. Urgent mail may be sent directly to Dave Sill
|
|
<de5@ornl.gov> or Dave Brennan <brennan@hal.com> or should contain the
|
|
string `urgent' in the subject. The incoming ftp directory is no longer
|
|
available at the request of Ohio State. {Is this still true?}
|
|
|
|
However, if someone has a submission with multiple files (which would be
|
|
archived as a tar file) or binary files, then FTP transfer is preferred
|
|
and can be arranged via an anonymous FTP site. This is faster than
|
|
uudecoding, unsharing, etc., and re-packaging files.
|
|
|
|
Before submitting anything, please read the file guidelines.Z, which is
|
|
available in the archive. Whenever possible, submissions should contain a
|
|
complete LCD entry since this helps reduce administrative overhead for the
|
|
maintainers. You can include an entry in this format:
|
|
|
|
;; LCD Archive Entry:
|
|
;; package name|author's name|email address
|
|
;; |description
|
|
;; |date|version|archive path
|
|
|
|
For example:
|
|
|
|
;; LCD Archive Entry:
|
|
;; tex-complete|Sebastian Kremer|sk@thp.Uni-Koeln.DE
|
|
;; |Minibuffer name completion for editing [La]TeX.
|
|
;; |91-03-26|$Revision: 1.4 $|~/packages/tex-complete.el.Z !
|
|
|
|
Dave Brennan has software which automatically looks for data in this
|
|
format. The format is fairly flexible. The entry ends when a line is
|
|
reached with a different prefix or the seventh field terminator is
|
|
seen.
|
|
|
|
If you are submitting a multi-file submission you should include a file
|
|
named "LCD-entry" which contains the archive entry, instead of placing
|
|
it in one or more of the individual files.
|
|
|
|
91: Where can I get other up-to-date GNU stuff?
|
|
|
|
The most up-to-date official GNU stuff is normally kept on prep.ai.mit.edu
|
|
and is available for anonymous FTP in the pub/gnu directory. See the
|
|
files etc/DISTRIB and etc/FTP for more information. (To get copies of
|
|
these files, see question 20.)
|
|
|
|
The following sites are all mirror images of the GNU distribution area:
|
|
|
|
/prep.ai.mit.edu:pub/gnu/
|
|
/ftp.uu.net:packages/gnu/
|
|
/src.doc.ic.ac.uk:gnu/ (available via FTP, NIFTP, FTAM)
|
|
/ftp.win.tue.nl:pub/gnu/
|
|
/utsun.s.u-tokyo.ac.jp:ftpsync/prep/
|
|
/nic.funet.fi:pub/gnu/
|
|
|
|
The directory at ftp.uu.net is a mirror of prep.ai.mit.edu:pub/gnu,
|
|
except that files larger than 1 megabyte {right?} are automatically
|
|
split into multiple parts. If you have trouble transferring large
|
|
files, you should try here. A file normally named `XXX' is split into
|
|
files XXX-split/part[0-9][0-9], and there will be a file named
|
|
XXX-split/README which contains the list of parts (especially helpful
|
|
when FTP-ing by e-mail), their checksums, and reassembly instructions.
|
|
Some of the other mirror sites may have the same property. {Can someone
|
|
check this out? Thanks!}
|
|
|
|
Information was provided by Lee McLoughlin <lmjm@doc.ic.ac.uk>, Jonathan
|
|
R. Ferro <jf41+@ANDREW.CMU.EDU>, Arjan de Vet <devet@win.tue.nl>, and
|
|
Simon Marshall <S.Marshall@sequent.cc.hull.ac.uk>.
|
|
|
|
92: Where can I get an Emacs with better mouse and X window support?
|
|
|
|
Emacs 18 has some limited X Window System support, but there are
|
|
problems. Emacs 19 will have amazing mouse and window support. Right
|
|
now, there are Epoch which is derived from GNU Emacs 18.58 and Lucid GNU
|
|
Emacs which is derived from an early unreleased version of GNU Emacs 19,
|
|
both of which have greatly improved mouse and window support. See
|
|
questions 120 and 121.
|
|
|
|
The HP unofficial GNU Emacs also has nice mouse support. See question
|
|
95.
|
|
|
|
There are numerous Emacs Lisp packages that have been written to extend
|
|
Emacs 18's mouse handling capabilities. Some of these packages also have
|
|
patches to the C code to provide enhanced capabilities. Look up `mouse'
|
|
in the Lisp Code Directory (see question 88).
|
|
|
|
There is a package called BAM (Born Again Menus) which provides menus for
|
|
GNU Emacs via an external C program. It does not provide mouse support in
|
|
the Emacs window such as scrollbars, cut-and-paste, etc.
|
|
|
|
NOTE: Epoch only works with the X Window System; it works on ordinary
|
|
terminals by invoking regular GNU Emacs. Lucid Emacs does not currently
|
|
work on ordinary terminals, although there are plans to fix this.
|
|
|
|
93: What is the difference between GNU Emacs and Epoch?
|
|
|
|
Marc Andreessen <marca@ncsa.uiuc.edu> writes:
|
|
|
|
Epoch is GNU Emacs on steroids: an adaptation of GNU Emacs with lots of
|
|
additional support for features made possible by the X11 windowing
|
|
system. These features include multiple editing windows, arbitrary
|
|
colors and fonts (fixed-width and proportional), selectable zones per
|
|
buffer with arbitrary display styles (font, color, underline, stipple,
|
|
pixmap), an optional separate minibuffer window, improved keyboard and
|
|
mouse handling, full 8-bit character set support, and more.
|
|
|
|
94: What is the difference between GNU Emacs and Lucid GNU Emacs?
|
|
|
|
This information is condensed from the release notice:
|
|
|
|
Lucid GNU Emacs is based on an early version of GNU Emacs version 19
|
|
with many enhancements. It currently requires X Windows to run. For
|
|
information on where to get Lucid GNU Emacs see 121. X Windows support
|
|
is greatly enhanced over GNU Emacs version 18, including support for
|
|
multiple X Windows (a.k.a. screens in Emacs), Zmacs/Lispm style region
|
|
highlighting, a customizable, Motif-like menubar, more powerful keymap
|
|
support (allowing different actions to be associated with Backspace,
|
|
Control-h, etc.), flexible text attribute (e.g. font, color) support on
|
|
regional and screen-local basis through X resources and/or lisp, and
|
|
support for the X11 selection mechanism. Some other features include
|
|
run-time computation of the load-path, support for floating point
|
|
numbers, native timer support, and sound file support on Sun
|
|
SPARCstations. To build Lucid GNU Emacs, an ANSI C compiler (e.g. gcc)
|
|
is required.
|
|
|
|
95: Where can I get the "unofficial HP GNU Emacs"?
|
|
|
|
The unofficial HP GNU Emacs is available via anonymous FTP:
|
|
|
|
/ee.utah.edu:HUGE/ (PLEASE FTP DURING NON-WORK HOURS!!!)
|
|
|
|
and takes about 35 megabytes of disk space to build. It is useful for
|
|
non-HP machines, but some of the added features will only work under
|
|
HP-UX.
|
|
|
|
You will need to get patches to work with HP-UX 8.0 or on 700 series
|
|
machines via e-mail from Darryl Okahata <darrylo@sr.hp.com>.
|
|
|
|
96: Where can I get Emacs for my PC running MS-DOS?
|
|
|
|
* Demacs
|
|
|
|
For 386 or 486 PCs running MS-DOS, there is a version of GNU Emacs
|
|
called Demacs. To get Demacs see question 122.
|
|
|
|
From the announcement message:
|
|
|
|
Demacs is almost a full set of GNU Emacs but does not support some
|
|
features: asynchronous process, locking a file, etc.
|
|
|
|
Demacs provides following DOS specific features:
|
|
|
|
* File type: text or binary file translation.
|
|
* "8-bit clean" display mode.
|
|
* 8086 software interrupt call by int86 lisp function.
|
|
* Machine specific features such as function key support.
|
|
* File name completion with drive name.
|
|
* Child process (suspend-emacs, call-process).
|
|
* Enhanced dired mode which can work without 'ls.exe'.
|
|
|
|
To our regret `shell-mode' does not work, but `compile' command works
|
|
properly.
|
|
|
|
Demacs was developed using an MS-DOS version of gcc called djgpp by
|
|
D. J. Delorie <dj@ctron.com> which can compile and run large programs
|
|
under MS-DOS, but not under MS Windows. Demacs was derived from Nemacs
|
|
rather than straight from GNU Emacs.
|
|
|
|
There are a variety of other Emacses for MS-DOS including among them the
|
|
following.
|
|
|
|
* Freemacs
|
|
|
|
Russ Nelson <nelson@sun.soe.clarkson.edu>, the author, describes
|
|
Freemacs:
|
|
|
|
* Freemacs is free, and it was designed from the start to be
|
|
programmable.
|
|
* Freemacs is the only IBM-PC editor that tries to be like GNU Emacs.
|
|
* Freemacs can only edit files less than 64K in length.
|
|
* Freemacs doesn't have undo.
|
|
|
|
Carl Witty <cwitty@cs.stanford.edu> reviews Freemacs:
|
|
|
|
Better is Freemacs, which follows the tradition of ITS and GNU Emacs
|
|
by having an full, turing-complete extension language which is
|
|
incompatible with everything else. In fact, it's even closer to ITS
|
|
Emacs than GNU Emacs is, because Mint (Freemacs' extension language)
|
|
is absolutely illegible without weeks of study, much like TECO.
|
|
|
|
To get Freemacs see question 123.
|
|
|
|
* MicroEmacs
|
|
|
|
MicroEmacs is a descendant of Microemacs {originally by Dave Conroy?}.
|
|
It is programmable in a BASIC-like language. Many of the keybindings
|
|
are different from GNU Emacs. The author is Daniel Lawrence -
|
|
<dan@mdbs.uucp, mdbs!dan@ee.ecn.purdue.edu>. The latest version is 3.12 !
|
|
and it is available via anonymous FTP:
|
|
|
|
/midas.mgmt.purdue.edu:dist/uemacs312/ (outside business hours) !
|
|
!
|
|
Version 3.12 includes Windows and Windows NT versions and a DOS !
|
|
protected mode (DMPI) version. !
|
|
|
|
* JOVE
|
|
|
|
Another Emacs for small machines is JOVE (Jonathan's Own Version of
|
|
Emacs). The latest official version is 4.14. There appears to be a
|
|
newer version. People rumored to be working on JOVE include Mark Moraes
|
|
<moraes@cs.toronto.edu> and Bill Marsh <bmarsh@cod.nosc.mil>. It is
|
|
available via anonymous FTP:
|
|
|
|
/cs.toronto.edu:/pub/moraes/jove4.14.7.tar.Z
|
|
|
|
* MG
|
|
|
|
MG is another descendant of Microemacs. MG used to stand for
|
|
MicroGNUEmacs, but now just stands for MG. The look-and-feel of MG is
|
|
intended to be close to that of GNU Emacs. It is rumored that MG can
|
|
not correctly edit files larger than memory. The current version is
|
|
rumored to be 2. There is a version 3 in beta which works on the Amiga.
|
|
It is also available via anonymous FTP:
|
|
|
|
/ftp.white.toronto.edu:pub/mg/
|
|
/wuarchive.wustl.edu:/mirrors/unix-c/editors/
|
|
/procyon.cis.ksu.edu: (source and executable)
|
|
|
|
97: Where can I get Emacs for my PC running Windows?
|
|
|
|
I believe that no version of GNU Emacs runs under Windows. Pierre Perret
|
|
<pap@myths.az05.bull.com> has ported MicroEMACS 3.11c to Windows.
|
|
|
|
Anonymous FTP:
|
|
/ftp.cica.indiana.edu:pub/pc/win3/util/mewin10.zip
|
|
/ftp.cica.indiana.edu:pub/pc/win3/util/mewin10s.zip
|
|
/ftp.cica.indiana.edu:pub/pc/win3/util/mewri.zip
|
|
|
|
98: Where can I get Emacs for my PC running OS/2?
|
|
|
|
From the OS/2 Programmer's FAQ:
|
|
|
|
GNU Emacs 18.58 is available. It requires you to have EMX installed
|
|
on your machine, but it comes with all the EMX files you will need.
|
|
Emacs is available on ftp-os2 in /pub/os2/2.0/gnu/emacs. (If you want
|
|
to recompile emacs, you will need the full EMX distribution see
|
|
question 1.2.)
|
|
|
|
The above quote may be out of date. See the latest OS/2 Programmer's FAQ
|
|
{perhaps in comp.os.os2.misc?} for the latest news. Anonymous FTP info:
|
|
|
|
/ftp-os2.nmsu.edu:pub/os2/2.0/gnu/emacs/
|
|
("ftp-os2" was formerly named "hobbes")
|
|
|
|
Thanks go to Stephen Simpson <simpson@symcom.math.uiuc.edu>, Jonathan
|
|
Miller <jem+@andrew.cmu.edu>, Terry Kane <terryk@cc.gatech.edu>, J. D.
|
|
Baldwin <baldwin@csservera.usna.navy.mil>, and Ken Bass
|
|
<kbass@gmuvax2.gmu.edu>.
|
|
|
|
99: Where can I get Emacs for my Atari ST?
|
|
|
|
Emacs 18.57 is the latest version for TOS. Stefan Mueller-Pfeiffer
|
|
<iff327@zam001.zam.kfa-juelich.de> says:
|
|
|
|
There is also a version for MiNT, the multitasking enhancement for
|
|
ATARI's TOS, which behaves almost like EMACS on a "real computer". This
|
|
port was done by Erling Henanger <erlingh@idt.unit.no>.
|
|
|
|
Anonymous FTP:
|
|
/atari.archive.umich.edu:atari/gnustuff/tos/ (TOS Emacs 18.57)
|
|
/atari.archive.umich.edu:atari/new/mntemacs.zoo (MiNT Emacs)
|
|
/cs.uni-sb.de:/pub/atari/emacs/
|
|
|
|
100: Where can I get Emacs for my Amiga?
|
|
|
|
All of the files are lharc-ed.
|
|
|
|
Anonymous FTP:
|
|
/oes.orst.edu:/pub/almanac/comp/amiga/software/gnuemacs-1.10/
|
|
|
|
Via e-mail:
|
|
To: almanac@oes.orst.edu
|
|
body:
|
|
mode uuencode
|
|
send computer amiga software gnuemacs <file>
|
|
<file> is replaced by one of the following:
|
|
Required: d1.lzh d2.lzh
|
|
Recommended: d3_info.lzh d3_infolisp.lzh
|
|
Optional: d3_autoloaded.lzh d3_entertainmentetc.lzh
|
|
d3_entertainmentlisp.lzh d4_src.lzh d5_languagelisp.lzh
|
|
d5_viclone.lzh d6_gnulibsrc.lzh d6_mailpackage.lzh
|
|
d6_mathpackage.lzh d6_misc.lzh d6_textformat.lzh
|
|
The `d#' at the beginning of each file is its disk number, which is
|
|
referred to by the documentation.
|
|
|
|
101: Where can I get Emacs for my Apple computer?
|
|
|
|
The FSF is a participant in a boycott of Apple because of Apple's "look
|
|
and feel" copyright suits. See the file etc/APPLE for more details.
|
|
Because of this boycott, the FSF doesn't include support in GNU software
|
|
for Apple computers such as the Macintosh.
|
|
|
|
Please don't help people port or develop software for Apple computers.
|
|
|
|
102: Where can I get Emacs with NeWS support?
|
|
|
|
Chris Maio's NeWS support package for GNU Emacs is available via anonymous
|
|
FTP:
|
|
|
|
/columbia.edu:pub/ps-emacs.tar.Z
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/ps-emacs.tar.Z
|
|
|
|
and via e-mail:
|
|
|
|
To: archive-server@columbia.edu
|
|
body: send NeWS emacs-support
|
|
|
|
103: Where do I get Emacs that runs on VMS under DECwindows?
|
|
|
|
Hal R. Brand <BRAND@addvax.llnl.gov> is said to have a VMS save set with a
|
|
ready-to-run VMS version of Emacs 18.55 for X Windows. It is available
|
|
via anonymous FTP (addvax.llnl.gov). It is possible that the VMS versions
|
|
of Emacs at other sites have X support compiled in. See etc/FTP for
|
|
locations.
|
|
|
|
Johan Vromans <jv@mh.nl> writes:
|
|
|
|
Getting Emacs to run on VMS with DECwindows requires a number of changes
|
|
to the sources. Fortunately this has been done already. Joshua Marantz
|
|
<josh@viewlogic.com> did most of the work for Emacs 18.52, and the mods
|
|
were ported to 18.55 by Johan Vromans <jv@mh.nl>. Also included is the
|
|
handling of DEC's LK201 keyboard. You need to apply the changes to a
|
|
fresh Emacs 18.55 distribution on a Unix system, and then you can copy
|
|
the sources to VMS to perform the compile/link/build.
|
|
|
|
The set of changes have been posted a number of times three times the
|
|
last 12 months, so they should be widely available.
|
|
|
|
Richard Levitte <levitte@e.kth.se> tells us that there are patches for
|
|
Emacs 18.57, 18.58, and 18.59 available via e-mail: !
|
|
|
|
To: EMACS-FILESERV@e.kth.se !
|
|
body: SEND EMACS-1857-PATCHES
|
|
or: SEND EMACS-1858-PATCHES
|
|
or: SEND EMACS-1859-PATCHES +
|
|
+
|
|
or via anonymous ftp at: +
|
|
+
|
|
/lucy.merrimack.edu:emacs-1859-patches.share +
|
|
+
|
|
The set of patches weighs in at around 2.7 MB. +
|
|
|
|
104: Where can I get modes for Lex, Yacc/Bison, Bourne Shell, Csh, C++,
|
|
Objective C, Pascal, Awk?
|
|
|
|
As usual, look in the Lisp Code Directory (see question 88). For C++,
|
|
if you use lisp-dir-apropos, you must specify the pattern like this:
|
|
|
|
M-x lisp-dir-apropos RET c\+\+ RET
|
|
|
|
105: What is the IP address of XXX.YYY.ZZZ?
|
|
|
|
If you are at a site with a deficient nameserver, you may need to know
|
|
the IP address of a host to FTP files from it. You can get this
|
|
information in two ways:
|
|
|
|
* By telnet:
|
|
|
|
telnet nic.ddn.mil hostnames (or `telnet 192.112.36.5 101')
|
|
hname XXX.YYY.ZZZ
|
|
|
|
* By e-mail:
|
|
|
|
To: service@nic.ddn.mil
|
|
Subject: host XXX.YYY.ZZZ
|
|
or: whois XXX.YYY.ZZZ
|
|
or: help
|
|
|
|
or:
|
|
|
|
To: resolve@cs.widener.edu
|
|
body: site XXX.YYY.ZZZ
|
|
|
|
Information from Brendan Kehoe <brendan@cs.widener.edu>.
|
|
|
|
|
|
|
|
|
|
Major Emacs Lisp Packages, Emacs Extensions, and Related Programs
|
|
|
|
This section lists version numbers, FTP sites, mailing lists, newsgroups,
|
|
and other information for many important packages, extensions, and related
|
|
programs. There is some overlap with the Lisp Code Directory, but these
|
|
entries give more detailed information.
|
|
|
|
If you know of any other packages that are so substantial that they
|
|
deserve to be mentioned here, please tell me. Having its own mailing list
|
|
or newsgroup or more than half a megabyte of source code are good signs.
|
|
|
|
106: VM (View Mail) -- another mail reader within Emacs
|
|
|
|
Author: Kyle Jones <kyle@uunet.uu.net>
|
|
Latest released version: 4.41
|
|
Beta test version: 5.32
|
|
Anonymous FTP:
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/vm-4.41.tar.Z
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/as-is/timer.shar.Z
|
|
/ftp.uu.net:mail/vm-4.41.tar.Z
|
|
/ftp.uu.net:mail/vm-5.32beta.tar.Z
|
|
Newsgroups and mailing lists:
|
|
Info-VM:
|
|
gnu.emacs.vm.info
|
|
info-vm-request@uunet.uu.net (for subscriptions)
|
|
info-vm@uunet.uu.net (for submissions)
|
|
Bug-VM:
|
|
gnu.emacs.vm.bug
|
|
bug-vm-request@uunet.uu.net (for subscriptions)
|
|
bug-vm@uunet.uu.net (for submissions)
|
|
|
|
107: Supercite -- mail and news citation package within Emacs
|
|
|
|
Author: Barry Warsaw <bwarsaw@cen.com>
|
|
Mailing list: supercite-request@anthem.nlm.nih.gov (for subscriptions)
|
|
supercite@anthem.nlm.nih.gov (for submissions)
|
|
Latest version: 2.3 !
|
|
Anonymous FTP:
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/sc-2.3.tar.Z !
|
|
/ftp.cme.nist.gov:pub/gnu/sc2.3.tar.Z !
|
|
Via e-mail:
|
|
To: library@cme.nist.gov
|
|
Subject: help
|
|
NOTE: Superyank is an old version of Supercite.
|
|
|
|
108: GNUS -- news reader within Emacs
|
|
|
|
Author: Masanobu Umeda <umerin@mse.kyutech.ac.jp>
|
|
Latest official version: 3.13
|
|
Unofficial test version: 3.14.1
|
|
Anonymous FTP:
|
|
/aun.uninett.no:pub/gnus-3.14.1.tar.Z -
|
|
/wnoc-fuk.wide.ad.jp:pub/GNU/etc/gnus-3.14.1.tar.Z
|
|
/liasun3.epfl.ch:pub/gnu/emacs/gnus-3.14.1.tar.Z
|
|
/aix370.rrz.uni-koeln.de:/pub/gnu/emacs/gnus-3.14.1.tar.Z
|
|
/funet.fi:/networking/news/gnus-3.14.1.tar.Z
|
|
/src.doc.ic.ac.uk:/gnu/EmacsBits/gnus/gnus-3.14.1.tar.Z
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/gnus-3.13.tar.Z
|
|
Newsgroups and mailing lists:
|
|
English-only:
|
|
gnu.emacs.gnus
|
|
info-gnus-english-request@cis.ohio-state.edu (for subscriptions)
|
|
info-gnus-english@cis.ohio-state.edu (for submissions)
|
|
Japanese (and some English):
|
|
info-gnus-request@flab.fujitsu.co.jp (for subscriptions)
|
|
info-gnus@flab.fujitsu.co.jp (for submissions)
|
|
|
|
109: Calc -- poor man's Mathematica within Emacs
|
|
|
|
Author: Dave Gillespie <daveg@csvax.cs.caltech.edu>
|
|
Latest released version: 2.02
|
|
Anonymous FTP:
|
|
/csvax.cs.caltech.edu:pub/calc-2.02.tar.Z
|
|
/prep.ai.mit.edu:pub/gnu/calc-2.02.tar.Z
|
|
NOTE: Unlike Wolfram Research, Dave has never threatened to sue anyone
|
|
for having a program with a similar command language to Calc. :-)
|
|
|
|
110: Calendar/Diary -- calendar manager within Emacs
|
|
|
|
Author: Edward M. Reingold <reingold@cs.uiuc.edu>
|
|
Latest version: 4.02
|
|
Anonymous FTP:
|
|
/emr.cs.uiuc.edu:pub/emacs/calendar {???}
|
|
Via e-mail:
|
|
To: reingold@cs.uiuc.edu
|
|
Subject: send-emacs-cal
|
|
Put your best internet e-mail address in the body.
|
|
|
|
111: Ange-FTP -- transparent FTP access for Emacs's file access routines
|
|
|
|
Author: Andy Norman <ange@hplb.hpl.hp.com>
|
|
Latest official version: 4.20
|
|
Anonymous FTP:
|
|
/alpha.gnu.ai.mit.edu:ange-ftp/ange-ftp.tar.Z
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/ange-ftp.tar.Z
|
|
/ugle.unit.no:pub/gnu/emacs-lisp/ange-ftp.tar.Z
|
|
Mailing lists:
|
|
ange-ftp-lovers-request@anorman.hpl.hp.com (for subscriptions)
|
|
Ange-FTP Lovers:
|
|
ange-ftp-lovers@anorman.hpl.hp.com (for submissions)
|
|
/ftp.reed.edu:pub/mailing-lists/ange-ftp/ (archives)
|
|
Ange-FTP Announcements:
|
|
ange-ftp-lovers-announce@anorman.hpl.hp.com
|
|
NOTE: now with support for accessing VMS, CMS, and MTS systems
|
|
|
|
112: VIP -- vi emulation for Emacs
|
|
|
|
Author: Aamod Sane <sane@cs.uiuc.edu>
|
|
Latest released version: 4.3
|
|
Anonymous FTP:
|
|
/cs.uiuc.edu:pub/vip4.3.tar.Z
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/modes/vip-mode.tar.Z
|
|
NOTE: This version much more closely emulates vi than the one
|
|
distributed with Emacs.
|
|
|
|
113: Dired -- better directory editor for Emacs
|
|
|
|
Author: Sebastian Kremer <sk@thp.uni-koeln.de>
|
|
Latest released version: 5.239
|
|
Anonymous FTP: /ftp.cs.buffalo.edu:pub/Emacs/diredall.tar.Z
|
|
/ftp.uni-koeln.de:pub/gnu/emacs/diredall.tar.Z
|
|
NOTE: This is a huge improvement over the Dired distributed with Emacs.
|
|
This version will be in Emacs 19.
|
|
|
|
114: AUC TeX -- enhanced LaTeX mode with debugging facilities
|
|
|
|
Author: Kresten Krab Thorup <krab@iesd.auc.dk>
|
|
Latest released version: 6.1 {???}
|
|
Anonymous FTP:
|
|
/iesd.auc.dk:pub/emacs-lisp/auctex_6_1d.tar.Z
|
|
/iesd.auc.dk:pub/emacs-lisp/auctex.tar.Z
|
|
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)
|
|
|
|
115: Hyperbole -- extensible hypertext management system within Emacs
|
|
|
|
Author: Bob Weiner <rsw@cs.brown.edu>
|
|
Anonymous FTP:
|
|
/wilma.cs.brown.edu:pub/hyperbole/ h*.tar.Z
|
|
Mailing lists:
|
|
hyperbole-announce -- Hyperbole release announcements only.
|
|
Subscriptions:
|
|
To: hyperbole-request@cs.brown.edu
|
|
Subject: Add <mailbox@domain.name> to hyperbole-announce
|
|
hyperbole -- Hyperbole discussion.
|
|
Subscriptions:
|
|
To: hyperbole-request@cs.brown.edu
|
|
Subject: Add <mailbox@domain.name> to hyperbole
|
|
Submissions:
|
|
hyperbole@cs.brown.edu
|
|
NOTE: Any member of the hyperbole mailing list is automatically a
|
|
member of the hyperbole-announce mailing list.
|
|
NOTE: No .UUCP or ! addresses are allowed on these mailing lists.
|
|
|
|
116: Byte Compiler -- enhanced version of Emacs's byte compiler
|
|
|
|
Author: Jamie Zawinski <jwz@lucid.com>,
|
|
Hallvard B. Furuseth <hallvard@ifi.uio.no>
|
|
Anonymous FTP:
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/bytecomp.tar.Z
|
|
/ftp.uu.net:languages/elisp/packages/bytecomp.tar.Z
|
|
/src.doc.ic.ac.uk:gnu/EmacsBits/elisp-archive/packages/bytecomp.tar.Z
|
|
|
|
117: comint -- hugely enhanced shell mode and other derived modes
|
|
|
|
Author: Olin Shivers <Olin.Shivers@cs.cmu.edu>
|
|
Anonymous FTP:
|
|
/cs.cmu.edu:/afs/cs.cmu.edu/user/shivers/lib/emacs/
|
|
{comint,cmu{tex,shell,scheme,lisp},ml}.el
|
|
(anonymous password must contain `@',
|
|
cannot cd to intermediate directories)
|
|
|
|
118: BBDB -- personal info rolodex integrated with mail/news readers
|
|
|
|
Author: Jamie Zawinski <jwz@lucid.com>
|
|
Latest released version: 1.47
|
|
Anonymous FTP:
|
|
/archive.cis.ohio-state.edu:pub/gnu/emacs/elisp-archive/packages/bbdb.tar.Z
|
|
Mailing list:
|
|
info-bbdb-request@lucid.com (for subscriptions)
|
|
info-bbdb@lucid.com
|
|
bbdb-announce-request@lucid.com (to be informed of new releases)
|
|
Note: BBDB does not work with VM 4. It does work with VM 5, RMAIL, GNUS,
|
|
and MH-E.
|
|
|
|
119: Ispell -- spell checker in C with interface for Emacs
|
|
|
|
Author: Geoff Kuenning <geoff@itcorp.com>
|
|
Latest released version: 2.0.02
|
|
Beta test version: 3.0 (9 patches)
|
|
Anonymous FTP:
|
|
/archive.cis.ohio-state.edu:/pub/gnu/ispell/ (version 2.0.02)
|
|
/ftp.cs.ucla.edu:/pub/ispell/ (version 3.0, patches, dictionaries)
|
|
/argus.math.orst.edu:pub/ispell/ (version 3.0, patches, dictionaries)
|
|
/ftp.th-darmstadt.de:pub/dicts/ispell/ (mirror of argus)
|
|
NOTE: Do not send mail to Geoff asking him to send you the latest
|
|
version of Ispell. He does not have free e-mail.
|
|
|
|
120: Epoch -- enhanced GNU Emacs with better X interface
|
|
|
|
Latest released version: 4.2
|
|
Anonymous FTP:
|
|
/cs.uiuc.edu:pub/epoch-files/epoch/epoch-4.2.tar.Z
|
|
/cs.uiuc.edu:pub/epoch-files/epoch/epoch-diff-4.1-4.2.tar.Z
|
|
/src.doc.ic.ac.uk:gnu/epoch/
|
|
/aix370.rrz.uni-koeln.de:gnu/emacs/epoch/
|
|
Newsgroup and mailing lists:
|
|
Epoch:
|
|
gnu.emacs.epoch
|
|
epoch-request@cs.uiuc.edu (for subscriptions)
|
|
epoch@cs.uiuc.edu (for submissions)
|
|
Epoch-Design:
|
|
epoch-design-request@cs.uiuc.edu (for subscriptions)
|
|
epoch-design@cs.uiuc.edu (for submissions)
|
|
FAQ list:
|
|
Maintainer: Marc Andreessen <marca@ncsa.uiuc.edu>
|
|
Anonymous FTP:
|
|
/rtfm.mit.edu:pub/usenet/news.answers/epoch-faq
|
|
/ftp.ncsa.uiuc.edu:outgoing/marca/epoch/Epoch.FAQ
|
|
|
|
121: Lucid GNU Emacs -- alternative Emacs 19 with better X interface
|
|
|
|
Primary Maintainer: Jamie Zawinski <jwz@lucid.com>
|
|
Other Developers: Eric Benson <eb@lucid.com>
|
|
Matthieu Devin <devin@lucid.com>
|
|
Harlan Sexton <hbs@lucid.com>
|
|
Latest released version: 19.6 !
|
|
Anonymous FTP:
|
|
/labrea.stanford.edu:pub/gnu/lucid/lemacs-19.6.tar.Z (source) !
|
|
/labrea.stanford.edu:pub/gnu/lucid/lemacs-19.6-sun4.tar.Z (Sun4binaries) !
|
|
Newsgroup and mailing lists:
|
|
Bugs:
|
|
alt.lucid-emacs.bug +
|
|
bug-lucid-emacs-request@lucid.com (for subscriptions)
|
|
bug-lucid-emacs@lucid.com (for submissions)
|
|
Help:
|
|
alt.lucid-emacs.help +
|
|
help-lucid-emacs-request@lucid.com (for subscriptions)
|
|
help-lucid-emacs@lucid.com (for submissions)
|
|
|
|
122: Demacs -- GNU Emacs altered to run on MS-DOS on 386/486 machines
|
|
|
|
Authors: Manabu Higashida <manabu@sigmath.osaka-u.ac.jp>
|
|
HIRANO Satoshi <hirano@tkl.iis.u-tokyo.ac.jp>
|
|
Latest released version: 1.2.0
|
|
Anonymous FTP:
|
|
/utsun.s.u-tokyo.ac.jp:GNU/demacs/ (nearest to U.S.A.)
|
|
/ftp.sigmath.osaka-u.ac.jp:pub/Msdos/Demacs/
|
|
/wnoc-fuk.wide.ad.jp:pub/msdos/Demacs/
|
|
/ftp.3com.com:pub/gnu/msdos/demacs/
|
|
/mindseye.berkeley.edu:pub/kanji/demacs/
|
|
/ftp.hawaii.edu:pub/editors/demacs.tar.Z
|
|
/ftp.math.ksu.edu:pub/pc/demacs/
|
|
/wsmr-simtel20.army.mil:pd1:<msdos.demacs> {ange-ftp syntax?}
|
|
/ftp.uni-koeln.de:msdos/gnuprogs/dem120e.zip (executables, lisp-code, doc)
|
|
(PLEASE USE ONLY OUTSIDE WORKING HOURS!)
|
|
/ftp.uni-koeln.de:msdos/gnuprogs/dem120s.zip (sources, diffs)
|
|
(PLEASE USE ONLY OUTSIDE WORKING HOURS!)
|
|
/ftp.lysator.liu.se:pub/msdos/gnu/emacs/
|
|
/mizar.docs.uu.se:pub/gnu/demacs/
|
|
/iamsun.unibe.ch:PC/demacs/
|
|
/flop.informatik.tu-muenchen.de:outgoing/demacs.tar
|
|
/ftp.funet.fi:pub/gnu/emacs/demacs/
|
|
/garbo.uwasa.fi:pc/editor/dem120e.zip
|
|
/garbo.uwasa.fi:pc/editor/dem120s.zip
|
|
/ftp.win.tue.nl:pub/gnu/demacs/
|
|
/ugle.unit.no:pub/gnu/Demacs/
|
|
{Does anyone know which sites have the Kanji version?}
|
|
Via e-mail:
|
|
From garbo.uwasa.fi:
|
|
To: mailserv@garbo.uwasa.fi
|
|
Subject: garbo-request
|
|
Body: send pc/editor/dem120e.zip
|
|
send pc/editor/dem120s.zip
|
|
quit
|
|
Downloading:
|
|
EXEC-PC (Milwaukee, WI) 414-789-4210 (2400 bps)
|
|
in the Mahoney MS-DOS file area in its Editors/wordprocessors
|
|
library (F), named GNUEMACS.ZIP
|
|
Channel 1 (Cambridge, MA) 617-345-8873 (9600 bps)
|
|
in the New Uploads file area, named GNUEMACS.ZIP
|
|
NOTE: Use the -d option of [pk]unzip for all .zip archives. Some sites
|
|
have Demacs lharc'ed. If you need to find programs to unpack lharc and
|
|
zip format archives, Chris Dean <ctdean@talaris.com> points out that you
|
|
should see the comp.compression FAQ, available for FTP:
|
|
/rtfm.mit.edu:pub/usenet/comp.compression/
|
|
Mailing list:
|
|
NOTE: There is no mailing list for Demacs. However, there is a list
|
|
for DJGPP, which is the environment that Demacs runs in. Many
|
|
Demacs problems are actually issues with DJGPP.
|
|
DJGPP:
|
|
Subscriptions:
|
|
To: listserv@sun.soe.clarkson.edu
|
|
body: add <your-address> djgpp
|
|
or put `help' in the body.
|
|
If this fails, mail to djgpp-request@sun.soe.clarkson.edu.
|
|
Submissions:
|
|
djgpp@sun.soe.clarkson.edu
|
|
FAQ list:
|
|
Maintainer: Dave Steibel <steibel@cs.umbc.edu>
|
|
Anonymous FTP: algol.cs.umbc.edu:pub/demacs/demacs.faq
|
|
|
|
123: Freemacs -- a small Emacs for MS-DOS
|
|
|
|
Author: Russ Nelson <nelson@sun.soe.clarkson.edu>
|
|
Latest released version: 1.6a
|
|
Anonymous FTP:
|
|
/simtel20.army.mil:PD:<MSDOS.FREEMACS> {ange-ftp syntax?}
|
|
/grape.ecs.clarkson.edu:pub/msdos/freemacs/
|
|
Via e-mail:
|
|
To: archive-server@sun.soe.clarkson.edu
|
|
body: help
|
|
Via snail mail:
|
|
address: Russell Nelson, 11 Grant St., Potsdam, NY 13676
|
|
Send $15 copying fee, and specify preferred floppy disk format:
|
|
5.25", 360K, or 3.50", 720K
|
|
Mailing lists:
|
|
Subscriptions:
|
|
To: listserv@sun.soe.clarkson.edu
|
|
body: add <your-address> <name-of-list>
|
|
or put `help' in the body.
|
|
List distribution addresses:
|
|
freemacs-announce@sun.soe.clarkson.edu
|
|
freemacs-help@sun.soe.clarkson.edu
|
|
freemacs-workers@sun.soe.clarkson.edu (send bug reports here)
|
|
|
|
124: Patch -- program to apply "diffs" for updating files
|
|
|
|
Author: Larry Wall <lwall@netlabs.com>
|
|
Latest version: 2.0 patchlevel 12u8
|
|
(This is the version that supports the new unified diff format.)
|
|
Anonymous FTP:
|
|
/prep.ai.mit.edu:pub/gnu/patch-2.0.12u8.tar.Z
|
|
/prep.ai.mit.edu:pub/gnu/patch-2.0.12g8.tar.Z (GNU version)
|
|
|
|
|
|
|
|
GNU Emacs FAQ: Keybindings/Output
|
|
|
|
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, then type ESC to end the search.
|
|
|
|
A `+' in the 78th column means something was inserted on the line. A `-' means
|
|
something was deleted and a `!' means some combination of insertions and
|
|
deletions occurred.
|
|
|
|
Full instructions for getting the latest FAQ are in question 22. Also see the
|
|
`Introduction to news.answers' posting in the `news.answers' newsgroup, or send
|
|
e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
|
|
WAIS, or Prospero to rtfm.mit.edu.
|
|
|
|
|
|
|
|
Changing Key Bindings and Handling Key Binding Problems
|
|
|
|
125: How do I bind keys (including function keys) to commands?
|
|
|
|
1. Find out what character sequence is generated by the keystroke sequence
|
|
you wish to bind to a command. See question 129 for how to do this.
|
|
Keep in mind that the character sequences generated by a keystroke
|
|
sequence varies from one terminal to another. You may also get
|
|
different results depending on what type of machine you are running on
|
|
(see question 128). For example, these keystrokes may generate these
|
|
character sequences:
|
|
|
|
F1 ---> ESC [ 2 2 4 z
|
|
Shift-R10 ---> ESC O t
|
|
L7 ---> ESC [ 3 1 ~
|
|
Remove ---> C-@
|
|
|
|
2. Figure out what the Emacs Lisp syntax is for this character sequence.
|
|
Inside an Emacs Lisp string, RET, LFD, DEL, ESC, SPC, and TAB are
|
|
specified with `\r', `\n', `\C-?', `\e', ` ', and `\t'. C-x is
|
|
specified by `\C-x'. M-x is specified the same was as "ESC x".
|
|
(Control characters may also be specified as themselves, but I don't
|
|
recommend it.) An Emacs Lisp string begins and ends with the double
|
|
quote character, `"'. Here are some examples:
|
|
|
|
ESC [ D ---> "\e[D"
|
|
ESC [ 2 2 7 z ---> "\e[227z"
|
|
ESC [ 1 8 ~ ---> "\e[18~"
|
|
C-M-r ---> "\e\C-r"
|
|
|
|
3. If some prefix of the character sequence is already bound, you must
|
|
unbind it by binding it to `nil'. For example:
|
|
|
|
(global-set-key "\e[" nil)
|
|
|
|
4. Pick a command to bind your key sequence to. A command can be a
|
|
"symbol" with a function definition, or a "lambda list", or a string
|
|
(which is treated as a macro). For example:
|
|
|
|
(global-set-key "\e[D" 'backward-char)
|
|
(global-set-key "\e[227~" "\exgoto-line\r") ; macro
|
|
|
|
See `Key Bindings' and `Rebinding' in the online manual.
|
|
|
|
In Emacs 19 (including Lucid Emacs), you can bind function key F24 like
|
|
this:
|
|
|
|
(global-set-key 'f24 'some-command)
|
|
|
|
126: Why does Emacs say `Key sequence XXX uses invalid prefix characters'?
|
|
|
|
A prefix of the character sequence you were trying to bind was already
|
|
bound. Usually, the sequence is "ESC [", in which case you should
|
|
evaluate this form first:
|
|
|
|
(define-key esc-map "[" nil)
|
|
|
|
NOTE: By default, "ESC [" is bound to backward-paragraph, and if you do
|
|
this you will lose this key binding. For most people, this is not a
|
|
problem.
|
|
|
|
See question 125.
|
|
|
|
127: Why doesn't this [terminal or window-system setup] code work in my
|
|
.emacs file, but it works just fine after Emacs starts up?
|
|
|
|
This is because you're trying to do something in your .emacs file that
|
|
needs to be postponed until after the terminal/window-system setup code
|
|
is loaded. This is a result of the order in which things are done
|
|
during the startup of Emacs. For more details see question 135.
|
|
|
|
In order to postpone the execution of Emacs Lisp code until after the
|
|
terminal/window-system setup, set the value of the variable
|
|
term-setup-hook or window-setup-hook to be a function which does what
|
|
you want.
|
|
|
|
See etc/OPTIONS for a complete explanation of what Emacs does every time
|
|
it is started.
|
|
|
|
Here is a simple example of how to set term-setup-hook:
|
|
|
|
(setq term-setup-hook
|
|
(function
|
|
(lambda ()
|
|
(cond ((string-match "\\`vt220" (or (getenv "TERM") ""))
|
|
;; Make vt220's "Do" key behave like M-x:
|
|
(define-key CSI-map "29~" 'execute-extended-command))
|
|
))))
|
|
|
|
128: How do I use function keys under X Windows?
|
|
|
|
This depends on whether you are running Emacs inside a terminal emulator
|
|
window, or whether you are allowing Emacs to create its own X window.
|
|
You can tell which you are doing by noticing whether Emacs creates a new
|
|
window when you start it.
|
|
|
|
If you are running Emacs inside a terminal emulator window, then it
|
|
behaves exactly as it does on any other tty. In this case, for function
|
|
keys to be useful, they must generate character sequences that are sent
|
|
to the programs running inside the window as input. The `xterm' program
|
|
has two different sets of character sequences that it generates when
|
|
function keys are pressed, depending on the sunFunctionKeys X resource
|
|
and the -sf and +sf command line options. (To find out what these key
|
|
sequences are, see question 129.) In addition, with xterm,
|
|
you can override what key sequence a specific function key (or any other
|
|
key) will generate with the `translations' resource. This, for example:
|
|
|
|
XTerm.VT100.Translations: #override \
|
|
<KeyPress>F1: string(0x1b) string("[xyzzy")
|
|
|
|
makes the function key F1 generate the character sequence "ESC [xyzzy".
|
|
|
|
On the other hand, if Emacs is managing its own X window, the following
|
|
description applies. Emacs receives `KeyPress' events from the X server
|
|
when a key is pressed while the keyboard focus is in its window. The
|
|
KeyPress event contains an X "keysym" code, which is simply an arbitrary
|
|
number corresponding to the name of the keysym, and information on which
|
|
"modifiers" such as `control' and `shift' are active. For example, the
|
|
`Tab' keysym is 0xff09. (Generally, a key on the keyboard will generate a
|
|
keysym whose name is the same as the label on the key, ie. the `Tab' key
|
|
will normally generate the `Tab' keysym. This can be changed with the
|
|
xmodmap program.) Emacs recognizes all the keysyms that correspond to
|
|
standard ASCII characters and internally uses the ASCII character instead.
|
|
|
|
(WARNING: I am about to describe a gross, disgusting hack to you, have
|
|
your barf bag ready.)
|
|
|
|
When Emacs receives the X keysym of one of the arrow keys, it behaves
|
|
the same as if it had received a letter key with the control modifier
|
|
down as follows (this is hard-coded):
|
|
|
|
Up becomes C-p
|
|
Down becomes C-n
|
|
Right becomes C-f
|
|
Left becomes C-b
|
|
|
|
The way Emacs treats other keysyms depends on what kind of machine it was
|
|
compiled on. The type of the display machine is irrelevant! Function
|
|
keys are mapped internally to escape sequences, while other keys are
|
|
completely ignored.
|
|
|
|
1. If compiled on a Sun, Emacs recognizes these X keysyms that
|
|
are normally on a Sun keyboard:
|
|
|
|
F1 through F9
|
|
L1 through L10 (same as F11 through F20)
|
|
R1 through R15 (same as F21 through F35)
|
|
(The keys labelled R8, R10, R12, and R14 usually are mapped to the
|
|
X keysyms Up, Left, Right, and Down.)
|
|
Break (the `Alternate' key is given this keysym)
|
|
|
|
These keys work like Sun function keys. When Emacs receives the
|
|
keysym, it will internally use character sequences that look like "ESC
|
|
[ ### z", where ### is replaced by a number. The character sequences
|
|
are identical to those generated by Sun's keyboard under SunView. Any
|
|
function key not listed above generates "ESC [ - 1 z".
|
|
|
|
In order to use these key sequences, they should be bound to commands
|
|
using the standard key binding methods, just as if Emacs were running
|
|
on a regular terminal.
|
|
|
|
WARNING: F11 and L1 are the same keysym in X, as are F12 and L2, etc.
|
|
{Yes, this is stupid. Complain to the X consortium.}
|
|
|
|
2. If not compiled on a Sun, the function keys will appear to Emacs in a
|
|
way remarkably similar to the keys of a DEC LK201 keyboard (used on
|
|
some VT series terminals). These X keysyms will be recognized:
|
|
|
|
F1 through F20
|
|
Help (treated same as F15)
|
|
Menu (treated same as F16, is the LK201 `Do' key)
|
|
Find
|
|
Insert (LK201 `Insert Here' key)
|
|
Select
|
|
Prior (LK201 `Prev Screen' key *** ONLY IN 18.58 AND LATER ***)
|
|
Next (LK201 `Next Screen' key *** ONLY IN 18.58 AND LATER ***)
|
|
|
|
And finally, the LK201 key labelled `Remove' (or `Delete') is often
|
|
mapped to the Delete keysym which generates the DEL character (C-?)
|
|
instead of the key sequence given by the LK201 `Remove' key. It may
|
|
also be mapped to some other keysym, such as `_Remove', in which case
|
|
you can't use it from within Emacs at all.
|
|
|
|
Each function key will be internally converted to a character sequence
|
|
that looks like "ESC [ ## ~", where ## is replaced by a number. The
|
|
character sequences are identical to those generated by a LK201
|
|
keyboard. Any function key not listed above generates "ESC [ - 1 ~".
|
|
|
|
For the complete list of the numbers which are generated by the function
|
|
keys, look in the file src/x11term.c at the definitions of the function
|
|
stringFuncVal.
|
|
|
|
If you are running Emacs on a Sun machine, even if your X display is
|
|
running on a non-Sun machine (eg., an X terminal), you get the setup
|
|
described above for Suns. The determining factor is what type of
|
|
machine Emacs is running (was compiled) on, not what type of machine
|
|
your X display is on.
|
|
|
|
If you have function keys not listed above on your keyboard, you can use
|
|
`xmodmap' to change their keysym assignments to get keys that Emacs will
|
|
recognize, but that may screw up other programs.
|
|
|
|
X resources are not used by Emacs to affect the key sequences generated.
|
|
In particular, there are no X key "translations" for Emacs.
|
|
|
|
If you have function keys not listed above and you don't want to use
|
|
xmodmap to change their names, you might want to make a modification to
|
|
your Emacs. Johan Vromans <jv@mh.nl> has made available a patch for Emacs
|
|
that adds the x-rebind-key function of Epoch to Emacs 18.58. This allows
|
|
another layer of key rebinding before Emacs even sees the keys, and in
|
|
this layer you can rebind all of the keys and modifier combinations as
|
|
well.
|
|
|
|
Anonymous FTP:
|
|
/ftp.eu.net:gnu/emacs/FP-Xfun.Z
|
|
/ftp.urc.tue.nl:pub/tex/emacs/FP-Xfun
|
|
|
|
Johan Vromans explains what this buys for you:
|
|
|
|
After implementing this, all keyboard keys can be configured to send
|
|
user definable sequences, eg.,
|
|
|
|
(x-rebind-key "KP_F1" 0 "\033OP")
|
|
|
|
This will have the keypad key PF1 send the sequence "ESC O P", just like
|
|
an ordinary VT series terminal.
|
|
|
|
129: How do I tell what characters my function or arrow keys emit?
|
|
|
|
Use this function by Randal L. Schwartz <merlyn@iwarp.intel.com>:
|
|
|
|
(defun see-chars ()
|
|
"Displays characters typed, terminated by a 3-second timeout."
|
|
(interactive)
|
|
(let ((chars "")
|
|
(inhibit-quit t))
|
|
(message "Enter characters, terminated by 3-second timeout.")
|
|
(while (not (sit-for 3))
|
|
(setq chars (concat chars (list (read-char)))
|
|
quit-flag nil)) ; quit-flag maybe set by C-g
|
|
(message "Characters entered: %s" (key-description chars))))
|
|
|
|
Alternatively, use the "C-h l" view-lossage command, which will display
|
|
the last 100 characters Emacs has seen in its input stream. Kevin
|
|
Gallagher <kgallagh@digi.lonestar.org> suggests typing some unique string
|
|
like "wxyz", typing the key in question, then typing "C-h l". The
|
|
characters that appear between "wxyz" and "C-h l" were generated by the
|
|
key.
|
|
|
|
130: How do I set the X key "translations" for Emacs?
|
|
|
|
Sorry, you can't; there are no "translations" to be set. Emacs is not
|
|
written using the Xt library. The only way to affect the behavior of keys
|
|
within Emacs is through `xmodmap' (outside Emacs) or `define-key' (inside
|
|
Emacs).
|
|
|
|
131: 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 screws
|
|
up Emacs because it binds these characters to commands. Also, by default
|
|
Emacs will not honor them as flow control characters and may 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 what is 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. I don't know 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 <eirik@theory.tn.cornell.edu> 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 this form:
|
|
|
|
(set-input-mode nil t)
|
|
|
|
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 unclear. I don't know if this has any effect when used in
|
|
lisp/site-init.el when building Emacs; I've never tried that. {Can
|
|
someone tell me whether it works?} Putting things in users' .emacs files
|
|
has a number of problems.
|
|
|
|
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). A
|
|
possible solution is to initially disable C-s and C-q by setting
|
|
keyboard-translate-table in lisp/site-init.el, either with swap-keys
|
|
(see question 136) or with the following form:
|
|
|
|
;; by Roger Crew <crew@cs.stanford.edu>:
|
|
(setq keyboard-translate-table
|
|
"\C-@\C-a\C-b\C-c\C-d\C-e\C-f\C-g\C-h\C-i\C-j\C-k\C-l\C-m\C-n\C-o\C-p\C-^\C-r\C-\\\C-t\C-u\C-v\C-w\C-x\C-y\C-z\C-[\C-s\C-]\C-q\C-_")
|
|
|
|
This will at least prevent Emacs from being confused by the flow control
|
|
characters, even if lisp/default.el cannot be loaded. Then, in
|
|
lisp/default.el, enable XON/XOFF flow control with set-input-mode.
|
|
|
|
For further discussion of this issue, read the file PROBLEMS in the
|
|
Emacs distribution.
|
|
|
|
132: How do I use commands bound to C-s and C-q (or any key) if these keys
|
|
are filtered out?
|
|
|
|
I suggest swapping C-s with C-\ and C-q with C-^:
|
|
|
|
(swap-keys ?\C-s ?\C-\\)
|
|
(swap-keys ?\C-q ?\C-^)
|
|
|
|
See question 136 for the implementation of swap-keys. This method
|
|
has the advantage that it simultaneously swaps the characters everywhere
|
|
throughout Emacs, while just switching the keybindings will miss important
|
|
places where the character codes are stored (eg., the search-repeat-char
|
|
variable, major mode keymaps, etc.).
|
|
|
|
To do this for an entire site, you may want to swap the keys in
|
|
lisp/default.el. If only some of your users are connecting through
|
|
XON/XOFF flow-controlled connections, you will want to do this
|
|
conditionally. I suggest pre-swapping them in lisp/site-init.el when
|
|
Emacs is built, and then in lisp/default.el, if it is determined to be
|
|
safe, they can be reenabled (being careful not to screw up any other key
|
|
mappings users might have established using keyboard-translate-table).
|
|
See question 131 for an easy way to pre-swap these keys.
|
|
|
|
WARNING: 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.
|
|
|
|
133: Why does the `BackSpace' key invoke help?
|
|
|
|
The BackSpace key (on every keyboard I've used) 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 typed. This can be solved by making DEL be the command for
|
|
deleting the previous character outside of Emacs. This command will do
|
|
this on many Unix systems:
|
|
|
|
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.
|
|
|
|
* Under X Windows, the easiest solution is to change the BackSpace key
|
|
into a Delete key like this:
|
|
|
|
xmodmap -e "keysym BackSpace = Delete"
|
|
|
|
* Some terminals (eg., 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:
|
|
|
|
(swap-keys ?\C-h ?\C-?)
|
|
|
|
See question 136 for the implementation of swap-keys.
|
|
|
|
* Another approach is to switch keybindings and put help on "C-x h"
|
|
instead:
|
|
|
|
(global-set-key "\C-h" 'delete-backward-char)
|
|
(global-set-key "\C-xh" 'help-command) ; override mark-whole-buffer
|
|
|
|
Other popular key bindings for help are M-? and "C-x ?".
|
|
|
|
WARNING: Don't try to bind DEL to help-command, because there are many
|
|
modes that have local bindings of DEL that will interfere.
|
|
|
|
134: Why doesn't Emacs look at the stty settings for Backspace vs. Delete?
|
|
|
|
Good question!
|
|
|
|
135: Why don't the arrow keys work?
|
|
|
|
When Emacs starts up, it doesn't know anything about arrow keys at all
|
|
(except when running under X, see question 128). During the process of
|
|
starting up, Emacs will load a terminal-specific initialization file for
|
|
your terminal type (as determined by the environment variable TERM), if
|
|
one exists. This file has the responsibility for enabling the arrow keys.
|
|
|
|
There are several things that can go wrong:
|
|
|
|
1. There is no initialization file for your terminal.
|
|
|
|
You can determine this by looking in the lisp/term directory. If your
|
|
terminal type (as determined by the TERM environment variable) is
|
|
xxx-yy-z, then the first of these files in the lisp/term directory will
|
|
be loaded as the terminal-specific initialization file: xxx-yy-z.el,
|
|
xxx-yy.el, or xxx.el.
|
|
|
|
There are two major cases of this problem:
|
|
|
|
* Your terminal type is very similar to one that has an init file.
|
|
|
|
In this case, there are several techniques suggested by Colin Jensen
|
|
<cjensen@ampex.com>, Ben Liblit <Liblit@cs.psu.edu>, and Marc
|
|
Auslander <marc@watson.ibm.com>:
|
|
|
|
A. Add a symbolic link in lisp/term for your terminal type that
|
|
points to the similar type. For example, you could make VT102
|
|
terminals work with this command:
|
|
|
|
ln -s vt100.el vt102.el
|
|
|
|
This fixes things for everyone on the system who uses the terminal
|
|
type.
|
|
|
|
B. If you can't do the solution in part A, you can add code to your
|
|
term-setup-hook that loads the correct file like this:
|
|
|
|
(setq term-setup-hook
|
|
(function
|
|
(lambda ()
|
|
(cond ((equal "vt102" (or (getenv "TERM") ""))
|
|
(load (concat term-file-prefix "vt100")))
|
|
(;; Code for other terminal types goes here ...
|
|
)))))
|
|
|
|
C. If you use `tset' to set your TERM environment variable when you
|
|
login, you can use the `-m' switch to tell tset to use a terminal
|
|
type known by Emacs instead of another similar one. For example,
|
|
specifying this:
|
|
|
|
tset ... -m 'dec-vt220:vt220' ...
|
|
|
|
will make tset say you are on a `vt220' instead of a `dec-vt220'.
|
|
|
|
D. Interactively, you can type "M-x load-library RET term/vt100" to
|
|
load the terminal-specific initialization files for VT100
|
|
terminals.
|
|
|
|
* Your terminal type is not similar to one that has an init file.
|
|
|
|
One can be made for your terminal, or you can just add code to your
|
|
own .emacs to handle this problem for yourself. For example, if your
|
|
terminal's arrow keys send these character sequences:
|
|
|
|
Up: ESC [ A
|
|
Down: ESC [ B
|
|
Right: ESC [ C
|
|
Left: ESC [ D
|
|
|
|
then you can bind these keys to the appropriate commands with code in
|
|
your .emacs like this:
|
|
|
|
(setq term-setup-hook
|
|
(function
|
|
(lambda ()
|
|
(cond ((string-match "\\`xyzzy" (or (getenv "TERM") ""))
|
|
;; First, must unmap the binding for left bracket
|
|
(or (keymapp (lookup-key global-map "\e\["))
|
|
(define-key global-map "\e\[" nil))
|
|
;; Enable terminal type xyzzy's arrow keys:
|
|
(define-key global-map "\e\[A" 'previous-line)
|
|
(define-key global-map "\e\[B" 'next-line)
|
|
(define-key global-map "\e\[C" 'forward-char)
|
|
(define-key global-map "\e\[D" 'backward-char))
|
|
((string-match "\\`abcde" (or (getenv "TERM") ""))
|
|
;; Do something different for terminal type abcde
|
|
;; .....
|
|
)))))
|
|
|
|
NOTE: You may have to restart Emacs to get changes to take effect.
|
|
|
|
NOTE: Your arrow keys may send sequences beginning with "ESC O" when
|
|
Emacs is running, even if they send sequences beginning with "ESC [" at
|
|
all other times. This is because Emacs uses any command there may be
|
|
in your terminal's termcap entry for putting the terminal into
|
|
"Application Keypad Mode". Just map these sequences the same way as
|
|
above.
|
|
|
|
The next two cases are problems even if there is a initialization file for
|
|
your terminal type.
|
|
|
|
2. The initialization file for your terminal doesn't bind arrow keys.
|
|
|
|
If your terminal type is `xterm', you will have to bind the arrow keys
|
|
as in part 1 above, since the xterm.el file doesn't do anything useful.
|
|
There may be other terminal types with the same problem.
|
|
|
|
3. Your terminal's arrow keys send individual control characters.
|
|
|
|
For example, the arrow keys on an ADM-3 send C-h, C-j, C-k, and C-l.
|
|
|
|
There is not much Emacs can do in this situation, since all the control
|
|
characters except for C-^ and C-\ are already used as Emacs commands.
|
|
It may be possible to convince the terminal to send something else when
|
|
you press the arrow keys; it is worth investigating.
|
|
|
|
You have to make the hard choices of how to rebind keys to commands to
|
|
make things work the way you want. Another alternative is to start
|
|
learning the standard Emacs keybindings for moving point around: C-b,
|
|
C-f, C-p, and C-n. Personally, I no longer use the arrow keys when
|
|
editing because I have switched keyboards so many times.
|
|
|
|
4. Your terminal's arrow keys send sequences beginning with "ESC [".
|
|
|
|
Due to an extremely poor design decision (ie., these sequences are ANSI
|
|
standard), none of the the terminal-specific initialization files that
|
|
are distributed with Emacs will bind these character sequences to the
|
|
appropriate commands by default. (This also applies to any other
|
|
function keys which generate character sequences starting with "ESC
|
|
[".) This is because it was deemed far more important to preserve the
|
|
binding of M-[ to the backward-paragraph command. It appears that this
|
|
will change in Emacs 19.
|
|
|
|
Some of the terminal-specific initialization files that come with Emacs
|
|
provide a command enable-arrow-keys that will fix this problem. To get
|
|
this automatically invoked, put this in your .emacs:
|
|
|
|
(setq term-setup-hook
|
|
(function
|
|
(lambda ()
|
|
(if (fboundp 'enable-arrow-keys) (enable-arrow-keys)))))
|
|
|
|
We put this in our lisp/default.el file, so users don't have to worry
|
|
about it:
|
|
|
|
;; don't override a user's term-setup-hook
|
|
(or term-setup-hook
|
|
(setq term-setup-hook
|
|
(function
|
|
(lambda ()
|
|
(and (fboundp 'enable-arrow-keys)
|
|
;; don't override a user key mapping
|
|
(eq 'backward-paragraph (lookup-key esc-map "["))
|
|
(enable-arrow-keys))))))
|
|
|
|
If your terminal type is `sun', you should put this in your .emacs
|
|
instead (or in addition to the above):
|
|
|
|
(setq sun-esc-bracket t)
|
|
|
|
It is possible that the terminal-specific initialization file for your
|
|
terminal type was written locally and does not follow the rule
|
|
mentioned above. In this case you may need to inspect it to find out
|
|
how to enable the arrow keys. (Actually, if it was written locally, it
|
|
probably enables the arrow keys by default.)
|
|
|
|
136: How do I "swap" two keys?
|
|
|
|
When Emacs receives a character, you can make Emacs behave as though it
|
|
received another character by setting the value of
|
|
keyboard-translate-table. The following Emacs Lisp will do this for you,
|
|
allowing you to "swap" keys. After arranging for this Lisp to be
|
|
evaluated by Emacs, you can evaluate `(swap-keys ?A ?B)' to swap A and B.
|
|
|
|
(defun swap-keys (key1 key2)
|
|
"Swap keys KEY1 and KEY2 using map-key."
|
|
(map-key key1 key2)
|
|
(map-key key2 key1))
|
|
|
|
(defun map-key (from to)
|
|
"Make key FROM behave as though key TO was typed instead."
|
|
(setq keyboard-translate-table
|
|
(concat keyboard-translate-table
|
|
(let* ((i (length keyboard-translate-table))
|
|
(j from)
|
|
(k i)
|
|
(str (make-string (max 0 (- j (1- i))) ?X)))
|
|
(while (<= k j)
|
|
(aset str (- k i) k)
|
|
(setq k (1+ k)))
|
|
str)))
|
|
(aset keyboard-translate-table from to)
|
|
(let ((i (1- (length keyboard-translate-table))))
|
|
(while (and (>= i 0) (eq (aref keyboard-translate-table i) i))
|
|
(setq i (1- i)))
|
|
(setq keyboard-translate-table
|
|
(if (eq i -1)
|
|
nil
|
|
(substring keyboard-translate-table 0 (1+ i))))))
|
|
|
|
NOTE: You must evaluate the definition of these functions before calling
|
|
them! For example, list the function definitions before their use in your
|
|
.emacs file.
|
|
|
|
NOTE: These functions take two numbers as arguments. The example above,
|
|
`(swap-keys ?A ?B)' is actually `(swap-keys 65 66)', because `?A' is
|
|
merely notation for 65, the ASCII value of `A'.
|
|
|
|
NOTE: These functions only work for single characters. You cannot swap
|
|
two multi-character sequences.
|
|
|
|
137: How do I produce C-XXX with my keyboard?
|
|
|
|
For C-@ and C-^, often you can just type Control-2 and Control-6. For
|
|
C-_, you may have to hold down the shift key, typing Control-Shift-Hyphen.
|
|
C-@ can often be generated by typing Control-Space. C-@ is often called
|
|
the NUL character, and has ASCII value 0. C-_ can often be generated by
|
|
typing Control-7 or Control-/. C-? (aka DEL) may be generated by typing
|
|
Shift-BackSpace or Control-BackSpace or a key labelled Delete or Del.
|
|
|
|
Try Control with all of the digits on your keyboard to see what gets
|
|
generated.
|
|
|
|
138: What if I don't have a Meta key?
|
|
|
|
Instead of typing M-a, you can type "ESC a" instead. In fact, Emacs
|
|
converts M-a internally into "ESC a" anyway (depending on the value of
|
|
meta-prefix-char).
|
|
|
|
139: What if I don't have an Escape key?
|
|
|
|
Type C-[ instead. This should send ASCII code 27 just like an Escape
|
|
key would. Try also C-;.
|
|
|
|
140: How do I type DEL on PC terminal emulators?
|
|
|
|
Some IBM PC compatibles do not have a key labeled `Del' or `Delete' {is
|
|
this true?}. Those that do generally have it in an inconvenient location.
|
|
(Also, in some terminal emulators, the `Del' key does not transmit DEL.)
|
|
The result is the standard "BackSpace invoking help" problem (see question
|
|
133).
|
|
|
|
The usual solution, suggested by Michael Covington
|
|
<mcovingt@aisun1.ai.uga.edu>, is to somehow tell the terminal emulator
|
|
program that BackSpace should transmit DEL. Read the program's manual.
|
|
Shift-BackSpace or Control-BackSpace may send DEL. The `Del' key may only
|
|
send DEL if the NumLock key hasn't been pressed.
|
|
|
|
141: 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 (this is
|
|
what I do).
|
|
|
|
142: How do I bind a combination of modifier key and function key?
|
|
|
|
Unless you're using Emacs under emacstool (or xvetool?), have a working
|
|
version of x-rebind-key (see question 128), or are using Emacs 19 (Lucid
|
|
Emacs), you can't do this with Emacs alone.
|
|
|
|
If you are using emacstool, Emacs sees different character sequences for
|
|
the combination of a modifier and a function key from what it sees for the
|
|
function key alone. See etc/emacstool.1 for more information. Since
|
|
Emacs sees different character sequences, you can bind these different
|
|
sequences to different commands.
|
|
|
|
If you are running Emacs inside a terminal emulator window like xterm, you
|
|
can modify its translation tables to make it generate different character
|
|
sequences for the combination of a modifier and a function key. For
|
|
example, this X resource setting:
|
|
|
|
XTerm.VT100.Translations: #override \
|
|
Shift<KeyPress>F1: string(0x1b) string("[xyzzy")
|
|
|
|
makes Shift-F1 generate the character sequence "ESC [ xyzzy". You can
|
|
bind these character sequences in Emacs as normal. Nick Ruprecht
|
|
<ruprecht@informatik.uni-freiburg.de> has written an extensive X
|
|
translation mapping for xterm that does this. {Does this have an FTP
|
|
site?}
|
|
|
|
If you have x-rebind-key, you can have any arbitrary combination of
|
|
modifiers with a key replaced by any sequence of "normal" characters. For
|
|
example, this makes Shift-Return behave as though you had typed "C-x C-e"
|
|
(example from Jerry Graves):
|
|
|
|
(x-rebind-key "Return" 'shift "\C-x\C-e")
|
|
|
|
In Emacs 19 (Lucid Emacs), you can bind Meta-Left-Arrow like this (example
|
|
from Jamie Zawinski):
|
|
|
|
(global-set-key '(meta left) 'backward-word)
|
|
|
|
With the last two methods, use `xmodmap' and `xev' to discover the keysym
|
|
and modifier names.
|
|
|
|
143: 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 X11R4: 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<KeyPress>: string(0x1b) insert()
|
|
|
|
You might have to replace `Meta' with `Alt'.
|
|
|
|
144: Why doesn't my ExtendChar key work as a Meta key under HP-UX 8.0?
|
|
|
|
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.
|
|
|
|
145: Where can I get key bindings to make Emacs emulate WordStar?
|
|
|
|
There is a package `wordstar' by Jim Frost <jimf@saber.com> and
|
|
`ws-mode.el' by Juergen Nickelsen <nickel@cs.tu-berlin.de>. Check in the
|
|
Emacs Lisp Archive (see question 89).
|
|
|
|
146: Where can I get an XEDIT emulator for Emacs?
|
|
|
|
This question comes up once every couple of months. I have never seen a
|
|
positive reply, so I presume no one has ever written one.
|
|
|
|
|
|
|
|
Using Emacs with Alternate Character Sets
|
|
|
|
147: How do I make Emacs display 8-bit characters?
|
|
|
|
There is a patch called the `8-bit ctl-arrow patch' that allows Emacs to
|
|
display characters with codes from 128 to 255. {The original appears to
|
|
have been by Kenneth Cline <cline@proof.ergo.cs.cmu.edu>.} Partially based
|
|
on Johan Widen's earlier work, Johan Vromans <jv@mh.nl> has updated this
|
|
patch for Emacs 18.58 along with some other 8-bit improvements.
|
|
|
|
Anonymous FTP:
|
|
/ftp.eu.net:gnu/emacs/FP-EightBit.Z
|
|
/ftp.urc.tue.nl:/pub/tex/emacs/FP-EightBit
|
|
/cs.purdue.edu:pub/ygz/cemacs.tar.Z:cemacs/8bit-patch-18.57
|
|
/sics.se:archive/emacs-18.55-8bit-diff
|
|
/laas.laas.fr:pub/emacs/patch-8bit-18.55
|
|
/laas.laas.fr:pub/emacs/patch-8bit-18.57
|
|
|
|
Via e-mail:
|
|
To: mail-server@sics.se
|
|
body: send emacs-18.55-8bit-diff
|
|
|
|
Anders Edenbrandt <anderse@dna.lth.se> has produced a more comprehensive
|
|
patch for Emacs 18.59 that allows for 8-bit input and output.
|
|
|
|
Anonymous FTP:
|
|
/ftp.efd.lth.se:pub/gnu/emacs_8-bit.patch
|
|
|
|
In the words of the author:
|
|
|
|
With these patches, Emacs becomes fully 8-bit operational. There is
|
|
support for displaying 8-bit characters, as well as for entering such
|
|
characters from the keyboard. In addition, upcase/lowcase translation
|
|
is supported, accented characters are recognized as "letters" (important
|
|
when doing 'forward-word', for example), and text with 8-bit characters
|
|
can be sorted correctly.
|
|
|
|
A Meta-shift key can still be used, provided that you run in an
|
|
environment where it is possible to distinguish between a character
|
|
entered using the Meta-shift key and one entered directly. The diffs
|
|
include patches to make this work under SunView (with emacstool) as
|
|
well as under X. If you can't use a Meta-shift key, you have to enter
|
|
Meta-commands with the ESC-prefix.
|
|
|
|
The most comprehensive patches for 8-bit output are by Howard Gayle
|
|
(originally for Emacs 18.55. These patches allow displaying any arbitrary
|
|
string for a given 8-bit character (except TAB and C-j). Also supported
|
|
is defining the sorting order and the uppercase and lowercase
|
|
translations. It is reported that the 8-bit character support in Emacs 19
|
|
is largely based on these patches. Thomas Bellman
|
|
<Bellman@lysator.liu.se> has updated these patches for Emacs 18.59.
|
|
|
|
Anonymous FTP:
|
|
/sics.se:archive/emacs-gayle.tar.Z (patches for 18.55)
|
|
/ftp.lysator.liu.se:pub/emacs/gayle-18.58.diff.tar.Z (patches)
|
|
/ftp.lysator.liu.se:pub/emacs/emacs-18.59-gayle.tar.Z (patched Emacs)
|
|
|
|
Epoch's 8-bit character support is based on Anders Edenbrandt's patches.
|
|
Lucid Emacs has the ctl-arrow patch installed. Nemacs displays 8-bit
|
|
characters, and it may be useful for displaying the 8-bit ISO-8859
|
|
alphabet, but I don't know for sure (see question 149).
|
|
|
|
148: How do I input 8-bit characters?
|
|
|
|
Minor modes for ISO Latin-1 that allow one to easily input this character
|
|
set have been written by several people. Such modes have been written by
|
|
Matthieu Herrb <matthieu@laas.fr> (laas.laas.fr:pub/emacs/iso-latin-1.el),
|
|
Johan Vromans <jv@mh.nl> {FTP site??}, and Marc Shapiro
|
|
<shapiro@sor.inria.fr> {FTP site??}.
|
|
|
|
These approaches differ from the one taken by Anders Edenbrandt in that
|
|
his method uses direct 8-bit input, while these methods use a compose
|
|
sequence for 8-bit characters. {I have heard conflicting reports on
|
|
whether this results in losing the Meta key. Perhaps this depends on
|
|
whether Emacs is running under X. Can someone resolve this?}
|
|
|
|
Karl Heuer <karl@haddock.ima.isc.com> is said to have a patch to allow
|
|
8-bit input. Georg-Wilhelm Koltermann <gwk@crmunich0.cray.com> also has a
|
|
patch for either 18.57 or 18.58 that allows 8-bit input.
|
|
|
|
Epoch comes with a patch that allows it to input 8-bit characters, but it
|
|
is not enabled by default. {Is this right?}
|
|
|
|
Jamie Zawinski says:
|
|
|
|
Lucid GNU Emacs allows the input of any ISO-8859/1 keysyms that your
|
|
keyboard generates (see xmodmap), and contains a package that implements
|
|
a DEC/OpenWindows-like "Compose" key for systems which don't have one.
|
|
|
|
149: Where can I get an Emacs that can handle kanji characters?
|
|
|
|
Nemacs 3.3.2 (Nihongo GNU Emacs) is a modified version of GNU Emacs 18.55
|
|
that handles kanji characters. It is available via anonymous FTP:
|
|
|
|
/crl.nmsu.edu:pub/misc/nemacs-3.3.2.tar.Z
|
|
/miki.cs.titech.ac.jp:JAPAN/nemacs/nemacs-3.3.2.tar.Z
|
|
|
|
You might also need files for "wnn", a kanji input method
|
|
(wnn-4.0.3{-README,.tar.Z} {on which machine?}). You need a terminal (or
|
|
terminal emulator) that can display text encoded in JIS, Shift-JIS, or EUC
|
|
(Extended Unix Code), or the ability to run Nemacs as a direct X Window
|
|
client.
|
|
|
|
150: Where can I get an Emacs that can handle Chinese?
|
|
|
|
`cemacs' by Stephen G. Simpson <simpson@math.psu.edu> is a patch to Emacs
|
|
18.57 (the ctl-arrow patch) and some Emacs Lisp code that combined with
|
|
Cxterm allows using Chinese characters. It is available via anonymous
|
|
FTP:
|
|
|
|
/crl.nmsu.edu:pub/chinese/cemacs.tar.Z
|
|
/cs.purdue.edu:pub/ygz/cemacs.tar.Z
|
|
|
|
Cxterm is available from the same place:
|
|
|
|
/cs.purdue.edu:pub/ygz/cxterm-11.5.1.tar.Z
|
|
|
|
151: Where is an Emacs that can handle Semitic (right-to-left) alphabets?
|
|
|
|
Joel M. Hoffman <joel@wam.umd.edu> writes:
|
|
|
|
A couple of years ago a wrote a hebrew.el file that allows right-to-left
|
|
editing of Hebrew. I relied on the hardware to display the Hebrew
|
|
letters, given the right codes, but not for any right-to-left support;
|
|
the hardware also doesn't have to send any specific char. codes. Emacs
|
|
keeps track of when the user is typing Hebrew vs. English. (The VT-*
|
|
terminals in Israel contain built-in support for Hebrew.)
|
|
|
|
To get it to work I had to modify only a few lines of GNU Emacs's source
|
|
code --- just enough to make it 8-bit clean.
|
|
|
|
[and in a separate message:]
|
|
|
|
It doesn't produce time-order ["sefer" format] (I wouldn't recommend
|
|
trying that with emacs, because converting time-order to screen-order
|
|
with arbitrarily long lines is a bit tricky), but I also concocted a
|
|
quick filter to convert screen-order into time-order. I'll be happy to
|
|
send you the requisite files if you want them. If you're using it for
|
|
anything large, however, you'll want something that works better.
|
|
|
|
Joel Hoffman has also written a "bi-directional bi-lingual Emacs-like"
|
|
editor for MS-DOS named Ibelbe (Itty Bitty Emacs-Like Bidirectional
|
|
Editor). Ibelbe is written in Turbo Pascal and comes with source code.
|
|
Here is the description:
|
|
|
|
Ibelbe looks like emacs (it even has a minibuffer and filename
|
|
completion), and fully supports both right-to-left and left-to-right
|
|
editing. Other than an EGA monitor or better, no special hardware is
|
|
required. You will need an EGA Hebrew font to use Ibelbe with Hebrew.
|
|
|
|
Anonymous FTP:
|
|
/israel.nysernet.org:israel/msdos/ibelbe.zip
|
|
/israel.nysernet.org:israel/msdos/hebfont.zip
|
|
|
|
Joseph Friedman <yossi@deshaw.com, yossi@Neon.Stanford.EDU> has written
|
|
patches for Emacs 18.55 and 18.58 that provide Semitic language support
|
|
under X Windows.
|
|
|
|
Warren Burstein <warren@itex.jct.ac.il> says he has mapped 7-bit keys by
|
|
modifying self-insert-command "for Hebrew input on 7-bit keyboards".
|
|
|
|
A good suggestion is to query archie for files named with `hebrew'.
|
|
|
|
GNU Emacs FAQ: Mail and News
|
|
|
|
This portion of the GNU Emacs FAQ list is cross-posted to `gnu.emacs.gnus'
|
|
because many of the questions herein deal with GNUS. See `gnu.emacs.help' for
|
|
the rest of the FAQ list.
|
|
|
|
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, then type ESC to end the search.
|
|
|
|
A `+' in the 78th column means something was inserted on the line. A `-' means
|
|
something was deleted and a `!' means some combination of insertions and
|
|
deletions occurred.
|
|
|
|
Full instructions for getting the latest FAQ are in question 22. Also see the
|
|
`Introduction to news.answers' posting in the `news.answers' newsgroup, or send
|
|
e-mail to `mail-server@rtfm.mit.edu' with `help' on a body line, or use FTP,
|
|
WAIS, or Prospero to rtfm.mit.edu.
|
|
|
|
|
|
|
|
Mail and News
|
|
|
|
152: How do I change the included text prefix in mail/news followups?
|
|
|
|
Many people want Emacs to prefix included text with something like ` > '
|
|
instead of with three spaces. One way is to change the code of the
|
|
function `mail-yank-original' in lisp/sendmail.el that prefixes with
|
|
spaces. A more flexible solution is to use Supercite, which provides wide
|
|
configurability in how you format included text in replies. See question
|
|
107. Both of these solutions work for RMAIL and GNUS.
|
|
|
|
A related problem is how to prevent Emacs from including various headers
|
|
of the replied-to message. For this, you should set the value of
|
|
mail-yank-ignored-headers, which takes a regexp value.
|
|
|
|
153: How do I save a copy of outgoing mail?
|
|
|
|
Two methods:
|
|
|
|
1. (setq mail-self-blind t) will result in a `BCC:' header line with your
|
|
address being added to mail composition buffers. This will cause the
|
|
mail system to send a copy of the mail back to you.
|
|
|
|
2. (setq mail-archive-file-name (expand-file-name "~/outgoing")) will
|
|
result in an `FCC:' header line with the pathname of ~/outgoing being
|
|
added to mail composition buffers. When you send the mail, Emacs will
|
|
save a copy of the mail in the file ~/outgoing and then strip off the
|
|
`FCC:' line before actually sending.
|
|
|
|
WARNING: There is a bug in Emacs 18.58 that prevents mail readers such
|
|
as RMAIL from reading the saved mail messages individually. See
|
|
question 155.
|
|
|
|
WARNING: If you are visiting the file ~/outgoing at the time you send
|
|
the mail, this can cause a variety of horrible problems. Jamie
|
|
Zawinski has written a solution for this.
|
|
|
|
It does not work to put `set record filename' in the .mailrc file.
|
|
|
|
154: 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 <wks@xpnsv.lwyrs.com>
|
|
|
|
However, you do not need to separate addresses with commas in your
|
|
.mailrc file.
|
|
|
|
WARNING: Emacs breaks up aliases in the .mailrc file into multiple
|
|
addresses both on commas and on whitespace, regardless of any use of
|
|
quotes. This is probably a bug. You can get around this by directly
|
|
setting the value of mail-aliases.
|
|
|
|
* 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-ESC (build-mail-aliases) RET" to make Emacs reread .mailrc.
|
|
(You have to include the parentheses where they are shown!)
|
|
|
|
* Emacs does not interpret vendor-specific additions to the format of the
|
|
.mailrc file such as the `source' command. It also ignores any `set'
|
|
commands. The only commands it looks at are `alias' and `group'
|
|
commands.
|
|
|
|
155: Why does RMAIL think all my saved messages are one big message?
|
|
|
|
There is a bug for FCC-ed messages in Emacs 18.58 where it adds a timezone
|
|
on the "From " line after the year instead of before the year. (Before it
|
|
didn't add the timezone at all.) This is incompatible with the standard
|
|
format for the "From " line, and RMAIL in particular can no longer
|
|
distinguish between the messages. Karl Berry <karl@cs.umb.edu>, Felix Lee
|
|
<flee@cs.psu.edu>, Nick Gianniotis <nico@japan.sbi.com> and many
|
|
others have all posted patches for this. Karl's is the simplest and just
|
|
stops Emacs from adding the timezone:
|
|
|
|
>*** ./ORIG/sendmail.el Tue Jan 28 16:22:56 1992
|
|
>--- ./sendmail.el Thu May 14 18:23:48 1992
|
|
>***************
|
|
>*** 285,287 ****
|
|
> (insert "\nFrom " (user-login-name) " "
|
|
>! (current-time-string) " " timezone "\n")
|
|
> (insert-buffer-substring rmailbuf)
|
|
>--- 285,287 ----
|
|
> (insert "\nFrom " (user-login-name) " "
|
|
>! (current-time-string) "\n")
|
|
> (insert-buffer-substring rmailbuf)
|
|
|
|
156: How can I sort the messages in my RMAIL folder?
|
|
|
|
Use rmailsort.el by Masanobu Umeda.
|
|
|
|
157: 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.
|
|
|
|
158: How do I recover my mail files after RMAIL munges their format?
|
|
|
|
Users who just want to try RMAIL out to see how it works end up trapped
|
|
using it because saved mail in their `mbox' file has been converted into
|
|
an incompatible format (BABYL) that only RMAIL understands. RMAIL
|
|
provides no obvious way to reverse this transformation. Kyle Jones has
|
|
aptly named this "the great Emacs Mail Eating Monster". To convert a mail
|
|
file back to standard Unix format, there are several methods:
|
|
|
|
* Use the rmail-output ("C-o") command within RMAIL on each message in the
|
|
file. First use M-x rmail or M-x rmail-input to visit the RMAIL file in
|
|
Rmail mode. Type "1 j" to go to the first message. Use the C-o command
|
|
to output the message to a Unix format file. Type "n" to go to the next
|
|
message. Repeat.
|
|
|
|
* If the file contains hundreds of messages, you may not want to repeat
|
|
this for all of them. Instead of the above, after getting to the first
|
|
message type this (where "mbox" is the file you want to put the messages
|
|
in):
|
|
|
|
C-x ( C-o mbox RET M-s ^From: RET M-0 C-x )
|
|
|
|
(The rmail-search command ("M-s") is used instead of just "n" because it
|
|
is the only command which will cause an error when it reaches the last
|
|
message in the file, which is necessary to terminate the keyboard macro.
|
|
This will fail if there are messages in the file that don't have a
|
|
`From:' header. This assumes rmail-delete-after-output is nil.)
|
|
|
|
It is wise to save a copy of the RMAIL file first, in case you make a
|
|
mistake.
|
|
|
|
* There are software packages available for converting files or even
|
|
entire directories of BABYL files to standard Unix format. These are
|
|
helpful in this situation, but are intended mainly for people who have
|
|
used RMAIL for a long time and are converting to some other mail reader.
|
|
Lookup `rmail', `vm', and `babyl' in the Emacs Lisp Archive (see
|
|
question 89).
|
|
|
|
You may wish to disable RMAIL to avoid accidentally destroying your mbox
|
|
file (I have this in my .emacs):
|
|
|
|
(put 'rmail 'disabled t) ; avoid mbox destruction
|
|
|
|
159: How do I make Emacs automatically start my mail/news reader?
|
|
|
|
Example:
|
|
|
|
emacs -f gnus
|
|
|
|
Also:
|
|
|
|
alias gnus 'emacs -f 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.
|
|
|
|
160: How do I read news under Emacs?
|
|
|
|
There are at least three news reading packages that operate inside Emacs.
|
|
`rnews' comes with Emacs. GNUS and Gnews come separately. rnews will
|
|
be replaced by GNUS in Emacs 19.
|
|
|
|
rnews works only with a local news spool directory. Both GNUS and Gnews
|
|
handle reading news remotely via NNTP in addition to reading from a local
|
|
news spool. GNUS supports reading mail stored in MH folders or articles
|
|
saved by GNUS.
|
|
|
|
Gnews is styled after `rn' and seems to work like RMAIL. GNUS feels more
|
|
like VM. People have complained that GNUS uses a lot of CPU time (it
|
|
does). Some people have complained that Gnews is slower than GNUS.
|
|
|
|
For more information about GNUS, see question 108.
|
|
|
|
Gnews was written by Matthew P. Wiener <weemba@libra.wistar.upenn.edu>.
|
|
The latest version seems to be 2.0, posted October 3, 1988. Matthew
|
|
posted some fixes on October 26, 1988. Gnews does not appear to have been
|
|
supported after this date. In particular, it has been reported that Gnews
|
|
does not work with Emacs 18.57. There is a newsgroup for Gnews called
|
|
gnu.emacs.gnews.
|
|
|
|
161: Why does `rnews' say "No News is good news" when there is news?
|
|
|
|
rnews doesn't speak NNTP. You may need to use GNUS or Gnews.
|
|
|
|
162: Why doesn't GNUS work anymore 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)
|
|
|
|
I also have a patch for NNTP 1.5.10 by Mike Pelletier
|
|
<stealth@engin.umich.edu> that is based on the timeout code that was in
|
|
1.5.9. However, please try to upgrade to 1.5.11 first.
|
|
|
|
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 (ie.,
|
|
`telnet server-machine 119'). The server should give its version number
|
|
in the welcome message. Type `quit' to get out.
|
|
|
|
163: How do I view text with embedded underlining (eg., ClariNews)?
|
|
|
|
Underlining appears like this:
|
|
|
|
_^Hu_^Hn_^Hd_^He_^Hr_^Hl_^Hi_^Hn_^Hi_^Hn_^Hg
|
|
|
|
You can destructively remove underlining with M-x ununderline-region.
|
|
|
|
For ClariNews articles, clari-clean.el by David N. Blank-Edelman
|
|
<dnb@meshugge.media.mit.edu> will remove both underlining and overstriking
|
|
automatically.
|
|
|
|
164: When I try to post a long article in GNUS (about 10K or longer), I get
|
|
the error, "Writing to process: no more processes, nntpd"
|
|
|
|
Upgrade to Emacs 18.58 or higher.
|
|
|
|
165: How do I save all the items of a multi-part posting in GNUS?
|
|
|
|
Use gnus-mark.el by Jamie Zawinski <jwz@lucid.com>.
|
|
|
|
166: Why does GNUS put the subjects in replies beyond the 80th column?
|
|
|
|
This is a feature. If you set gnus-thread-hide-subject to non-nil, GNUS
|
|
will only display the subject of the first posting in a thread, even if
|
|
some of the replies use different subjects. It hides the subjects by
|
|
putting them past the edge of the window and setting truncate lines to t.
|
|
|
|
If your screen looks messed up, then for some reason truncate-lines in
|
|
your `*Subject*' buffer has been set to nil. It should be set to t.
|
|
|
|
(I have an enhancement to GNUS 3.13 that will make it only hide the subject
|
|
of a posting when it is unchanged from the followed-up-to posting. Thus,
|
|
you can use the subject hiding feature and still know when someone changes
|
|
the subject. (I have forgotten who originally gave me the idea for this.))
|
|
|
|
167: Why is GNUS so slow to start up?
|
|
|
|
GNUS does several things that take quadratic time of the number of
|
|
newsgroups that are listed in .newsrc. The quick fix for this is to
|
|
remove all the newsgroups in which you have no interest from your .newrc
|
|
file by using GNUS's C-k command in the `*Newsgroup*' buffer after
|
|
displaying all newsgroups with the L command. If you were to directly
|
|
edit your .newsrc to remove the newsgroups, GNUS would add them back.
|
|
|
|
GNUS uses a quadratic algorithm to check for duplicates when the .newsrc
|
|
file is newer than the .newsrc.el file (ie., you edited your .newsrc).
|
|
GNUS uses a quadratic algorithm to check for new newsgroups every time it
|
|
connects to the news server. {There may be other quadratic algorithms
|
|
that I am not aware of.}
|
|
|
|
You can speed up GNUS by using the C-k command in the *Newsgroup* buffer
|
|
to remove newsgroups from your .newsrc file.
|
|
|
|
Of course, GNUS will run faster if you make sure it is byte-compiled.
|
|
|
|
Felix Lee wrote some enhancements called `gnus-speedups.el' that fix some
|
|
of the problems. See the Emacs Lisp Archive.
|
|
|
|
168: How do I catch up all newsgroups in GNUS?
|
|
|
|
In the `*Newsgroup*' buffer, type the following magical incantation:
|
|
|
|
M-< C-x ( C-@ c y C-u C-@ C-e C-f C-f M-0 C-x )
|
|
|
|
Leave off the "M-<" if you only want to catch up from point to the end of
|
|
the `*Newsgroup' buffer.
|
|
|
|
169: Why can't I kill in GNUS on the Newsgroups/Keywords/Control line?
|
|
|
|
GNUS 3.14.1 will complain that the `Newsgroups:', `Keywords:', and
|
|
`Control:' headers are `Unknown header field's.
|
|
|
|
For the `Newsgroups:' header, there is an easy workaround: kill on the
|
|
`Xref' header instead, which will be present on any cross-posted article.
|
|
|
|
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\\)")
|
|
|
|
Various people (eg., Greg Holley <holley@acuson.com>) have posted
|
|
solutions to allow more efficient killing on these headers than the
|
|
preceding solution. Masanobu Umeda plans to fix this problem.
|
|
|
|
170: How do I get rid of flashing messages in GNUS for slow connections?
|
|
|
|
GNUS outputs "NNTP: Reading..." message and then clears them, over and
|
|
over. In version 3.14.1 there is a variable named nntp-debug-read that
|
|
can help. Johan Vromans <jv@mh.nl> wrote a fix. Others have also written
|
|
fixes.
|
|
|
|
171: Why is catch up slow in Gnews/GNUS?
|
|
|
|
Because GNUS is marking crosspostings read. {I think it should do this at
|
|
the time the article is read to spread out the load. Maybe someone will
|
|
write the code to do this.}
|
|
|
|
172: Why does GNUS hang for a long time when posting?
|
|
|
|
David Lawrence <tale@uunet.uu.net> 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.
|
|
|
|
173: Why don't my news postings in GNUS get past the local machine?
|
|
|
|
Three possible reasons: local distribution, C News date problem (see
|
|
question 174, and the path problem. This piece of code may fix the path
|
|
problem for you:
|
|
|
|
(setq gnus-use-generic-path t)
|
|
|
|
174: Why is the GNUS-generated `Date:' header invalid?
|
|
|
|
GNUS generates `Date:' headers without time zones. C-News's `inews'
|
|
doesn't replace it with a valid header, but will generate it if not
|
|
already there. If it is invalid, the article will not be forwarded
|
|
properly. Quick fix:
|
|
|
|
(defun gnus-inews-date () nil)
|
|
|
|
This is not fixed as of GNUS 3.14.1.
|
|
|
|
175: Why doesn't GNUS generate the `Lines:' header?
|
|
|
|
GNUS was written for B news, which would generate the `Lines:' header. C
|
|
news doesn't. There is a comment in C news's `inews' that you can
|
|
uncomment to enable this functionality. Or you can have GNUS generate the
|
|
header, for example:
|
|
|
|
;; idea by jbryans@beach.csulb.edu (Jack Bryans)
|
|
(defun add-lines-header ()
|
|
;; Count the number of lines in the current posting and insert the
|
|
;; header line Lines into the message.
|
|
(save-excursion
|
|
(goto-char (point-min))
|
|
(if (search-forward "\n\n") ;; ***** I suspect this is wrong *****
|
|
(let ((lines (count-lines (point) (point-max))))
|
|
(forward-line -1)
|
|
(insert-string "Lines: " lines "\n")))))
|
|
|
|
Mike Williams <mike-w@cs.aukuni.ac.nz> has written something similar.
|
|
|
|
Ronald Florence <ron@mlfarm.com> has a patch for GNUS that makes it
|
|
calculate the `Lines:' header for incoming articles when necessary that
|
|
works for sites with local news spools.
|
|
|
|
David Lawrence <tale@uunet.uu.net> says that GNUS 3.14.1 generates Lines
|
|
if gnus-news-system is Cnews.
|
|
|
|
176: Why do I get "Cannot open load file" "nntp" when compiling GNUS?
|
|
|
|
Specifically, the error message is this:
|
|
|
|
Error occurred processing gnus.el: File error (("Cannot open load file" "nntp"))
|
|
|
|
This means that nntp.el is not in Emacs's load-path, which is easy to
|
|
happen when compiling using the Makefile.
|
|
|
|
Easiest solution: set EMACSLOADPATH in Makefile (idea from Glenn Gribble
|
|
<glenn@netcom.com>):
|
|
|
|
EMACSLOADPATH=/usr/local/emacs/lisp:.
|
|
ELC= env EMACSLOADPATH=$(EMACSLOADPATH) emacs -batch -f batch-byte-compile
|
|
|
|
Another solution, in hack.el put this:
|
|
|
|
(defun gross-hack () (setq load-path (cons "/directory" load-path)))
|
|
|
|
Then in Makefile:
|
|
|
|
ELC= emacs -batch -l hack.el -f gross-hack -f batch-byte-compile
|
|
|
|
177: How do I kill all articles in GNUS but those matching a pattern?
|
|
|
|
Example:
|
|
|
|
;; kill everything
|
|
(gnus-kill "subject" "" nil nil)
|
|
;; then restore stuff by our favorite poster
|
|
(gnus-kill "from" "good-guy"
|
|
(function
|
|
(lambda ()
|
|
(if (eq ?X (char-after (save-excursion
|
|
(beginning-of-line 1)
|
|
(point))))
|
|
(gnus-Subject-clear-mark-forward 1))))
|
|
t)
|
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
Copyright (C) 1990, 1991, 1992 Joseph Brian Wells
|
|
Copyright (C) 1992, 1993 Steven Byrnes
|
|
|
|
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, etc.), 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.
|