\input texinfo @c -*- mode: texinfo; -*-
@c %**start of header
-@setfilename ../../info/efaq
+@setfilename ../../info/efaq.info
@settitle GNU Emacs FAQ
@documentencoding UTF-8
@c %**end of header
@cindex Posting messages to newsgroups
@cindex GNU mailing lists
-The file @file{etc/MAILINGLISTS} describes the purpose of each GNU
-mailing list (@pxref{Informational files for Emacs}). For those lists
-which are gatewayed with newsgroups, it lists both the newsgroup name
-and the mailing list address. The Emacs mailing lists are also
-described at @uref{http://savannah.gnu.org/mail/?group=emacs, the Emacs
-Savannah page}.
+The Emacs mailing lists are described at
+@uref{http://savannah.gnu.org/mail/?group=emacs, the Emacs Savannah
+page}. Some of them are gatewayed to newsgroups.
The newsgroup @uref{news:comp.emacs} is for discussion of Emacs programs
in general. The newsgroup @uref{news:gnu.emacs.help} is specifically
Emacs help works best if it is invoked by a single key whose value
should be stored in the variable @code{help-char}.
+Some Emacs slides and tutorials can be found at
+@uref{http://web.psung.name/emacs/}.
+
@node Learning how to do something
@section How do I find out how to do something in Emacs?
@cindex Help for Emacs
@cindex Files included with Emacs
@cindex @file{COPYING}, description of file
@cindex @file{DISTRIB}, description of file
-@cindex @file{GNU}, description of file
-@cindex @file{INTERVIEW}, description of file
@cindex @file{MACHINES}, description of file
-@cindex @file{MAILINGLISTS}, description of file
@cindex @file{NEWS}, description of file
This isn't a frequently asked question, but it should be! A variety of
@item DISTRIB
Emacs Availability Information
-@item GNU
-The GNU Manifesto
-
-@item INTERVIEW
-Richard Stallman discusses his public-domain UNIX-compatible software
-system with BYTE editors
-
@item MACHINES
Status of Emacs on Various Machines and Systems
-@item MAILINGLISTS
-GNU Project Electronic Mailing Lists
-
@item NEWS
Emacs news, a history of recent user-visible changes
version (e.g., @samp{23.0.50} is what will eventually become @samp{23.1}).
Emacs is under active development, hosted at
-@uref{http://savannah.gnu.org/projects/emacs/, Savannah}. The source
-code can be retrieved anonymously following the
-@uref{http://savannah.gnu.org/bzr/?group=emacs, instructions}.
-The repository is GNU Bazaar.
+@uref{http://savannah.gnu.org/projects/emacs/, Savannah}.
+Follow the instructions given there to clone the project repository.
Because Emacs undergoes many changes before a release, the version
number of a development version is not especially meaningful. It is
delete-selection-mode @key{RET}}):
@quotation
-When Delete Selection mode is enabled, Transient Mark mode is also
-enabled and typed text replaces the selection if the selection is
-active. Otherwise, typed text is just inserted at point regardless of
-any selection.
+When Delete Selection mode is enabled, typed text replaces the selection
+if the selection is active. Otherwise, typed text is just inserted at
+point regardless of any selection.
@end quotation
This mode also allows you to delete (not kill) the highlighted region by
left or right edge of the window.
Note that this is overridden by the variable
-@code{truncate-partial-width-windows} if that variable is non-nil
+@code{truncate-partial-width-windows} if that variable is non-@code{nil}
and the current buffer is not full-frame width.
In Emacs 20, use @code{hscroll-mode}.
@kbd{M-x compile} and @kbd{M-x recompile} commands is a much more
effective way of doing that. Emacs automatically intercepts the compile
error messages, inserts them into a special buffer called
-@code{*compilation*}, and lets you visit the locus of each message in
+@file{*compilation*}, and lets you visit the locus of each message in
the source. Type @kbd{C-x `} to step through the offending lines one by
one (starting with Emacs 22, you can also use @kbd{M-g M-p} and
@kbd{M-g M-n} to go to the previous and next matches directly). Click
@kbd{Mouse-2} or press @key{RET} on a message text in the
-@code{*compilation*} buffer to go to the line whose number is mentioned
+@file{*compilation*} buffer to go to the line whose number is mentioned
in that message.
But if you indeed need to go to a certain text line, type @kbd{M-g M-g}
put the following in your @file{.emacs} file:
@lisp
-(add-hook 'term-setup-hook
- #'(lambda () (w32-send-sys-command ?\xF030)))
+(add-hook 'emacs-startup-hook
+ (lambda () (w32-send-sys-command ?\xF030)))
@end lisp
To avoid the slightly distracting visual effect of Emacs starting with
Old versions (i.e., anything before 19.29) of Emacs had problems editing
files larger than 8 megabytes. In versions 19.29 and later, the maximum
-buffer size is at least 2^27@minus{}1, or 134,217,727 bytes, or 132 MBytes.
+buffer size is at least @math{2^{27}-1}, or 134,217,727 bytes, or 132 MBytes.
The maximum buffer size on 32-bit machines increased to 256 MBytes in
Emacs 22, and again to 512 MBytes in Emacs 23.2.
@file{/usr/lib/terminfo/d/dumb} to @file{/usr/lib/terminfo/e/emacs}.
Having a termcap/terminfo entry will not enable the use of full screen
-programs in shell buffers. Use @kbd{M-x terminal-emulator} for that
-instead.
+programs in shell buffers. Use @kbd{M-x term} for that instead.
A workaround to the problem of missing termcap/terminfo entries is to
change terminal type @samp{emacs} to type @samp{dumb} or @samp{unknown}
First of all, you should check to make sure that the package isn't
already available. For example, typing @kbd{M-x apropos @key{RET}
-wordstar @key{RET}} lists all functions and variables containing the
-string @samp{wordstar}.
+python @key{RET}} lists all functions and variables containing the
+string @samp{python}.
It is also possible that the package is on your system, but has not been
loaded. To see which packages are available for loading, look through
For advice on how to find extra packages that are not part of Emacs,
see @ref{Packages that do not come with Emacs}.
+@c Note that M-x view-external-packages references this node.
@node Packages that do not come with Emacs
@section Where can I get Emacs Lisp packages that don't come with Emacs?
@cindex Unbundled packages
@cindex Emacs Lisp List
@cindex Emacs Lisp Archive
-Your first port of call should be the @kbd{M-x list-packages} command.
-This connects to the @uref{http:///elpa.gnu.org, GNU ELPA} (``Emacs
-Lisp Package Archive'') server and fetches the list of additional
-packages that it offers. These are GNU packages that are available
-for use with Emacs, but are distributed separately. Select a package
-to get more details about the features that it offers, and then if you
-wish, Emacs can download and automatically install it for you.
-
-@uref{http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.html, The Emacs Lisp
-List (ELL)}, maintained by Stephen Eglen,
-aims to provide one compact list with links to all of the current Emacs
-Lisp files on the Internet. The ELL can be browsed over the web, or
-from Emacs with @uref{http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.el,
-the @file{ell} package}.
-
-Many authors post their packages to the @uref{news:gnu.emacs.sources,
-Emacs sources newsgroup}. You can search the archives of this
-group with @uref{http://groups.google.com/group/gnu.emacs.sources, Google},
-or @uref{http://dir.gmane.org/gmane.emacs.sources, Gmane}, for example.
-
-Several packages are stored in
-@uref{http://emacswiki.org/elisp/, the Lisp area of the Emacs Wiki}.
-
-Read the file @file{etc/MORE.STUFF} for more information about
-external packages.
+The easiest way to add more features to your Emacs is to use the
+command @kbd{M-x list-packages}. This contacts the
+@uref{http:///elpa.gnu.org, GNU ELPA} (``Emacs Lisp Package Archive'')
+server and fetches the list of additional packages that it offers.
+These are GNU packages that are available for use with Emacs, but are
+distributed separately from Emacs itself, for reasons of space, etc.
+You can browse the resulting @file{*Packages*} buffer to see what is
+available, and then Emacs can automatically download and install the
+packages that you select. @xref{Packages,,, emacs, The GNU Emacs Manual}.
+
+There are other, non-GNU, Emacs Lisp package servers, including:
+@uref{http://melpa.milkbox.net, MELPA}; and
+@uref{http://marmalade-repo.org, Marmalade}. To use additional
+package servers, customize the @code{package-archives} variable.
+Be aware that installing a package can run arbitrary code, so only add
+sources that you trust.
+
+The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources,
+GNU Emacs sources mailing list}, which is gatewayed to the
+@uref{news:gnu.emacs.sources, Emacs sources newsgroup} (although the
+connection between the two can be unreliable) is an official place
+where people can post or announce their extensions to Emacs.
+
+The @uref{http://emacswiki.org, Emacs Wiki} contains pointers to some
+additional extensions. @uref{http://wikemacs.org, WikEmacs} is an
+alternative wiki for Emacs.
+
+@uref{http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.html, The Emacs
+Lisp List (ELL)}, has pointers to many Emacs Lisp files, but at time
+of writing it is no longer being updated.
+
+It is impossible for us to list here all the sites that offer Emacs
+Lisp packages. If you are interested in a specific feature, then
+after checking Emacs itself and GNU ELPA, a web search is often the
+best way to find results.
@node Spell-checkers
@section Spell-checkers
code/file execution order is not enforced after startup).
To postpone the execution of Emacs Lisp code until after terminal or
-window-system setup, treat the code as a @dfn{lambda list} and set the
-value of either the @code{term-setup-hook} or @code{window-setup-hook}
-variable to this lambda function. For example,
+window-system setup, treat the code as a @dfn{lambda list} and add it to
+@code{emacs-startup-hook} (or @code{tty-setup-hook} in Emacs 24.4 and
+newer). For example,
@lisp
-(add-hook 'term-setup-hook
+(add-hook 'emacs-startup-hook
(lambda ()
(when (string-match "\\`vt220" (or (getenv "TERM") ""))
;; Make vt220's "Do" key behave like M-x:
* Replying to the sender of a message::
* Automatically starting a mail or news reader::
* Reading news with Emacs::
-* Gnus does not work with NNTP::
* Making Gnus faster::
* Catching up in all newsgroups::
@end menu
Questions,, the Gnus FAQ, gnus, The Gnus Manual}.
-@node Gnus does not work with NNTP
-@section Why doesn't Gnus work via NNTP?
-@cindex Gnus and NNTP
-@cindex NNTP, Gnus fails to work with
-
-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:
-
-@lisp
-(setq nntp-maximum-request 1)
-@end lisp
-
-You can find out what version of NNTP your news server is running by
-telnetting to the NNTP port (usually 119) on the news server machine
-(i.e., @kbd{telnet server-machine 119}). The server should give its
-version number in the welcome message. Type @kbd{quit} to get out.
-
@node Making Gnus faster
@section How do I make Gnus faster?
@cindex Faster, starting Gnus