]> code.delx.au - gnu-emacs/blobdiff - man/misc.texi
Fix a typo.
[gnu-emacs] / man / misc.texi
index f46ea90a3b9cda7111ccc257f96a0cb75dced63f..df1ca152b6bf5db549b3fd9a29ee4baed7566f1b 100644 (file)
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000
+@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000, 2001
 @c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @iftex
@@ -94,7 +94,7 @@ not edit these files manually, but you may if you know how.
 @node Summary of Gnus
 @subsection Summary of Gnus Commands
 
-Reading news is a two step process:
+Reading news is a two-step process:
 
 @enumerate
 @item
@@ -311,7 +311,7 @@ to an Emacs buffer named @samp{*shell*} or run a shell inside a terminal
 emulator window.
 
 There is a shell implemented entirely in Emacs, documented in a separate
-manual.  @xref{, ,Eshell , eshell, Eshell: The Emacs Shell}.
+manual.  @xref{Top,Eshell,Eshell, eshell, Eshell: The Emacs Shell}.
 
 @table @kbd
 @item M-! @var{cmd} @key{RET}
@@ -354,17 +354,26 @@ Start the Emacs shell.
   @kbd{M-!} (@code{shell-command}) reads a line of text using the
 minibuffer and executes it as a shell command in a subshell made just
 for that command.  Standard input for the command comes from the null
-device.  If the shell command produces any output, the output goes into
-an Emacs buffer named @samp{*Shell Command Output*}, which is displayed
-in another window but not selected.  A numeric argument, as in @kbd{M-1
-M-!}, directs this command to insert any output into the current buffer.
-In that case, point is left before the output and the mark is set after
-the output.
+device.  If the shell command produces any output, the output appears
+either in the echo area (if it is short), or in an Emacs buffer named
+@samp{*Shell Command Output*}, which is displayed in another window
+but not selected (if the output is long).
+
+  For instance, one way to decompress a file @file{foo.gz} from Emacs
+is to type @kbd{M-! gunzip foo.gz @key{RET}}.  That shell command
+normally creates the file @file{foo} and produces no terminal output.
+
+  A numeric argument, as in @kbd{M-1 M-!}, says to insert terminal
+output into the current buffer instead of a separate buffer.  It puts
+point before the output, and sets the mark after the output.  For
+instance, @kbd{M-1 M-! gunzip < foo.gz @key{RET}} would insert the
+uncompressed equivalent of @file{foo.gz} into the current buffer.
 
   If the shell command line ends in @samp{&}, it runs asynchronously.
 For a synchronous shell command, @code{shell-command} returns the
 command's exit status (0 means success), when it is called from a Lisp
-program.
+program.  You do not get any status information for an asynchronous
+command, since it hasn't finished yet.
 
 @kindex M-|
 @findex shell-command-on-region
@@ -375,8 +384,14 @@ insert the output in the current buffer, then the old region is deleted
 first and the output replaces it as the contents of the region.  It
 returns the command's exit status when it is called from a Lisp program.
 
+  One use for @kbd{M-|} is to run @code{uudecode}.  For instance, if
+the buffer contains uuencoded text, type @kbd{C-x h M-| uudecode
+@key{RET}} to feed the entire buffer contents to the @code{uudecode}
+program.  That program will ignore everything except the encoded text,
+and will store the decoded output into the file whose name is
+specified in the encoded text.
+
 @vindex shell-file-name
-@cindex environment
   Both @kbd{M-!} and @kbd{M-|} use @code{shell-file-name} to specify the
 shell to use.  This variable is initialized based on your @env{SHELL}
 environment variable when Emacs is started.  If the file name does not
@@ -427,13 +442,16 @@ for time to elapse.
 face @code{comint-highlight-prompt}.  This makes it easier to see
 previous input lines in the buffer.  @xref{Faces}.
 
-  To make multiple subshells, rename the buffer @samp{*shell*} to
-something different using @kbd{M-x rename-uniquely}.  Then type @kbd{M-x
-shell} again to create a new buffer @samp{*shell*} with its own
-subshell.  If you rename this buffer as well, you can create a third
-one, and so on.  All the subshells run independently and in parallel.
+  To make multiple subshells, you can invoke @kbd{M-x shell} with a
+prefix argument (e.g. @kbd{C-u M-x shell}), which will read a buffer
+name and create (or reuse) a subshell in that buffer.  You can also
+rename the @samp{*shell*} buffer using @kbd{M-x rename-uniquely}, then
+then create a new @samp{*shell*} buffer using plain @kbd{M-x shell}.
+All the subshells in different buffers run independently and in
+parallel.
 
 @vindex explicit-shell-file-name
+@cindex environment variables for subshells
 @cindex @env{ESHELL} environment variable
 @cindex @env{SHELL} environment variable
   The file name used to load the subshell is the value of the variable
@@ -456,9 +474,11 @@ from.  For example, if you use bash, the file sent to it is
 specify a coding system after starting the shell by using @kbd{C-x
 @key{RET} p} in the shell buffer.  @xref{Specify Coding}.
 
-  Emacs defines the environment variable @env{EMACS} in the subshell,
-with value @code{t}.  A shell script can check this variable to
-determine whether it has been run from an Emacs subshell.
+@cindex @env{EMACS} environment variable
+  Unless the environment variable @env{EMACS} is already defined,
+Emacs defines it in the subshell, with value @code{t}.  A shell script
+can check this variable to determine whether it has been run from an
+Emacs subshell.
 
 @node Shell Mode
 @subsection Shell Mode
@@ -477,9 +497,9 @@ of the special key bindings of Shell mode:
 @findex comint-send-input
 At end of buffer send line as input; otherwise, copy current line to
 end of buffer and send it (@code{comint-send-input}).  When a line is
-copied, any prompt at the beginning if the line (text output by
-programs preceding your input) is omitted.  See also
-@code{comint-use-prompt-regexp-instead-of-fields}).
+copied, any prompt at the beginning of the line (text output by
+programs preceding your input) is omitted.  (See also the variable
+@code{comint-use-prompt-regexp-instead-of-fields}.)
 
 @item @key{TAB}
 @kindex TAB @r{(Shell mode)}
@@ -491,8 +511,9 @@ references (@pxref{History References}) and environment variable names.
 @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
-ignores file names ending in @samp{~}, @samp{#} or @samp{%}.  Other
+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.
 
@@ -513,13 +534,14 @@ position in the buffer, @kbd{C-d} deletes a character as usual.
 
 @item C-c C-a
 @kindex C-c C-a @r{(Shell mode)}
-@findex comint-bol
+@findex comint-bol-or-process-mark
 Move to the beginning of the line, but after the prompt if any
-(@code{comint-bol}).  If you repeat this command twice in a row, the
-second time it moves back to the process mark, which is the beginning of
-the input that you have not yet sent to the subshell.  (Normally that is
-the same place---the end of the prompt on this line---but after @kbd{C-c
-@key{SPC}} the process mark may be in a previous line.)
+(@code{comint-bol-or-process-mark}).  If you repeat this command twice
+in a row, the second time it moves back to the process mark, which is
+the beginning of the input that you have not yet sent to the subshell.
+(Normally that is the same place---the end of the prompt on this
+line---but after @kbd{C-c @key{SPC}} the process mark may be in a
+previous line.)
 
 @item C-c @key{SPC}
 Accumulate multiple lines of input, then send them together.  This
@@ -739,7 +761,7 @@ commands from the buffer.
   The history search commands @kbd{M-r} and @kbd{M-s} read a regular
 expression and search through the history for a matching command.  Aside
 from the choice of which command to fetch, they work just like @kbd{M-p}
-and @kbd{M-r}.  If you enter an empty regexp, these commands reuse the
+and @kbd{M-n}.  If you enter an empty regexp, these commands reuse the
 same regexp used last time.
 
   When you find the previous input you want, you can resubmit it by
@@ -859,10 +881,12 @@ recognize commands with the meaning of @samp{popd} and @samp{cd}.
 These commands are recognized only at the beginning of a shell command
 line.
 
+@ignore  @c This seems to have been deleted long ago.
 @vindex shell-set-directory-error-hook
   If Emacs gets an error while trying to handle what it believes is a
 @samp{cd}, @samp{pushd} or @samp{popd} command, it runs the hook
 @code{shell-set-directory-error-hook} (@pxref{Hooks}).
+@end ignore
 
 @findex dirs
   If Emacs gets confused about changes in the current directory of the
@@ -885,17 +909,17 @@ to the bottom before inserting.
 
 @vindex comint-scroll-show-maximum-output
   If @code{comint-scroll-show-maximum-output} is non-@code{nil}, then
-scrolling due to arrival of output tries to place the last line of text
-at the bottom line of the window, so as to show as much useful text as
-possible.  (This mimics the scrolling behavior of many terminals.)
-The default is @code{nil}.
+scrolling due to the arrival of output tries to place the last line of
+text at the bottom line of the window, so as to show as much useful
+text as possible.  (This mimics the scrolling behavior of many
+terminals.)  The default is @code{nil}.
 
 @vindex comint-scroll-to-bottom-on-output
   By setting @code{comint-scroll-to-bottom-on-output}, you can opt for
 having point jump to the end of the buffer whenever output arrives---no
 matter where in the buffer point was before.  If the value is
 @code{this}, point jumps in the selected window.  If the value is
-@code{all}, point jumps in each window that shows the comint buffer.  If
+@code{all}, point jumps in each window that shows the Comint buffer.  If
 the value is @code{other}, point jumps in all nonselected windows that
 show the current buffer.  The default value is @code{nil}, which means
 point does not jump to the end.
@@ -920,16 +944,9 @@ algorithm cannot add even a single character.
 @code{comint-completion-autolist}, if non-@code{nil}, says to list all
 the possible completions whenever completion is not exact.
 
-@findex comint-dynamic-complete-variable
-  The command @code{comint-dynamic-complete-variable} does variable-name
-completion using the environment variables as set within Emacs.  The
-variables controlling file name completion apply to variable-name
-completion too.  This command is normally available through the menu
-bar.
-
-@vindex shell-command-execonly
+@vindex shell-completion-execonly
   Command completion normally considers only executable files.
-If you set @code{shell-command-execonly} to @code{nil},
+If you set @code{shell-completion-execonly} to @code{nil},
 it considers nonexecutable files as well.
 
 @findex shell-pushd-tohome
@@ -949,8 +966,8 @@ underlying shell, of course.
 
   To run a subshell in a terminal emulator, putting its typescript in
 an Emacs buffer, use @kbd{M-x term}.  This creates (or reuses) a
-buffer named @samp{*term*}, and runs a subshell with input coming from
-your keyboard, and output going to that buffer.
+buffer named @samp{*terminal*}, and runs a subshell with input coming
+from your keyboard, and output going to that buffer.
 
   The terminal emulator uses Term mode, which has two input modes.  In
 line mode, Term basically acts like Shell mode; see @ref{Shell Mode}.
@@ -974,7 +991,7 @@ You can actually run Emacs inside an Emacs Term window.
 
    The file name used to load the subshell is determined the same way
 as for Shell mode.  To make multiple terminal emulators, rename the
-buffer @samp{*term*} to something different using @kbd{M-x
+buffer @samp{*terminal*} to something different using @kbd{M-x
 rename-uniquely}, just as with Shell mode.
 
   Unlike Shell mode, Term mode does not track the current directory by
@@ -1059,7 +1076,7 @@ temporarily visible, but will be erased when you hit return.  (This
 happens automatically; there is no special password processing.)
 
   When you log in to a different machine, you need to specify the type
-of terminal your using.  Terminal types @samp{ansi} or @samp{vt100}
+of terminal you're using.  Terminal types @samp{ansi} or @samp{vt100}
 will work on most systems.
 
 @c   If you are talking to a Bourne-compatible
@@ -1076,7 +1093,7 @@ will work on most systems.
 @c as long as Emacs can access the source files specified by gdb.
 
 @ignore
-  You cannot log into to a remote computer using the Shell mode.
+  You cannot log in to a remote computer using the Shell mode.
 @c (This will change when Shell is re-written to use Term.)
 Instead, Emacs provides two commands for logging in to another computer
 and communicating with it through an Emacs buffer using Comint mode:
@@ -1139,7 +1156,7 @@ variable @env{EDITOR} to specify which editor to run.  If you set
 @env{EDITOR} to @samp{emacs}, they invoke Emacs---but in an
 inconvenient fashion, by starting a new, separate Emacs process.  This
 is inconvenient because it takes time and because the new Emacs process
-doesn't share the buffers in the existing Emacs process.
+doesn't share the buffers in any existing Emacs process.
 
   You can arrange to use your existing Emacs process as the editor for
 programs like @code{mail} by using the Emacs client and Emacs server
@@ -1169,9 +1186,9 @@ use @env{EDITOR} wait for the ``editor'' (actually, @code{emacsclient})
 to exit.  @kbd{C-x #} also checks for other pending external requests
 to edit various files, and selects the next such file.
 
-  You can switch to a server buffer manually if you wish; you don't have
-to arrive at it with @kbd{C-x #}.  But @kbd{C-x #} is the only way to
-say that you are ``finished'' with one.
+  You can switch to a server buffer manually if you wish; you don't
+have to arrive at it with @kbd{C-x #}.  But @kbd{C-x #} is the way to
+say that you are finished with one.
 
 @vindex server-kill-new-buffers
 @vindex server-temp-file-regexp
@@ -1227,12 +1244,14 @@ automatically when you finish with them.
 and optionally line numbers as well.  Do it like this:
 
 @example
-emacsclient @r{@{}@r{[}+@var{line}@r{]} @var{filename}@r{@}}@dots{}
+emacsclient @r{@{}@r{[}+@var{line}@r{[}@var{column}@r{]}@r{]} @var{filename}@r{@}}@dots{}
 @end example
 
 @noindent
 This tells Emacs to visit each of the specified files; if you specify a
 line number for a certain file, Emacs moves to that line in the file.
+If you specify a column number as well, Emacs puts point on that column
+in the line.
 
   Ordinarily, @code{emacsclient} does not return until you use the
 @kbd{C-x #} command on each of these buffers.  When that happens,
@@ -1373,7 +1392,8 @@ it to the printer.
 @cindex handwriting
 @kbd{M-x handwrite} is more frivolous.  It generates a PostScript
 rendition of the current buffer as a cursive handwritten document.  It
-can be customized in group @code{handwrite}.
+can be customized in group @code{handwrite}.  This function only
+supports ISO 8859-1 characters.
 
 @ifinfo
   The following section describes variables for customizing these commands.
@@ -1463,7 +1483,7 @@ instructs the printer to use built-in fonts for @sc{ascii} and Latin-1
 characters, and Intlfonts BDF fonts for the rest.
 
 @vindex bdf-directory-list
-  To be able to use the BDF fonts, Emacs should know where to find
+  To be able to use the BDF fonts, Emacs needs to know where to find
 them.  The variable @code{bdf-directory-list} holds the list of
 directories where Emacs should look for the fonts; the default value
 includes a single directory @file{/usr/local/share/emacs/fonts/bdf}.
@@ -1524,7 +1544,7 @@ Specify which field to sort by with a numeric argument: 1 to sort by
 field 1, etc.  A negative argument means count fields from the right
 instead of from the left; thus, minus 1 means sort by the last field.
 If several lines have identical contents in the field being sorted, they
-keep same relative order that they had in the original buffer.
+keep the same relative order that they had in the original buffer.
 
 @item M-x sort-numeric-fields
 Like @kbd{M-x sort-fields} except the specified field is converted
@@ -1647,8 +1667,8 @@ the mode line whenever narrowing is in effect.
 @findex narrow-to-region
   The primary narrowing command is @kbd{C-x n n} (@code{narrow-to-region}).
 It sets the current buffer's restrictions so that the text in the current
-region remains accessible but all text before the region or after the region
-is inaccessible.  Point and mark do not change.
+region remains accessible, but all text before the region or after the
+region is inaccessible.  Point and mark do not change.
 
 @kindex C-x n p
 @findex narrow-to-page
@@ -1814,13 +1834,17 @@ invoked @code{hexl-mode}.
 @end table
 
 @noindent
-Other Hexl commands let you insert strings (sequences) of binary bytes,
-move by short's or int's, etc.; type @kbd{C-h a hexl- RET} for details.
+Other Hexl commands let you insert strings (sequences) of binary
+bytes, move by @code{short}s or @code{int}s, etc.; type @kbd{C-h a
+hexl-@key{RET}} for details.
 
 
 @node Saving Emacs Sessions, Recursive Edit, Editing Binary Files, Top
 @section Saving Emacs Sessions
 @cindex saving sessions
+@cindex restore session
+@cindex remember editing session
+@cindex reload files
 @cindex desktop
 
   You can use the Desktop library to save the state of Emacs from one
@@ -1898,7 +1922,7 @@ but also quits the unfinished command immediately.  Use the command
 
   The mode line shows you when you are in a recursive edit by displaying
 square brackets around the parentheses that always surround the major and
-minor mode names.  Every window's mode line shows this, in the same way,
+minor mode names.  Every window's mode line shows this in the same way,
 since being in a recursive edit is true of Emacs as a whole rather than
 any particular window or buffer.
 
@@ -2107,7 +2131,7 @@ fashion.
 @cindex URLs
 
 @table @kbd
-@item M-x browse-url @key{RET} @var{url} @key{ret}
+@item M-x browse-url @key{RET} @var{url} @key{RET}
 Load a URL into a Web browser.
 @end table
 
@@ -2123,7 +2147,7 @@ which you might like to bind to keys, such as
 @code{browse-url-at-point} and @code{browse-url-at-mouse}.
 
 @vindex browse-url-browser-function
-  You can customize Browse-URL's behaviour via various options in the
+  You can customize Browse-URL's behavior via various options in the
 @code{browse-url} Customize group, particularly
 @code{browse-url-browser-function}.  You can invoke actions dependent
 on the type of URL by defining @code{browse-url-browser-function} as
@@ -2220,7 +2244,7 @@ find the one you select (@code{ffap-menu}).
 
 @table @kbd
 @item M-x find-function @key{RET} @var{function} @key{RET}
-Find the definition @var{function} in its source file.
+Find the definition of @var{function} in its source file.
 @item M-x find-variable @key{RET} @var{variable} @key{RET}
 Find the definition of @var{variable} in its source file.
 @item M-x find-function-on-key @key{RET} @var{key}
@@ -2230,7 +2254,7 @@ Find the definition of the function that @var{key} invokes.
   These commands provide an easy way to find the definitions of Emacs
 Lisp functions and variables.  They are similar in purpose to the Tags
 facility (@pxref{Tags}), but don't require a tags table; on the other
-hand, they only works for function and variable definitions that are
+hand, they only work for function and variable definitions that are
 already loaded in the Emacs session.
 
 @findex find-function
@@ -2315,7 +2339,7 @@ userenced and properbose.  Have fun.  Your buggestions are welcome.
 @cindex tower of Hanoi
 
   If you are a little bit bored, you can try @kbd{M-x hanoi}.  If you are
-considerably bored, give it a numeric argument.  If you are very very
+considerably bored, give it a numeric argument.  If you are very, very
 bored, try an argument of 9.  Sit back and watch.
 
 @cindex Go Moku