@c This is part of the Emacs manual.
-@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software
-@c Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014
+@c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex
@chapter Miscellaneous Commands
This chapter contains several brief topics that do not fit anywhere
-else: viewing ``document files'', reading Usenet news, running shell
-commands and shell subprocesses, using a single shared Emacs for
-utilities that expect to run an editor as a subprocess, printing
-hardcopy, sorting text, narrowing display to part of the buffer,
-editing binary files, saving an Emacs session for later resumption,
-following hyperlinks, browsing images, emulating other editors, and
-various diversions and amusements.
+else: reading Usenet news, viewing PDFs and other such documents, web
+browsing, running shell commands and shell subprocesses, using a
+single shared Emacs for utilities that expect to run an editor as a
+subprocess, printing, sorting text, editing binary files, saving an
+Emacs session for later resumption, recursive editing level, following
+hyperlinks, and various diversions and amusements.
@end iftex
(@code{doc-view-kill-proc-and-buffer}) kills the converter process and
the DocView buffer.
+@node EWW
+@section Web Browsing with EWW
+
+@findex eww
+@findex eww-open-file
+ @dfn{EWW}, the Emacs Web Wowser, is a web browser package for Emacs.
+It allows browsing URLs within an Emacs buffer. The command @kbd{M-x
+eww} will open a URL or search the web. You can open a file
+using the command @kbd{M-x eww-open-file}. You can use EWW as the
+web browser for @code{browse-url}, @pxref{Browse-URL}. For full
+details, @pxref{Top, EWW,, eww, The Emacs Web Wowser Manual}.
+
@node Shell
@section Running Shell Commands from Emacs
@cindex subshell
@item @key{TAB}
@kindex TAB @r{(Shell mode)}
@findex completion-at-point
+@cindex shell completion
Complete the command name or file name before point in the shell
buffer (@code{completion-at-point}). This uses the usual Emacs
completion rules (@pxref{Completion}), with the completion
alternatives being file names, environment variable names, the shell
command history, and history references (@pxref{History References}).
-
-@vindex shell-completion-fignore
-@vindex comint-completion-fignore
-The variable @code{shell-completion-fignore} specifies a list of file
-name extensions to ignore in Shell mode completion. The default
-setting is @code{nil}, but some users prefer @code{("~" "#" "%")} to
-ignore file names ending in @samp{~}, @samp{#} or @samp{%}. Other
-related Comint modes use the variable @code{comint-completion-fignore}
-instead.
+For options controlling the completion, @pxref{Shell Options}.
@item M-?
@kindex M-? @r{(Shell mode)}
for a password.
Please note that Emacs will not echo passwords by default. If you
-really want them to be echoed, evaluate the following Lisp
-expression:
+really want them to be echoed, evaluate (@pxref{Lisp Eval}) the
+following Lisp expression:
@example
(remove-hook 'comint-output-filter-functions
@key{RET}} over and over.
The command @kbd{C-c .}@: (@code{comint-input-previous-argument})
-copies an individual argument from a previous command, like @kbd{ESC
-.} in Bash. The simplest use copies the last argument from the
+copies an individual argument from a previous command, like
+@kbd{@key{ESC} .} in Bash. The simplest use copies the last argument from the
previous shell command. With a prefix argument @var{n}, it copies the
@var{n}th argument instead. Repeating @kbd{C-c .} copies from an
earlier shell command instead, always using the same value of @var{n}
If you set @code{shell-completion-execonly} to @code{nil},
it considers nonexecutable files as well.
+@vindex shell-completion-fignore
+@vindex comint-completion-fignore
+The variable @code{shell-completion-fignore} specifies a list of file
+name extensions to ignore in Shell mode completion. The default
+setting is @code{nil}, but some users prefer @code{("~" "#" "%")} to
+ignore file names ending in @samp{~}, @samp{#} or @samp{%}. Other
+related Comint modes use the variable @code{comint-completion-fignore}
+instead.
+
+@findex shell-dynamic-complete-command
+Some implementation details of the shell command completion may also be found
+in the lisp documentation of the @code{shell-dynamic-complete-command}
+function.
+
@findex shell-pushd-tohome
@findex shell-pushd-dextract
@findex shell-pushd-dunique
current text terminal. @xref{Windows Startup}.
If you omit a filename argument while supplying the @samp{-c} option,
-the new frame displays the @file{*scratch*} buffer by default. This
-behavior can be customized using the variable
-@code{initial-buffer-choice} (@pxref{Entering Emacs}).
+the new frame displays the @file{*scratch*} buffer by default. You
+can customize this behavior with the variable @code{initial-buffer-choice}
+(@pxref{Entering Emacs}).
@item -F @var{alist}
@itemx --frame-parameters=@var{alist}
edit the server buffers within Emacs, and they are @emph{not} killed
when you type @kbd{C-x #} in them.
-@item --parent-id @var{ID}
+@item --parent-id @var{id}
Open an @command{emacsclient} frame as a client frame in the parent X
-window with id @var{ID}, via the XEmbed protocol. Currently, this
+window with id @var{id}, via the XEmbed protocol. Currently, this
option is mainly useful for developers.
@item -q
init file (@pxref{Init File}), followed by @code{(pr-update-menus)}.
This function replaces the usual printing commands in the menu bar
with a @samp{Printing} submenu that contains various printing options.
-You can also type @kbd{M-x pr-interface RET}; this creates a
+You can also type @kbd{M-x pr-interface @key{RET}}; this creates a
@file{*Printing Interface*} buffer, similar to a customization buffer,
where you can set the printing options. After selecting what and how
to print, you start the print job using the @samp{Print} button (click
-@kbd{mouse-2} on it, or move point over it and type @kbd{RET}). For
+@kbd{Mouse-2} on it, or move point over it and type @key{RET}). For
further information on the various options, use the @samp{Interface
Help} button.
identify a @dfn{sort key} for each record, and then reorder the records
into the order determined by the sort keys. The records are ordered so
that their keys are in alphabetical order, or, for numeric sorting, in
-numeric order. In alphabetic sorting, all upper-case letters `A' through
-`Z' come before lower-case `a', in accord with the @acronym{ASCII} character
-sequence.
+numeric order. In alphabetic sorting, all upper-case letters @samp{A}
+through @samp{Z} come before lower-case @samp{a}, in accordance with the
+@acronym{ASCII} character sequence.
The various sort commands differ in how they divide the text into sort
records and in which part of each record is used as the sort key. Most of
used for comparison comes from a fixed range of columns. See below
for an explanation.
+@findex reverse-region
@item M-x reverse-region
Reverse the order of the lines in the region. This is useful for
sorting into descending order by fields or columns, since those sort
@cindex reload files
@cindex desktop
+@vindex desktop-restore-frames
Use the desktop library to save the state of Emacs from one session
to another. Once you save the Emacs @dfn{desktop}---the buffers,
their file names, major modes, buffer positions, and so on---then
-subsequent Emacs sessions reload the saved desktop.
+subsequent Emacs sessions reload the saved desktop. By default,
+the desktop also tries to save the frame and window configuration.
+To disable this, set @code{desktop-restore-frames} to @code{nil}.
+(See that variable's documentation for some related options
+that you can customize to fine-tune this behavior.)
@findex desktop-save
@vindex desktop-save-mode
(desktop-save-mode 1)
@end example
+@vindex desktop-auto-save-timeout
+@noindent
+When @code{desktop-save-mode} is active and the desktop file exists,
+Emacs auto-saves it every @code{desktop-auto-save-timeout}
+seconds, if that is non-@code{nil} and non-zero.
+
@findex desktop-change-dir
@findex desktop-revert
@vindex desktop-path
approaches give you more flexibility to go back to unfinished tasks in
the order you choose.
+@ignore
+@c Apart from edt and viper, this is all obsolete.
+@c (Can't believe we were saying ``most other editors'' into 2014!)
+@c There seems no point having a node just for those, which both have
+@c their own manuals.
@node Emulation
@section Emulation
@cindex emulating other editors
@cindex other editors
@cindex EDT
@cindex vi
-@cindex PC key bindings
-@cindex scrolling all windows
-@cindex PC selection
-@cindex Motif key bindings
-@cindex Macintosh key bindings
@cindex WordStar
GNU Emacs can be programmed to emulate (more or less) most other
@item vi (Berkeley editor)
@findex viper-mode
-Viper is the newest emulator for vi. It implements several levels of
+Viper is an emulator for vi. It implements several levels of
emulation; level 1 is closest to vi itself, while level 5 departs
somewhat from strict emulation to take advantage of the capabilities of
Emacs. To invoke Viper, type @kbd{M-x viper-mode}; it will guide you
@kbd{M-x wordstar-mode} provides a major mode with WordStar-like
key bindings.
@end table
+@end ignore
+
@node Hyperlinking
@section Hyperlinking and Navigation Features