@c %**start of header
@setfilename ../../info/efaq
@settitle GNU Emacs FAQ
+@documentencoding UTF-8
@c %**end of header
@include emacsver.texi
@c appreciate a notice if you do).
@copying
-Copyright @copyright{} 2001--2013 Free Software Foundation, Inc.@*
+Copyright @copyright{} 2001--2014 Free Software Foundation, Inc.@*
Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000
Reuven M. Lerner@*
Copyright @copyright{} 1992, 1993 Steven Byrnes@*
@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 @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 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
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}
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
@cindex Emacs for MS-Windows
@cindex Microsoft Windows, Emacs for
-There is a @uref{http://www.gnu.org/software/emacs/windows/ntemacs.html,
-separate FAQ} for Emacs on MS-Windows. For MS-DOS, @pxref{Emacs for MS-DOS}.
+There is a separate FAQ for Emacs on MS-Windows,
+@pxref{Top,,,efaq-w32,FAQ for Emacs on MS Windows}.
+For MS-DOS, @pxref{Emacs for MS-DOS}.
@node Emacs for GNUstep
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: