Copyedits and updates for Emacs manual's first few chapters.

* doc/emacs/basic.texi (Inserting Text): Add xref to Completion.  Add
ucs-insert example, and document prefix argument.
(Moving Point): Fix introduction; C-f/C-b are no longer equivalent
to left/right.  Tweak left-char and right-char descriptions.
M-left and M-right are now bound to left-word/right-word.
(Erasing): Document delete-forward-char.

* doc/emacs/commands.texi (User Input): Define "input event" more clearly.
(Keys): Add xref to Echo Area.
(Commands): Clarify relation between commands and functions.

* doc/emacs/entering.texi (Entering Emacs): Define "startup screen".
Document window-splitting behavior with command-line inputs.
(Exiting): Remove obsolete paragraph about shells without suspend
functionality.

* doc/emacs/frames.texi (Non-Window Terminals): Index just "text-only
terminal", which is used throughout the manual now.

* doc/emacs/screen.texi (Screen, Menu Bar): Copyedits.
(Point): Remove duplicate paragraph on cursors, also in Screen.
(Mode Line): Trailing dashes no longer shown on X displays.
This commit is contained in:
Chong Yidong 2011-10-07 12:22:04 -04:00
parent c383327999
commit de0bde6284
8 changed files with 475 additions and 436 deletions

View file

@ -158,7 +158,7 @@ building.texi
calendar.texi
cal-xtra.texi
cmdargs.texi
commands.texi
commands.texi cyd
custom.texi
dired.texi
dired-xtra.texi
@ -166,7 +166,7 @@ display.texi
emacs.texi
emacs-xtra.texi
emerge-xtra.texi
entering.texi
entering.texi cyd
files.texi
fixit.texi
fortran-xtra.texi
@ -190,7 +190,7 @@ picture-xtra.texi
programs.texi
regs.texi
rmail.texi
screen.texi
screen.texi cyd
search.texi
sending.texi
text.texi

View file

@ -1,3 +1,28 @@
2011-10-07 Chong Yidong <cyd@stupidchicken.com>
* basic.texi (Inserting Text): Add xref to Completion. Add
ucs-insert example, and document prefix argument.
(Moving Point): Fix introduction; C-f/C-b are no longer equivalent
to left/right. Tweak left-char and right-char descriptions.
M-left and M-right are now bound to left-word/right-word.
(Erasing): Document delete-forward-char.
* screen.texi (Screen, Menu Bar): Copyedits.
(Point): Remove duplicate paragraph on cursors, also in Screen.
(Mode Line): Trailing dashes no longer shown on X displays.
* frames.texi (Non-Window Terminals): Index just "text-only
terminal", which is used throughout the manual now.
* entering.texi (Entering Emacs): Define "startup screen".
Document window-splitting behavior with command-line inputs.
(Exiting): Remove obsolete paragraph about shells without suspend
functionality.
* commands.texi (User Input): Define "input event" more clearly.
(Keys): Add xref to Echo Area.
(Commands): Clarify relation between commands and functions.
2011-10-06 Chong Yidong <cyd@stupidchicken.com>
* misc.texi (emacsclient Options): Document how emacsclient runs

View file

@ -10,7 +10,7 @@
Here we explain the basics of how to enter text, make corrections,
and save the text in a file. If this material is new to you, we
suggest you first run the Emacs learn-by-doing tutorial, by typing
@kbd{Control-h t} inside Emacs. (@code{help-with-tutorial}).
@kbd{C-h t} (@code{help-with-tutorial}).
@menu
@ -41,20 +41,20 @@ forward, so that point remains just after the inserted text.
@kindex RET
@cindex newline
To end a line and start a new one, type @key{RET}. This key may be
labeled @key{Return} or @key{Enter} on your keyboard, but we refer to
it as @key{RET} in this manual. Pressing it inserts a newline
character in the buffer. If point is at the end of the line, this
creates a new blank line after it; if point is in the middle of a
line, the line is split at that position.
To end a line and start a new one, type @key{RET} (@code{newline}).
(The @key{RET} key may be labeled @key{Return} or @key{Enter} on your
keyboard, but we refer to it as @key{RET} in this manual.) This
command inserts a newline character into the buffer. If point is at
the end of the line, the effect is to create a new blank line after
it; if point is in the middle of a line, the line is split at that
position.
As we explain later in this manual, you can change the way Emacs
handles text insertion by turning on @dfn{minor modes}. For instance,
if you turn on a minor mode called @dfn{Auto Fill} mode, Emacs can
split lines automatically when they become too long (@pxref{Filling}).
If you turn on a minor mode called @dfn{Overwrite} mode, inserted
characters replace (overwrite) existing text, instead of shoving it to
the right. @xref{Minor Modes}.
the minor mode called Auto Fill mode splits lines automatically when
they get too long (@pxref{Filling}). The minor mode called Overwrite
mode causes inserted characters to replace (overwrite) existing text,
instead of shoving it to the right. @xref{Minor Modes}.
@cindex quoting
@kindex C-q
@ -80,9 +80,10 @@ literal @samp{DEL} character.
@kbd{C-q} followed by a sequence of octal digits inserts the character
with the specified octal character code. You can use any number of
octal digits; any non-digit terminates the sequence. If the
terminating character is @key{RET}, it serves only to terminate the
sequence. Any other non-digit terminates the sequence and then acts
as normal input---thus, @kbd{C-q 1 0 1 B} inserts @samp{AB}.
terminating character is @key{RET}, that @key{RET} serves only to
terminate the sequence. Any other non-digit terminates the sequence
and then acts as normal input---thus, @kbd{C-q 1 0 1 B} inserts
@samp{AB}.
The use of octal sequences is disabled in ordinary non-binary
Overwrite mode, to give you a convenient way to insert a digit instead
@ -96,21 +97,28 @@ To use decimal or hexadecimal instead of octal, set the variable
the letters @kbd{a} to @kbd{f} serve as part of a character code,
just like digits. Case is ignored.
A numeric argument tells @kbd{C-q} how many copies of the quoted
character to insert (@pxref{Arguments}).
@findex ucs-insert
@kindex C-x 8 RET
@cindex Unicode characters, inserting
@cindex insert Unicode character
@cindex characters, inserting by name or code-point
Instead of @kbd{C-q}, you can use @kbd{C-x 8 @key{RET}}
(@code{ucs-insert}) to insert a character based on its Unicode name or
code-point. This command prompts for a character to insert, using
the minibuffer; you can specify the character using either (i) the
character's name in the Unicode standard, or (ii) the character's
code-point in the Unicode standard. If you specify the character's
name, the command provides completion.
Instead of @kbd{C-q}, you can use the command @kbd{C-x 8 @key{RET}}
(@code{ucs-insert}). This prompts for the Unicode name or code-point
of a character, using the minibuffer. If you enter a name, the
command provides completion (@pxref{Completion}). If you enter a
code-point, it should be a hexadecimal number (which is the convention
for Unicode). The command then inserts the corresponding character
into the buffer. For example, both of the following insert the
infinity sign (Unicode code-point @code{#x221E}):
@example
@kbd{C-x 8 @key{RET} infinity @key{RET}}
@kbd{C-x 8 @key{RET} 221e @key{RET}}
@end example
A numeric argument to either @kbd{C-q} or @kbd{C-x 8 @key{RET}}
specifies how many copies of the character to insert
(@pxref{Arguments}).
@node Moving Point
@section Changing the Location of Point
@ -123,85 +131,104 @@ name, the command provides completion.
To do more than insert characters, you have to know how to move
point (@pxref{Point}). The keyboard commands @kbd{C-f}, @kbd{C-b},
@kbd{C-n}, and @kbd{C-p} move point to the right, left, up and down
respectively. These are equivalent to the commands @kbd{@key{right}},
@kbd{@key{left}}, @kbd{@key{down}}, and @kbd{@key{up}}, entered using
the @dfn{arrow keys} present on many keyboards. Many Emacs users find
that it is slower to use the arrow keys than the equivalent control
keys. You can also click the left mouse button to move point to the
respectively. You can also move point using the @dfn{arrow keys}
present on most keyboards: @kbd{@key{right}}, @kbd{@key{left}},
@kbd{@key{down}}, and @kbd{@key{up}}; however, many Emacs users find
that it is slower to use the arrow keys than the control keys.
You can also click the left mouse button to move point to the
position clicked. Emacs also provides a variety of additional
keyboard commands that move point in more sophisticated ways.
@kindex C-a
@kindex C-e
@kindex C-f
@kindex C-b
@kindex C-n
@kindex C-p
@kindex M->
@kindex M-<
@kindex M-r
@kindex LEFT
@kindex RIGHT
@kindex UP
@kindex DOWN
@findex move-beginning-of-line
@findex move-end-of-line
@findex forward-char
@findex backward-char
@findex right-char
@findex left-char
@findex next-line
@findex previous-line
@findex beginning-of-buffer
@findex end-of-buffer
@findex goto-char
@findex goto-line
@findex move-to-window-line
@table @kbd
@item C-a
@itemx @key{Home}
Move to the beginning of the line (@code{move-beginning-of-line}).
@item C-e
@itemx @key{End}
Move to the end of the line (@code{move-end-of-line}).
@item C-f
@kindex C-f
@findex forward-char
Move forward one character (@code{forward-char}).
@item @key{right}
Move one character to the right (@code{right-char}). This
moves one character forward in text that is read in the usual
left-to-right direction, but one character @emph{backward} if the text
is read right-to-left, as needed for right-to-left scripts such as
Arabic. @xref{Bidirectional Editing}.
@kindex RIGHT
@findex right-char
This command (@code{right-char}) behaves like @kbd{C-f}, with one
exception: when editing right-to-left scripts such as Arabic, it
instead moves @emph{backward} if the current paragraph is a
right-to-left paragraph. @xref{Bidirectional Editing}.
@item C-b
@kindex C-b
@findex backward-char
Move backward one character (@code{backward-char}).
@item @key{left}
Move one character to the left (@code{left-char}). This
moves one character backward in left-to-right text and one character
forward in right-to-left text.
@item M-f
@itemx M-@key{right}
Move forward one word (@code{forward-word}).
@item C-@key{right}
Move one word to the right (@code{right-word}). This moves one word
forward in left-to-right text and one word backward in right-to-left
text.
@item M-b
@itemx M-@key{left}
Move backward one word (@code{backward-word}).
@item C-@key{left}
Move one word to the left (@code{left-word}). This moves one word
backward in left-to-right text and one word forward in right-to-left
text.
@kindex LEFT
@findex left-char
This command (@code{left-char}) behaves like @kbd{C-b}, except it
moves @emph{forward} if the current paragraph is right-to-left.
@xref{Bidirectional Editing}.
@item C-n
@itemx @key{down}
@kindex C-n
@kindex DOWN
@findex next-line
Move down one screen line (@code{next-line}). This command attempts
to keep the horizontal position unchanged, so if you start in the
middle of one line, you move to the middle of the next.
@item C-p
@itemx @key{up}
@kindex C-p
@kindex UP
@findex previous-line
Move up one screen line (@code{previous-line}). This command
preserves position within the line, like @kbd{C-n}.
@item C-a
@itemx @key{Home}
@kindex C-a
@kindex HOME
@findex move-beginning-of-line
Move to the beginning of the line (@code{move-beginning-of-line}).
@item C-e
@itemx @key{End}
@kindex C-e
@kindex END
@findex move-end-of-line
Move to the end of the line (@code{move-end-of-line}).
@item M-f
@kindex M-f
@findex forward-word
Move forward one word (@code{forward-word}).
@item C-@key{right}
@itemx M-@key{right}
@kindex C-RIGHT
@kindex M-RIGHT
@findex right-word
This command (@code{right-word}) behaves like @kbd{M-f}, except it
moves @emph{backward} by one word if the current paragraph is
right-to-left. @xref{Bidirectional Editing}.
@item M-b
@kindex M-b
@findex backward-word
Move backward one word (@code{backward-word}).
@item C-@key{left}
@itemx M-@key{left}
@kindex C-LEFT
@kindex M-LEFT
@findex left-word
This command (@code{left-word}) behaves like @kbd{M-f}, except it
moves @emph{forward} by one word if the current paragraph is
right-to-left. @xref{Bidirectional Editing}.
@item M-r
@kindex M-r
@findex move-to-window-line-top-bottom
Without moving the text on the screen, reposition point on the left
margin of the center-most text line of the window; on subsequent
consecutive invocations, move point to the left margin of the top-most
@ -211,13 +238,18 @@ line, the bottom-most line, and so forth, in cyclic order
A numeric argument says which screen line to place point on, counting
downward from the top of the window (zero means the top line). A
negative argument counts lines up from the bottom (@minus{}1 means the
bottom line).
bottom line). @xref{Arguments}, for more information on numeric
arguments.
@item M-<
@kindex M-<
@findex beginning-of-buffer
Move to the top of the buffer (@code{beginning-of-buffer}). With
numeric argument @var{n}, move to @var{n}/10 of the way from the top.
@xref{Arguments}, for more information on numeric arguments.@refill
@item M->
@kindex M->
@findex end-of-buffer
Move to the end of the buffer (@code{end-of-buffer}).
@item C-v
@ -233,10 +265,15 @@ Scroll one screen backward, and move point onscreen if necessary
(@code{scroll-down-command}). @xref{Scrolling}.
@item M-x goto-char
@findex goto-char
Read a number @var{n} and move point to buffer position @var{n}.
Position 1 is the beginning of the buffer.
@item M-g M-g
@itemx M-g g
@kindex M-g M-g
@kindex M-g g
@findex goto-line
Read a number @var{n} and move point to the beginning of line number
@var{n} (@code{goto-line}). Line 1 is the beginning of the buffer. If
point is on or just after a number in the buffer, that is the default
@ -244,14 +281,16 @@ for @var{n}. Just type @key{RET} in the minibuffer to use it. You can
also specify @var{n} by giving @kbd{M-g M-g} a numeric prefix argument.
@xref{Select Buffer}, for the behavior of @kbd{M-g M-g} when you give it
a plain prefix argument.
@item C-x C-n
@findex set-goal-column
@kindex C-x C-n
@findex set-goal-column
Use the current column of point as the @dfn{semipermanent goal column}
for @kbd{C-n} and @kbd{C-p} (@code{set-goal-column}). When a
semipermanent goal column is in effect, those commands always try to
move to this column, or as close as possible to it, after moving
vertically. The goal column remains in effect until canceled.
@item C-u C-x C-n
Cancel the goal column. Henceforth, @kbd{C-n} and @kbd{C-p} try to
preserve the horizontal position, as usual.
@ -266,9 +305,8 @@ can force these commands to move according to @dfn{logical lines}
(i.e., according to the text lines in the buffer) by setting the
variable @code{line-move-visual} to @code{nil}; if a logical line
occupies multiple screen lines, the cursor then skips over the
additional screen lines. Moving by logical lines was the default
behavior prior to Emacs 23.1. For details, see @ref{Continuation
Lines}. @xref{Variables}, for how to set variables such as
additional screen lines. For details, see @ref{Continuation Lines}.
@xref{Variables}, for how to set variables such as
@code{line-move-visual}.
Unlike @kbd{C-n} and @kbd{C-p}, most of the Emacs commands that work
@ -288,21 +326,30 @@ the end of the next logical line. Normally, @code{track-eol} is
@vindex next-line-add-newlines
@kbd{C-n} normally stops at the end of the buffer when you use it on
the last line of the buffer. However, if you set the variable
the last line in the buffer. However, if you set the variable
@code{next-line-add-newlines} to a non-@code{nil} value, @kbd{C-n} on
the last line of a buffer creates an additional line at the end and
moves down into it.
@node Erasing
@section Erasing Text
@cindex killing characters and lines
@cindex deleting characters and lines
@cindex erasing characters and lines
@table @kbd
@item @key{DEL}
@itemx @key{Backspace}
Delete the character before point (@code{delete-backward-char}).
@item C-d
Delete the character before point, or the region if it is active
(@code{delete-backward-char}).
@itemx @key{Delete}
Delete the character after point, or the region if it is active
(@code{delete-forward-char}).
@item C-d
Delete the character after point (@code{delete-char}).
@item C-k
Kill to the end of the line (@code{kill-line}).
@item M-d
@ -312,37 +359,40 @@ Kill back to the beginning of the previous word
(@code{backward-kill-word}).
@end table
The key @kbd{@key{DEL}} (@code{delete-backward-char}) removes the
character before point, moving the cursor and all the characters after
it backwards. On most keyboards, @key{DEL} is labelled
@key{Backspace}, but we refer to it as @key{DEL} in this manual. Do
not confuse @key{DEL} with another key, labelled @key{Delete}, that
exists on many keyboards; we will discuss @key{Delete} momentarily.
The @kbd{@key{DEL}} (@code{delete-backward-char}) command removes
the character before point, moving the cursor and the characters after
it backwards. If point was at the beginning of a line, this deletes
the preceding newline, joining this line to the previous one.
Typing @key{DEL} when the cursor is at the beginning of a line
deletes the preceding newline character, joining the line with the one
before it.
If, however, the region is active, @kbd{@key{DEL}} instead deletes
the text in the region. @xref{Mark}, for a description of the region.
On some text-only terminals, Emacs may not recognize the @key{DEL}
key properly. If @key{DEL} does not do the right thing (e.g., if it
deletes characters forwards), see @ref{DEL Does Not Delete}.
On most keyboards, @key{DEL} is labelled @key{Backspace}, but we
refer to it as @key{DEL} in this manual. (Do not confuse @key{DEL}
with the @key{Delete} key; we will discuss @key{Delete} momentarily.)
On some text-only terminals, Emacs may not recognize the @key{DEL} key
properly. @xref{DEL Does Not Delete}, if you encounter this problem.
@cindex killing characters and lines
@cindex deleting characters and lines
@cindex erasing characters and lines
The key @kbd{C-d} (@code{delete-char}) deletes the character after
point, i.e., the character under the cursor. This shifts the rest of
the text on the line to the left. If you type @kbd{C-d} at the end of
a line, it joins that line with the following line. This command is
also bound to the key labelled @key{Delete} on many keyboards.
The @key{delete} (@code{delete-forward-char}) command deletes in the
``opposite direction'': it deletes the character after point, i.e. the
character under the cursor. If point was at the end of a line, this
joins the following line onto this one. Like @kbd{@key{DEL}}, it
deletes the text in the region if the region is active (@pxref{Mark}).
To erase a larger amount of text, use the @kbd{C-k} key, which
erases (kills) a line at a time. If you type @kbd{C-k} at the
beginning or middle of a line, it kills all the text up to the end of
the line. If you type @kbd{C-k} at the end of a line, it joins that
line with the following line.
@kbd{C-d} (@code{delete-char}) deletes the character after point,
similar to @key{delete}, but regardless of whether the region is
active.
To learn more about killing text, see @ref{Killing}.
@xref{Deletion}, for more detailed information about the above
deletion commands.
@kbd{C-k} (@code{kill-line}) erases (kills) a line at a time. If
you type @kbd{C-k} at the beginning or middle of a line, it kills all
the text up to the end of the line. If you type @kbd{C-k} at the end
of a line, it joins that line with the following line.
@xref{Killing}, for more information about @kbd{C-k} and related
commands.
@node Basic Undo
@section Undoing Changes
@ -352,7 +402,7 @@ line with the following line.
Undo one entry of the undo records---usually, one command worth
(@code{undo}).
@itemx C-x u
@item C-_
@itemx C-_
The same.
@end table
@ -379,10 +429,7 @@ command displays an error message and does nothing.
Text that you insert in an Emacs buffer lasts only as long as the
Emacs session. To keep any text permanently, you must put it in a
@dfn{file}. Files are named units of text which are stored by the
operating system for you to retrieve later by name. To use the
contents of a file in any way, including editing it with Emacs, you
must specify the file name.
@dfn{file}.
Suppose there is a file named @file{test.emacs} in your home
directory. To begin editing this file in Emacs, type
@ -417,14 +464,15 @@ first time you save this buffer with @kbd{C-x C-s}.
@section Help
@cindex getting help with keys
If you forget what a key does, you can find out with the Help
character, which is @kbd{C-h} (or @key{F1}, which is an alias for
@kbd{C-h}). Type @kbd{C-h k}, followed by the key of interest; for
example, @kbd{C-h k C-n} tells you what @kbd{C-n} does. @kbd{C-h} is
a prefix key; @kbd{C-h k} is just one of its subcommands (the command
@code{describe-key}). The other subcommands of @kbd{C-h} provide
different kinds of help. Type @kbd{C-h} twice to get a description of
all the help facilities. @xref{Help}.
If you forget what a key does, you can find out by typing @kbd{C-h
k} (@code{describe-key}), followed by the key of interest; for
example, @kbd{C-h k C-n} tells you what @kbd{C-n} does.
The prefix key @kbd{C-h} stands for ``help''. The key @key{F1}
serves as an alias for @kbd{C-h}. Apart from @kbd{C-h k}, there are
many other help commands providing different kinds of help.
@xref{Help}, for details.
@node Blank Lines
@section Blank Lines
@ -532,12 +580,17 @@ Display the line number of point in the whole buffer.
@itemx M-x column-number-mode
Toggle automatic display of the current line number or column number.
@xref{Optional Mode Line}.
@item M-x count-lines-region
Display the number of lines in the current region. Normally bound to
@kbd{M-=}, except in a few specialist modes. @xref{Mark}, for
information about the region.
@item M-=
Display the number of lines in the region (@code{count-lines-region}).
@xref{Mark}, for information about the region.
@item C-x l
Display the number of lines in the current page
(@code{count-lines-page}). @xref{Pages}.
@item M-x count-words-region
Display the number of words in the current region.
Display the number of words in the region.
@item C-x =
Display the character code of character after point, character position of
point, and column of point (@code{what-cursor-position}).
@ -569,9 +622,10 @@ counts lines within the page, showing both numbers in the echo area.
@kindex M-=
@findex count-lines-region
Use @kbd{M-x count-lines-region} (normally bound to @kbd{M-=}) to
display the number of lines in the region (@pxref{Mark}). @xref{Pages},
for the command @kbd{C-x l} which counts the lines in the current page.
@kbd{M-=} (@code{count-lines-region}) displays the number of lines
in the region (@pxref{Mark}), while @kbd{C-x l}
(@code{count-lines-page}) counts the lines in the current page
(@pxref{Pages}).
@kindex C-x =
@findex what-cursor-position

View file

@ -23,25 +23,21 @@ input.
@cindex @acronym{ASCII}
@cindex C-
@cindex Control
@cindex control characters
GNU Emacs is primarily designed for use with the keyboard. While it
is possible to use the mouse to issue editing commands through the
menu bar and tool bar, that is not as efficient as using the keyboard.
Therefore, this manual mainly documents how to edit with the keyboard.
@cindex control character
Keyboard input into Emacs is based on a heavily-extended version of
@acronym{ASCII}. The simplest characters that you can input into
Emacs correspond to graphic symbols such as @samp{a}, @samp{B},
@samp{3}, @samp{=}, the space character (conventionally denoted as
@key{SPC}), and so on. Entering these using the keyboard is
straightforward. Certain characters found on non-English keyboards
also fall into this category (@pxref{International}).
In addition to these simple characters, Emacs recognizes
@dfn{control characters} such as @key{RET}, @key{TAB}, @key{DEL},
@key{ESC}, @key{F1}, @key{Home}, @key{left}, etc. Most keyboards have
special keys for entering these.
@acronym{ASCII}. Simple characters, like @samp{a}, @samp{B},
@samp{3}, @samp{=}, and the space character (denoted as @key{SPC}),
are entered by typing the corresponding key. @dfn{Control
characters}, such as @key{RET}, @key{TAB}, @key{DEL}, @key{ESC},
@key{F1}, @key{Home}, and @key{left}, are also entered this way, as
are certain characters found on non-English keyboards
(@pxref{International}).
@cindex modifier keys
@cindex Control
@ -50,13 +46,14 @@ special keys for entering these.
@cindex M-
Emacs also recognizes control characters that are entered using
@dfn{modifier keys}. Two commonly-used modifier keys are
@key{Control} (which is usually labelled as @key{Ctrl}), and
@key{Meta} (which is usually labeled as @key{Alt})@footnote{We refer
to @key{Alt} as @key{Meta} for historical reasons.}. For example,
@kbd{Control-a} is entered by holding down the @key{Ctrl} key while
pressing @kbd{a}; we will refer to this as @kbd{C-a} for short.
Similarly @kbd{Meta-a}, or @kbd{M-a} for short, is entered by holding
down the @key{Alt} key and pressing @kbd{a}.
@key{Control} (usually labelled @key{Ctrl}), and @key{Meta} (usually
labeled @key{Alt})@footnote{We refer to @key{Alt} as @key{Meta} for
historical reasons.}. For example, @kbd{Control-a} is entered by
holding down the @key{Ctrl} key while pressing @kbd{a}; we will refer
to this as @kbd{C-a} for short. Similarly @kbd{Meta-a}, or @kbd{M-a}
for short, is entered by holding down the @key{Alt} key and pressing
@kbd{a}. Modifier keys can also be applied to non-alphanumerical
characters, e.g. @kbd{C-@key{F1}} or @kbd{M-@key{left}}.
@cindex @key{ESC} replacing @key{Meta} key
You can also type Meta characters using two-character sequences
@ -68,33 +65,28 @@ character; instead, press @key{ESC} and release it, then enter the
next character. This feature is useful on certain text-only terminals
where the @key{Meta} key does not function reliably.
Modifier keys can apply not only to alphanumerical characters, but
also to special input characters, such as the arrow keys and mouse
buttons.
@cindex input event
@xref{Input Events,,, elisp, The Emacs Lisp Reference Manual}, for
the full Lisp-level details about keyboard and mouse input, which are
collectively referred to as @dfn{input events}. If you are not doing
Lisp programming, but simply want to redefine the meaning of some
characters or non-character events, see @ref{Customization}.
@cindex keys stolen by window manager
@cindex window manager, keys stolen by
On graphical displays, the window manager is likely to block the
character @kbd{M-@key{TAB}} before Emacs can see it. It may also
block @kbd{M-@key{SPC}}, @kbd{C-M-d} and @kbd{C-M-l}. If you have
these problems, we recommend that you customize your window manager to
turn off those commands, or put them on key combinations that Emacs
does not use.
On graphical displays, the window manager might block some keyboard
inputs, including @kbd{M-@key{TAB}}, @kbd{M-@key{SPC}}, @kbd{C-M-d}
and @kbd{C-M-l}. If you have this problem, you can either customize
your window manager to not block those keys, or ``rebind'' the
affected Emacs commands (@pxref{Customization}).
@cindex input event
Simple characters and control characters, as well as certain
non-keyboard inputs such as mouse clicks, are collectively referred to
as @dfn{input events}. For details about how Emacs internally handles
input events, see @ref{Input Events,,, elisp, The Emacs Lisp Reference
Manual}.
@node Keys, Commands, User Input, Top
@section Keys
Some Emacs commands are invoked by just one input event; for
example, @kbd{C-f} moves forward one character in the buffer. But
Emacs also has commands that take two or more input events to invoke,
such as @kbd{C-x C-f} and @kbd{C-x 4 C-f}.
example, @kbd{C-f} moves forward one character in the buffer. Other
commands take two or more input events to invoke, such as @kbd{C-x
C-f} and @kbd{C-x 4 C-f}.
@cindex key
@cindex key sequence
@ -106,23 +98,23 @@ invokes a command, we call it a @dfn{complete key}; for example,
@kbd{C-f}, @kbd{C-x C-f} and @kbd{C-x 4 C-f} are all complete keys.
If a key sequence isn't long enough to invoke a command, we call it a
@dfn{prefix key}; from the preceding example, we see that @kbd{C-x}
and @kbd{C-x 4} are prefix keys. Every key is either a complete key
or a prefix key.
and @kbd{C-x 4} are prefix keys. Every key sequence is either a
complete key or a prefix key.
A prefix key combines with the following input event to make a
longer key sequence, which may itself be complete or a prefix. For
example, @kbd{C-x} is a prefix key, so @kbd{C-x} and the next input
event combine to make a two-event key sequence. This two-event key
sequence could itself be a prefix key (such as @kbd{C-x 4}), or a
complete key (such as @kbd{C-x C-f}). There is no limit to the length
of a key sequence, but in practice people rarely use sequences longer
than three or four input events.
longer key sequence. For example, @kbd{C-x} is a prefix key, so
typing @kbd{C-x} alone does not invoke a command; instead, Emacs waits
for further input (if you pause for longer than a second, it echoes
the @kbd{C-x} key to prompt for that input; @pxref{Echo Area}).
@kbd{C-x} combines with the next input event to make a two-event key
sequence, which could itself be a prefix key (such as @kbd{C-x 4}), or
a complete key (such as @kbd{C-x C-f}). There is no limit to the
length of key sequences, but in practice they are seldom longer than
three or four input events.
You can't add input events onto a complete key. For example, the
two-event sequence @kbd{C-f C-k} is not a key, because the @kbd{C-f}
is a complete key in itself, so @kbd{C-f C-k} cannot have an
independent meaning as a command. @kbd{C-f C-k} is two key sequences,
not one.@refill
You can't add input events onto a complete key. For example,
because @kbd{C-f} is a complete key, the two-event sequence @kbd{C-f
C-k} is two key sequences, not one.
By default, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h},
@kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x
@ -132,22 +124,20 @@ aliases for @kbd{C-h} and @kbd{C-x 6}.) This list is not cast in
stone; if you customize Emacs, you can make new prefix keys. You
could even eliminate some of the standard ones, though this is not
recommended for most users; for example, if you remove the prefix
definition of @kbd{C-x 4}, then @kbd{C-x 4 @var{anything}} would
become an invalid key sequence. @xref{Key Bindings}.
definition of @kbd{C-x 4}, then @kbd{C-x 4 C-f} becomes an invalid key
sequence. @xref{Key Bindings}.
Typing the help character (@kbd{C-h} or @key{F1}) after a prefix key
displays a list of the commands starting with that prefix. The sole
exception to this rule is @key{ESC}: @kbd{@key{ESC} C-h} is equivalent
to @kbd{C-M-h}, which does something else entirely. You can, however,
use @key{F1} to displays a list of the commands starting with
@key{ESC}.
use @key{F1} to display a list of commands starting with @key{ESC}.
@node Commands, Entering Emacs, Keys, Top
@section Keys and Commands
@cindex binding
@cindex command
@cindex function definition
This manual is full of passages that tell you what particular keys
do. But Emacs does not assign meanings to keys directly. Instead,
Emacs assigns meanings to named @dfn{commands}, and then gives keys
@ -155,11 +145,9 @@ their meanings by @dfn{binding} them to commands.
Every command has a name chosen by a programmer. The name is
usually made of a few English words separated by dashes; for example,
@code{next-line} or @code{forward-word}. A command also has a
@dfn{function definition} which is a Lisp program; this is how the
command does its work. In Emacs Lisp, a command is a Lisp function
with special properties that make it suitable for interactive use.
For more information on commands and functions, see @ref{What Is a
@code{next-line} or @code{forward-word}. Internally, each command is
a special type of Lisp @dfn{function}, and the actions associated with
the command are performed by running the function. @xref{What Is a
Function,, What Is a Function, elisp, The Emacs Lisp Reference
Manual}.

View file

@ -19,49 +19,45 @@
The usual way to invoke Emacs is with the shell command
@command{emacs}. From a terminal window running in the X Window
System, you can also run Emacs in the background with
@command{emacs&}; this way, Emacs won't tie up the terminal window, so
you can use it to run other shell commands.
System, you can run Emacs in the background with @command{emacs &};
this way, Emacs won't tie up the terminal window, so you can use it to
run other shell commands.
@cindex startup screen
When Emacs starts up, the initial frame displays a special buffer
named @samp{*GNU Emacs*}. This buffer contains some information about
Emacs, and includes @dfn{links} to common tasks that might be useful
to beginning users. For instance, activating the @samp{Emacs
named @samp{*GNU Emacs*}. This @dfn{startup screen} contains
information about Emacs and @dfn{links} to common tasks that are
useful for beginning users. For instance, activating the @samp{Emacs
Tutorial} link opens the Emacs tutorial; this does the same thing as
the command @kbd{C-h t} (@code{help-with-tutorial}). To activate a
link, either move point onto it and type @kbd{@key{RET}}, or click on
it with @kbd{mouse-1} (the left mouse button).
Using a command line argument, you can tell Emacs to visit one or
more specific files as soon as it starts up. For example,
@command{emacs foo.txt} starts Emacs with a buffer displaying the
contents of the file @samp{foo.txt}. This feature exists mainly for
compatibility with other editors, which are designed to edit one file
at a time: once you are done with that file, you exit the editor, and
start it again the next time you need it.
more files as soon as it starts up. For example, @command{emacs
foo.txt} starts Emacs with a buffer displaying the contents of the
file @samp{foo.txt}. This feature exists mainly for compatibility
with other editors, which are designed to be launched from the shell
for short editing sessions. If you call Emacs this way, the initial
frame is split into two windows---one showing the specified file, and
the other showing the startup screen. @xref{Windows}.
Using Emacs in this way---starting it afresh each time you want to
edit a file---is unnecessary and wasteful. Emacs can visit more than
one file in a single editing session, and exiting the Emacs session
loses valuable accumulated context, such as the kill ring, registers,
undo history, and mark ring. These features, described later in the
manual, are useful for performing edits across multiple files, or
continuing edits to a single file.
The recommended way to use Emacs is to start it only once, just
after you log in, and do all your editing in the same Emacs session.
Each time you edit a file, visit it with the existing Emacs, which
eventually has many files in it ready for editing. @xref{Files}, for
more information on visiting more than one file.
Generally, it is unnecessary and wasteful to start Emacs afresh each
time you want to edit a file. The recommended way to use Emacs is to
start it just once, just after you log in, and do all your editing in
the same Emacs session. @xref{Files}, for information on visiting
more than one file. If you use Emacs this way, the Emacs session
accumulates valuable context, such as the kill ring, registers, undo
history, and mark ring data, which together make editing more
convenient. These features are described later in the manual.
To edit a file from another program while Emacs is running, you can
use the @command{emacsclient} helper program to open a file in the
already running Emacs. @xref{Emacs Server}.
existing Emacs session. @xref{Emacs Server}.
Emacs accepts other command line arguments that tell it to load
certain Lisp files, call certain functions, and so forth. These
features exist mainly for advanced users. @xref{Emacs Invocation}.
certain Lisp files, where to put the initial frame, and so forth.
@xref{Emacs Invocation}.
@vindex inhibit-startup-screen
If the variable @code{inhibit-startup-screen} is non-@code{nil},
@ -72,11 +68,10 @@ which can be used to evaluate Emacs Lisp expressions interactively.
@xref{Lisp Interaction}. You can set the variable
@code{inhibit-startup-screen} using the Customize facility
(@pxref{Easy Customization}), or by editing your initialization file
(@pxref{Init File}).@footnote{Note that setting
@code{inhibit-startup-screen} in @file{site-start.el} doesn't work,
because the startup screen is set up before reading
@file{site-start.el}. @xref{Init File}, for information about
@file{site-start.el}.}
(@pxref{Init File}).@footnote{Setting @code{inhibit-startup-screen} in
@file{site-start.el} doesn't work, because the startup screen is set
up before reading @file{site-start.el}. @xref{Init File}, for
information about @file{site-start.el}.}
You can also force Emacs to display a file or directory at startup
by setting the variable @code{initial-buffer-choice} to a
@ -105,13 +100,13 @@ On a text terminal, suspend Emacs; on a graphical display,
@findex save-buffers-kill-terminal
@dfn{Killing} Emacs means terminating the Emacs program. To do
this, type @kbd{C-x C-c} (@code{save-buffers-kill-terminal}). A
two-character key is used to make it harder to type by accident. If
there are any modified file-visiting buffers when you type @kbd{C-x
C-c}, Emacs first offers to save these buffers. If you do not save
them all, it asks for confirmation again, since the unsaved changes
will be lost. Emacs also asks for confirmation if any subprocesses
are still running, since killing Emacs will also kill the subprocesses
(@pxref{Shell}).
two-character key sequence is used to make it harder to type by
accident. If there are any modified file-visiting buffers when you
type @kbd{C-x C-c}, Emacs first offers to save these buffers. If you
do not save them all, it asks for confirmation again, since the
unsaved changes will be lost. Emacs also asks for confirmation if any
subprocesses are still running, since killing Emacs will also kill the
subprocesses (@pxref{Shell}).
@kbd{C-x C-c} behaves specially if you are using Emacs as a server.
If you type it from a ``client frame'', it closes the client
@ -135,39 +130,19 @@ default value of @code{confirm-kill-emacs} is @code{nil}.
To kill Emacs without being prompted about saving, type @kbd{M-x
kill-emacs}.
@cindex minimizing a frame
@cindex iconifying
@cindex suspending
You can ``exit'' Emacs in two other ways. On a graphical display,
you can @dfn{minimize} (or @dfn{iconify}) an Emacs frame; depending on
the window system, this either replaces the Emacs frame with a tiny
``icon'' or conceals the frame entirely (@pxref{Frames}). On a
text-only terminal, you can @dfn{suspend} Emacs; this means stopping
the Emacs program temporarily, returning control to its parent process
(usually a shell).
@kindex C-z
@findex suspend-frame
@cindex minimizing
@cindex iconifying
@cindex suspending
@kbd{C-z} runs the command @code{suspend-frame}. On a graphical
display, this ``minimizes'' (or ``iconifies'') the selected Emacs
frame. On a text terminal, this suspends the Emacs process.
After minimizing or suspending Emacs, you can return to it and
continue editing wherever you left off. The way to do this depends on
the window system or shell. In most common shells, you can resume
Emacs after suspending it with the shell command @command{%emacs}.
@vindex cannot-suspend
On very old systems that don't support suspending programs,
@kbd{C-z} starts an inferior shell that communicates directly with the
terminal, and Emacs waits until you exit the subshell. (The way to
exit the subshell is usually @kbd{C-d} or @command{exit}.) On these
systems, you can only get back to the shell from which Emacs was run
(to log out, for example) when you kill Emacs. Suspending can also
fail if you run Emacs under a shell that doesn't support suspending
jobs, even if the system itself does support it. In this case, you
can set the variable @code{cannot-suspend} to a non-@code{nil} value
to force @kbd{C-z} to start an inferior shell.
display, this command @dfn{minimizes} (or @dfn{iconifies}) the
selected Emacs frame, hiding it in a way that lets you bring it back
later (exactly how this hiding occurs depends on the window system).
On a text terminal, the @kbd{C-z} command @dfn{suspends} Emacs,
stopping the program temporarily and returning control to the parent
process (usually a shell); in most shells, you can resume Emacs after
suspending it with the shell command @command{%emacs}.
Text-only terminals usually listen for certain special characters
whose meaning is to kill or suspend the program you are running.

View file

@ -1229,8 +1229,7 @@ raises the frame.
@node Non-Window Terminals
@section Non-Window Terminals
@cindex non-window terminals
@cindex single-frame terminals
@cindex text-only terminal
On a text-only terminal, Emacs can display only one Emacs frame at a
time. However, you can still create multiple Emacs frames, and switch

View file

@ -5,31 +5,35 @@
@node Screen, User Input, Acknowledgments, Top
@chapter The Organization of the Screen
@cindex screen
@cindex parts of the screen
@cindex frame
On a text-only terminal, the Emacs display occupies the entire
terminal screen. On a graphical display, such as on GNU/Linux using
the X Window System, Emacs creates its own windows to use. We use the
term @dfn{frame} to mean the entire terminal screen or graphical
window used by Emacs. Emacs uses both kinds of frames, in the same
way, to display your editing. Emacs normally starts out with just one
frame, but you can create additional frames if you wish
(@pxref{Frames}).
On a graphical display, such as on GNU/Linux using the X Window
System, Emacs occupies a ``graphical window''. On a text-only
terminal, Emacs occupies the entire terminal screen. We will use the
term @dfn{frame} to mean a graphical window or terminal screen
occupied by Emacs. Emacs behaves very similarly on both kinds of
frames. It normally starts out with just one frame, but you can
create additional frames if you wish (@pxref{Frames}).
The frame consists of several distinct regions. At the top of the
Each frame consists of several distinct regions. At the top of the
frame is a @dfn{menu bar}, which allows you to access commands via a
series of menus. On a graphical display, directly below the menu bar
is a @dfn{tool bar}, a row of icons that perform editing commands if
you click on them. At the very bottom of the frame is a special
@dfn{echo area}, where short informative messages are displayed and
where you enter information when Emacs asks for it.
you click on them. At the very bottom of the frame is an @dfn{echo
area}, where informative messages are displayed and where you enter
information when Emacs asks for it.
The main area of the frame, below the tool bar (if one exists) and
above the echo area, is called @dfn{the window}. This is where Emacs
displays the @dfn{buffer}: the text that you are editing. On a
graphical display, the window possesses a @dfn{scroll bar} on one
side, which you can use to display different parts of the buffer in
the window. The last line of the window is a @dfn{mode line}. This
above the echo area, is called @dfn{the window}. Henceforth in this
manual, we will use the word ``window'' in this sense. Graphical
display systems commonly use the word ``window'' with a different
meaning; but, as stated above, we refer to those ``graphical windows''
as ``frames''.
An Emacs window is where the @dfn{buffer}---the text you are
editing---is displayed. On a graphical display, the window possesses
a @dfn{scroll bar} on one side, which can be used to scroll through
the buffer. The last line of the window is a @dfn{mode line}. This
displays various information about what is going on in the buffer,
such as whether there are unsaved changes, the editing modes that are
in use, the current line number, and so forth.
@ -37,20 +41,18 @@ in use, the current line number, and so forth.
When you start Emacs, there is normally only one window in the
frame. However, you can subdivide this window horizontally or
vertically to create multiple windows, each of which can independently
display a buffer (@pxref{Windows}). In this manual, the word
``window'' refers to the initial large window if not subdivided, or
any one of the multiple windows you have subdivided it into.
display a buffer (@pxref{Windows}).
At any time, one window is the @dfn{selected window}. On graphical
displays, the selected window normally shows a more prominent cursor
(usually solid and blinking) while other windows show a weaker cursor
(such as a hollow box). Text terminals have just one cursor, so it
always appears in the selected window. The buffer displayed in the
selected window is called the @dfn{current buffer}, and it is where
editing happens. Most Emacs commands implicitly apply to the current
buffer; the text displayed in unselected windows is mostly visible for
reference. If you use multiple frames on a graphical display,
selecting a particular frame selects a window in that frame.
At any time, one window is the @dfn{selected window}. On a
graphical display, the selected window shows a more prominent cursor
(usually solid and blinking); other windows show a less prominent
cursor (usually a hollow box). On a text terminal, there is only one
cursor, which is shown in the selected window. The buffer displayed
in the selected window is called the @dfn{current buffer}, and it is
where editing happens. Most Emacs commands implicitly apply to the
current buffer; the text displayed in unselected windows is mostly
visible for reference. If you use multiple frames on a graphical
display, selecting a particular frame selects a window in that frame.
@menu
* Point:: The place in the text where editing commands operate.
@ -64,42 +66,33 @@ selecting a particular frame selects a window in that frame.
@cindex point
@cindex cursor
The active cursor shows the location at which editing commands will
take effect, which is called @dfn{point}@footnote{The term ``point''
comes from the character @samp{.}, which was the command in TECO (the
language in which the original Emacs was written) for accessing the
value now called ``point.''}. Many Emacs commands move point to
different places in the buffer; for example, you can place point by
The cursor in the selected window shows the location where most
editing commands take effect, which is called @dfn{point}@footnote{The
term ``point'' comes from the character @samp{.}, which was the
command in TECO (the language in which the original Emacs was written)
for accessing the editing position.}. Many Emacs commands move point
to different places in the buffer; for example, you can place point by
clicking mouse button 1 (normally the left button) at the desired
location.
If you use a block cursor, the cursor appears to be @emph{on} a
character, but you should think of point as @emph{between} two
characters; it points @emph{before} the character that appears under
the cursor. For example, if your text looks like @samp{frob} with the
cursor over the @samp{b}, then point is between the @samp{o} and the
@samp{b}. If you insert the character @samp{!} at that position, the
result is @samp{fro!b}, with point between the @samp{!} and the
@samp{b}. Thus, the cursor remains over the @samp{b}, as before.
Sometimes people speak of ``the cursor'' when they mean ``point,'' or
speak of commands that move point as ``cursor motion'' commands.
By default, the cursor in the selected window is drawn as a solid
block and appears to be @emph{on} a character, but you should think of
point as @emph{between} two characters; it is situated @emph{before}
the character under the cursor. For example, if your text looks like
@samp{frob} with the cursor over the @samp{b}, then point is between
the @samp{o} and the @samp{b}. If you insert the character @samp{!}
at that position, the result is @samp{fro!b}, with point between the
@samp{!} and the @samp{b}. Thus, the cursor remains over the
@samp{b}, as before.
If you are editing several files in Emacs, each in its own buffer,
each buffer has its own point location. A buffer that is not
currently displayed remembers its point location in case you display
it again later. When Emacs displays multiple windows, each window has
its own point location. If the same buffer appears in more than one
window, each window has its own point position in that buffer.
each buffer has its own value of point. A buffer that is not
currently displayed remembers its value of point if you later display
it again. Furthermore, if a buffer is displayed in multiple windows,
each of those windows has its own value of point.
On a graphical display, Emacs shows a cursor in each window. The
selected window's cursor will be blinking. If you use the default,
@code{box} cursor type, the selected window's cursor will be solid,
and the other cursors are hollow. On a text-only terminal, there is
just one cursor, in the selected window; even though the unselected
windows have their own point positions, they do not display a cursor.
@xref{Cursor Display}, for customizable variables that control cursor
display.
@xref{Cursor Display}, for options that control how Emacs displays
the cursor.
@node Echo Area
@section The Echo Area
@ -108,40 +101,41 @@ display.
The line at the very bottom of the frame is the @dfn{echo area}. It
is used to display small amounts of text for various purposes.
@dfn{Echoing} means displaying the characters that you type.
Single-character commands, including most simple editing operations,
are not echoed. Multi-character commands are echoed if you pause
while typing them: if you pause for more than a second in the middle
of a command, Emacs echoes all the characters of the command so far,
to prompt you for the rest of the command. The echoed characters are
displayed in the echo area. Once echoing has started, the rest of the
command echoes immediately as you type it. This behavior is designed
to give confident users fast response, while giving hesitant users
maximum feedback. @xref{Display Custom}.
@cindex echoing
The echo area is so-named because one of the things it is used for
is @dfn{echoing}, which means displaying the characters of a
multi-character command as you type. Single-character commands are
not echoed. Multi-character commands (@pxref{Keys}) are echoed if you
pause for more than a second in the middle of a command. Emacs then
echoes all the characters of the command so far, to prompt you for the
rest. Once echoing has started, the rest of the command echoes
immediately as you type it. This behavior is designed to give
confident users fast response, while giving hesitant users maximum
feedback.
@cindex error message in the echo area
If a command cannot do its job, it may display an @dfn{error
message}. Error messages are also displayed in the echo area. They
may be accompanied by beeping or by flashing the screen.
@cindex error message
@cindex echo area message
The echo area is also used to display an @dfn{error message} when a
command cannot do its job. Error messages may be accompanied by
beeping or by flashing the screen.
Some commands display informative messages in the echo area. Unlike
error messages, these messages are not announced with a beep or flash.
Sometimes the message tells you what the command has done, when this
is not obvious from looking at the text being edited. Other times,
the sole purpose of a command is to show you a message giving you
specific information. For example, @kbd{C-x =} (hold down @key{CTRL}
and type @kbd{x}, then let go of @key{CTRL} and type @kbd{=}) displays
a message describing the character position of point in the text and
its current column in the window. Commands that take a long time
often display messages ending in @samp{...} while they are working,
and add @samp{done} at the end when they are finished. They may also
indicate progress with percentages.
Some commands display informative messages in the echo area to tell
you what the command has done, or to provide you with some specific
information. These @dfn{informative} messages, unlike error messages,
are not accompanied with a beep or flash. For example, @kbd{C-x =}
(hold down @key{CTRL} and type @kbd{x}, then let go of @key{CTRL} and
type @kbd{=}) displays a message describing the character at point,
its position in the buffer, and its current column in the window.
Commands that take a long time often display messages ending in
@samp{...} while they are working (sometimes also indicating how much
progress has been made, as a percentage), and add @samp{done} when
they are finished.
@cindex @samp{*Messages*} buffer
@cindex saved echo area messages
@cindex messages saved from echo area
@vindex message-log-max
Informative echo-area messages are saved in a special buffer named
Informative echo area messages are saved in a special buffer named
@samp{*Messages*}. (We have not explained buffers yet; see
@ref{Buffers}, for more information about them.) If you miss a
message that appeared briefly on the screen, you can switch to the
@ -152,15 +146,17 @@ either; see @ref{Variables}, for more information about them.) Beyond
this limit, one line is deleted from the beginning whenever a new
message line is added at the end.
@xref{Display Custom}, for options that control how Emacs uses the
echo area.
@cindex minibuffer
The echo area is also used to display the @dfn{minibuffer}, a
special window where you can input arguments to commands, such as the
name of a file to be edited. When the minibuffer is in use, the text
displayed in the echo area begins with a @dfn{prompt string} (usually
ending with a colon); also, the active cursor appears within the
minibuffer, which is temporarily considered the selected window. You
can always get out of the minibuffer by typing @kbd{C-g}.
@xref{Minibuffer}.
displayed in the echo area begins with a @dfn{prompt string}, and the
active cursor appears within the minibuffer, which is temporarily
considered the selected window. You can always get out of the
minibuffer by typing @kbd{C-g}. @xref{Minibuffer}.
@node Mode Line
@section The Mode Line
@ -171,47 +167,51 @@ can always get out of the minibuffer by typing @kbd{C-g}.
what is going on in the current buffer. When there is only one
window, the mode line appears right above the echo area; it is the
next-to-last line in the frame. On a graphical display, the mode line
is drawn with a 3D box appearance, and the mode line of the selected
window has a brighter color than that of unselected windows to make it
stand out. On a text-only terminal, the mode line is usually drawn in
inverse video.
is drawn with a 3D box appearance. Emacs also usually draws the mode
line of the selected window with a different color than that of
unselected windows, in order to make it stand out.
The text displayed in the mode line has the following format:
@example
-@var{cs}:@var{ch}-@var{fr} @var{buf} @var{pos} @var{line} (@var{major} @var{minor})------
@var{cs}:@var{ch}-@var{fr} @var{buf} @var{pos} @var{line} (@var{major} @var{minor})
@end example
@noindent
On a text-only terminal, this text is followed by a series of dashes
extending to the right edge of the window. These dashes are omitted
on a graphical display.
The @var{cs} string and the colon character after it describe the
character set and newline convention used for the current buffer.
Normally, Emacs handles these settings intelligently, but it is
sometimes useful to have this information.
Normally, Emacs automatically handles these settings for you, but it
is sometimes useful to have this information.
@var{cs} describes the character set of the buffer (@pxref{Coding
Systems}). If it is a dash (@samp{-}), that indicates the default
state of affairs: no special character set handling, except for the
end-of-line translations described in the next paragraph. @samp{=}
means no conversion whatsoever. Characters represent various nontrivial
@var{cs} describes the character set of the text in the buffer
(@pxref{Coding Systems}). If it is a dash (@samp{-}), that indicates
no special character set handling (with the possible expection of
end-of-line conventions, described in the next paragraph). @samp{=}
means no conversion whatsoever, and is usually used for files
containing non-textual data. Other characters represent various
@dfn{coding systems}---for example, @samp{1} represents ISO Latin-1.
On a text-only terminal, @var{cs} is preceded by two additional
characters that describe the coding system for keyboard input and the
coding system for terminal output. Furthermore, if you are using an
input method, @var{cs} is preceded by a string that identifies the
input method, which takes the form @samp{@var{i}>}, @samp{@var{i}+},
or @samp{@var{i}@@} (@pxref{Input Methods}).
@cindex end-of-line conversion, mode-line indication
The character after @var{cs} is usually a colon. However, under
some circumstances a different string is displayed, which indicates a
nontrivial end-of-line convention. Usually, lines of text are
separated by @dfn{newline characters}, but two other conventions are
sometimes used. The MS-DOS convention is to use a ``carriage-return''
On a text-only terminal, @var{cs} is preceded by two additional
characters that describe the coding systems for keyboard input and
terminal output. Furthermore, if you are using an input method,
@var{cs} is preceded by a string that identifies the input method
(@pxref{Input Methods}).
@cindex end-of-line convention, mode-line indication
The character after @var{cs} is usually a colon. If a different
string is displayed, that indicates a nontrivial end-of-line
convention for encoding a file. Usually, lines of text are separated
by @dfn{newline characters} in a file, but two other conventions are
sometimes used. The MS-DOS convention uses a ``carriage-return''
character followed by a ``linefeed'' character; when editing such
files, the colon changes to either a backslash (@samp{\}) or
@samp{(DOS)}, depending on the operating system. The Macintosh
end-of-line convention is to use a ``carriage-return'' character
instead of a newline; when editing such files, the colon indicator
@samp{(DOS)}, depending on the operating system. Another convention,
employed by older Macintosh systems, uses a ``carriage-return''
character instead of a newline; when editing such files, the colon
changes to either a forward slash (@samp{/}) or @samp{(Mac)}. On some
systems, Emacs displays @samp{(Unix)} instead of the colon for files
that use newline as the line separator.
@ -234,14 +234,14 @@ only on text-only terminals. The initial frame's name is @samp{F1}.
Usually, this is the same as the name of a file you are editing.
@xref{Buffers}.
@var{pos} tells you whether there is additional text above the top of
the window, or below the bottom. If your buffer is small and it is all
visible in the window, @var{pos} is @samp{All}. Otherwise, it is
@samp{Top} if you are looking at the beginning of the buffer, @samp{Bot}
if you are looking at the end of the buffer, or @samp{@var{nn}%}, where
@var{nn} is the percentage of the buffer above the top of the window.
With Size Indication mode, you can display the size of the buffer as
well. @xref{Optional Mode Line}.
@var{pos} tells you whether there is additional text above the top
of the window, or below the bottom. If your buffer is small and all
of it is visible in the window, @var{pos} is @samp{All}. Otherwise,
it is @samp{Top} if you are looking at the beginning of the buffer,
@samp{Bot} if you are looking at the end of the buffer, or
@samp{@var{nn}%}, where @var{nn} is the percentage of the buffer above
the top of the window. With Size Indication mode, you can display the
size of the buffer as well. @xref{Optional Mode Line}.
@var{line} is the character @samp{L} followed by the line number at
point. (You can display the current column number too, by turning on
@ -249,16 +249,14 @@ Column Number mode. @xref{Optional Mode Line}.)
@var{major} is the name of the @dfn{major mode} used in the buffer.
A major mode is a principal editing mode for the buffer, such as Text
mode, Lisp mode, C mode, and so forth. @xref{Major Modes}.
mode, Lisp mode, C mode, and so forth. @xref{Major Modes}. Some
major modes display additional information after the major mode name.
For example, Compilation buffers and Shell buffers display the status
of the subprocess.
Some major modes display additional information after the major mode
name. For example, Rmail buffers display the current message number and
the total number of messages. Compilation buffers and Shell buffers
display the status of the subprocess.
@var{minor} is a list of some of the @dfn{minor modes} turned on in
the buffer. Minor modes are optional editing modes that provide
additional features on top of the major mode. @xref{Minor Modes}.
@var{minor} is a list of some of the enabled @dfn{minor modes},
which are optional editing modes that provide additional features on
top of the major mode. @xref{Minor Modes}.
Some features are listed together with the minor modes whenever they
are turned on, even though they are not really minor modes.
@ -271,9 +269,8 @@ restricted to only a portion of its text (@pxref{Narrowing}).
brackets (@samp{[@dots{}]}) appear around the parentheses that
surround the modes. If Emacs is in one recursive editing level within
another, double square brackets appear, and so on. Since recursive
editing levels affect Emacs globally, not just one buffer, the square
brackets appear in every window's mode line or not in any of them.
@xref{Recursive Edit}.@refill
editing levels affect Emacs globally, such square brackets appear in
the mode line of every window. @xref{Recursive Edit}.
You can change the appearance of the mode line as well as the format
of its contents. @xref{Optional Mode Line}. In addition, the mode
@ -293,10 +290,10 @@ here, as you can more easily see them yourself.
@findex tmm-menubar
@findex menu-bar-open
On a graphical display, you can use the mouse to choose a command
from the menu bar. A right-arrow at the end of a menu item means it
from the menu bar. An arrow on the right edge of a menu item means it
leads to a subsidiary menu, or @dfn{submenu}. A @samp{...} at the end
of a menu item means that the command invoked will prompt you for
further input before it actually does anything.
of a menu item means that the command will prompt you for further
input before it actually does anything.
Some of the commands in the menu bar have ordinary key bindings as
well; if so, a key binding is shown in parentheses after the item
@ -310,14 +307,13 @@ You can then navigate the menus with the arrow keys. To activate a
selected menu item, press @key{RET}; to cancel menu navigation, press
@key{ESC}.
On text-only terminals with no mouse, you can use the menu bar by
typing @kbd{M-`} or @key{F10} (these run the command
@code{tmm-menubar}). This lets you select a menu item with the
keyboard. A provisional choice appears in the echo area. You can use
the up and down arrow keys to move through the menu to different
items, and then you can type @key{RET} to select the item.
Each menu item also has an assigned letter or digit which designates
that item; it is usually the initial of some word in the item's name.
This letter or digit is separated from the item name by @samp{=>}. You
can type the item's letter or digit to select the item.
On a text-only terminal, you can use the menu bar by typing
@kbd{M-`} or @key{F10} (these run the command @code{tmm-menubar}).
This lets you select a menu item with the keyboard. A provisional
choice appears in the echo area. You can use the up and down arrow
keys to move through the menu to different items, and then you can
type @key{RET} to select the item. Each menu item is also designated
by a letter or digit (usually the initial of some word in the item's
name). This letter or digit is separated from the item name by
@samp{=>}. You can type the item's letter or digit to select the
item.

View file

@ -96,8 +96,10 @@ and also when HOME is set to C:\ by default.
*** shell-mode uses pcomplete rules, with the standard completion UI.
*** Many packages have been changed to use completion-at-point rather than
their own completion code.
*** Many packages have been changed to use `completion-at-point'
rather than their own completion code.
*** `completion-at-point' now handles tags and semantic completion.
*** Completion in a non-minibuffer now tries to detect the end of completion
and pops down the *Completions* buffer accordingly.
@ -455,8 +457,6 @@ isearch-yank-kill.
+++
** New command `count-words-region'. This does what you expect.
** completion-at-point now handles tags and semantic completion.
** The default value of `backup-by-copying-when-mismatch' is now t.
** The command `just-one-space' (M-SPC), if given a negative argument,
@ -724,6 +724,8 @@ in the Rmail incoming message.
** Shell mode
*** Shell mode uses pcomplete rules, with the standard completion UI.
*** The `shell' command prompts for the shell path name if the default
directory is a remote file name and neither the environment variable
$ESHELL nor the variable `explicit-shell-file-name' is set.