Merge from emacs--rel--22
[bpt/emacs.git] / man / screen.texi
dissimilarity index 62%
index 4657a7a..90ec645 100644 (file)
-@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
-@c See file emacs.texi for copying conditions.
-@node Screen, User Input, Acknowledgments, Top
-@chapter The Organization of the Screen
-@cindex screen
-@cindex parts of the screen
-@c
-
-  On a text-only terminal, the Emacs display occupies the whole screen.
-On the X Window System, Emacs creates its own X windows to use.  We use
-the term @dfn{frame} to mean an entire text-only screen or an entire X
-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.  @xref{Frames}.
-
-  When you start Emacs, the entire frame except for the first and last
-lines is devoted to the text you are editing.  This area is called the
-@dfn{window}.  The first line is a @dfn{menu bar}, and the last line is
-a special @dfn{echo area} or @dfn{minibuffer window} where prompts
-appear and where you can enter responses.  See below for more
-information about these special lines.
-
-  You can subdivide the large text window horizontally or vertically
-into multiple text windows, each of which can be used for a different
-file (@pxref{Windows}).  In this manual, the word ``window'' always
-refers to the subdivisions of a frame within Emacs.
-
-  The window that the cursor is in is the @dfn{selected window}, in
-which editing takes place.  Most Emacs commands implicitly apply to the
-text in the selected window (though mouse commands generally operate on
-whatever window you click them in, whether selected or not).  The other
-windows display text for reference only, unless/until you select them.
-If you use multiple frames under the X Window System, then giving the
-input focus to a particular frame selects a window in that frame.
-
-  Each window's last line is a @dfn{mode line}, which describes what is
-going on in that window.  It appears in inverse video, if the terminal
-supports that, and its contents begin with @w{@samp{--:-- @ *scratch*}}
-when Emacs starts.  The mode line displays status information such as
-what buffer is being displayed above it in the window, what major and
-minor modes are in use, and whether the buffer contains unsaved changes.
-
-@menu
-* Point::              The place in the text where editing commands operate.
-* Echo Area::           Short messages appear at the bottom of the screen.
-* Mode Line::          Interpreting the mode line.
-* Menu Bar::            How to use the menu bar.
-@end menu
-
-@node Point
-@section Point
-@cindex point
-@cindex cursor
-
-  Within Emacs, the terminal's cursor shows the location at which
-editing commands will take effect.  This location is called @dfn{point}.
-Many Emacs commands move point through the text, so that you can edit at
-different places in it.  You can also place point by clicking mouse
-button 1.
-
-  While the cursor appears to point @emph{at} a character, 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.
-
-  Terminals have only one cursor, and when output is in progress it must
-appear where the typing is being done.  This does not mean that point is
-moving.  It is only that Emacs has no way to show you the location of point
-except when the terminal is idle.
-
-  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 where point is in case you display it again later.
-
-  When there are multiple windows in a frame, each window has its own
-point location.  The cursor shows the location of point in the selected
-window.  This also is how you can tell which window is selected.  If the
-same buffer appears in more than one window, each window has its own
-position for point in that buffer.
-
-  When there are multiple frames, each frame can display one cursor.
-The cursor in the selected frame is solid; the cursor in other frames is
-a hollow box, and appears in the window that would be selected if you
-give the input focus to that frame.
-
-  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'.
-
-@node Echo Area
-@section The Echo Area
-@cindex echo area
-@c 
-
-  The line at the bottom of the frame (below the mode line) is the
-@dfn{echo area}.  It is used to display small amounts of text for
-several purposes.
-
-  @dfn{Echoing} means displaying the characters that you type.  Outside
-Emacs, the operating system normally echoes all your input.  Emacs
-handles echoing differently.
-
-  Single-character commands do not echo in Emacs, and multi-character
-commands echo only if you pause while typing them.  As soon as you pause
-for more than a second in the middle of a command, Emacs echoes all the
-characters of the command so far.  This is to @dfn{prompt} you for the
-rest of the command.  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.  You can change this behavior by setting a variable
-(@pxref{Display Vars}).
-
-@cindex error message in the echo area
-  If a command cannot be executed, it may print an @dfn{error message} in
-the echo area.  Error messages are accompanied by a beep or by flashing the
-screen.  Also, any input you have typed ahead is thrown away when an error
-happens.
-
-  Some commands print informative messages in the echo area.  These
-messages look much like error messages, but they are not announced with
-a beep and do not throw away input.  Sometimes the message tells you
-what the command has done, when this is not obvious from looking at the
-text being edited.  Sometimes the sole purpose of a command is to print
-a message giving you specific information---for example, @kbd{C-x =}
-prints 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.
-
-@cindex @samp{*Messages*} buffer
-@cindex saved echo area messages
-@cindex messages saved from echo area
-  Echo-area informative messages are saved in an editor buffer named
-@samp{*Messages*}.  (We have not explained buffers yet; see
-@ref{Buffers}, for more information about them.)  If you miss a message
-that appears briefly on the screen, you can switch to the
-@samp{*Messages*} buffer to see it again.  (Successive progress messages
-are often collapsed into one in that buffer.)
-
-@vindex message-log-max
-  The size of @samp{*Messages*} is limited to a certain number of lines.
-The variable @code{message-log-max} specifies how many lines.  Once the
-buffer has that many lines, each line added at the end deletes one line
-from the beginning.  @xref{Variables}, for how to set variables such as
-@code{message-log-max}.
-
-  The echo area is also used to display the @dfn{minibuffer}, a window that
-is used for reading arguments to commands, such as the name of a file to be
-edited.  When the minibuffer is in use, the echo area begins with a prompt
-string that usually ends with a colon; also, the cursor appears in that line
-because it is 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
-@cindex mode line
-@cindex top level
-@c
-
-  Each text window's last line is a @dfn{mode line}, which describes what
-is going on in that window.  When there is only one text window, the
-mode line appears right above the echo area; it is the next-to-last line
-on the frame.  The mode line starts and ends with dashes.  On a
-text-mode display, the mode line is in inverse video if the terminal
-supports that; on a graphics display, the mode line is by default drawn
-with a 3D box appearence, which makes it slightly larger than a normal
-text line (if you don't like that, the 3D appearence can be turned off;
-see @ref{Optional Mode Line}).
-
-  Normally, the mode line looks like this:
-
-@example
--@var{cs}:@var{ch}  @var{buf}      (@var{major} @var{minor})--@var{line}--@var{pos}------
-@end example
-
-@noindent
-This gives information about the buffer being displayed in the window: the
-buffer's name, what major and minor modes are in use, whether the buffer's
-text has been changed, and how far down the buffer you are currently
-looking.
-
-  @var{ch} contains two stars @samp{**} if the text in the buffer has
-been edited (the buffer is ``modified''), or @samp{--} if the buffer has
-not been edited.  For a read-only buffer, it is @samp{%*} if the buffer
-is modified, and @samp{%%} otherwise.
-
-  @var{buf} is the name of the window's @dfn{buffer}.  In most cases
-this is the same as the name of a file you are editing.  @xref{Buffers}.
-
-  The buffer displayed in the selected window (the window that the
-cursor is in) is also Emacs's selected buffer, the one that editing
-takes place in.  When we speak of what some command does to ``the
-buffer,'' we are talking about the currently selected buffer.
-
-  @var{line} is @samp{L} followed by the current line number of point.
-This is present when Line Number mode is enabled (which it normally is).
-You can optionally display the current column number too, by turning on
-Column Number mode (which is not enabled by default because it is
-somewhat slower).  @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 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.@refill
-
-  @var{major} is the name of the @dfn{major mode} in effect in the
-buffer.  At any time, each buffer is in one and only one of the possible
-major modes.  The major modes available include Fundamental mode (the
-least specialized), Text mode, Lisp mode, C mode, Texinfo mode, and many
-others.  @xref{Major Modes}, for details of how the modes differ and how
-to select one.@refill
-
-  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} that are turned
-on at the moment in the window's chosen buffer.  For example,
-@samp{Fill} means that Auto Fill mode is on.  @samp{Abbrev} means that
-Word Abbrev mode is on.  @samp{Ovwrt} means that Overwrite mode is on.
-@xref{Minor Modes}, for more information.  @samp{Narrow} means that the
-buffer being displayed has editing restricted to only a portion of its
-text.  This is not really a minor mode, but is like one.
-@xref{Narrowing}.  @samp{Def} means that a keyboard macro is being
-defined.  @xref{Keyboard Macros}.
-
-  In addition, if Emacs is currently inside a recursive editing level,
-square 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
-
-  Non-windowing terminals can only show a single Emacs frame at a time
-(@pxref{Frames}).  On such terminals, the mode line displays the name of
-the selected frame, after @var{ch}.  The initial frame's name is
-@samp{F1}.
-
-  @var{cs} states the coding system used for the file you are editing.
-A dash indicates the default state of affairs: no code conversion,
-except for end-of-line translation if the file contents call for that.
-@samp{=} means no conversion whatsoever.  Nontrivial code conversions
-are represented by various letters---for example, @samp{1} refers to ISO
-Latin-1.  @xref{Coding Systems}, for more information.  If you are using
-an input method, a string of the form @samp{@var{i}>} is added to the
-beginning of @var{cs}; @var{i} identifies the input method.  (Some input
-methods show @samp{+} or @samp{@@} instead of @samp{>}.)  @xref{Input
-Methods}.
-
-  When you are using a character-only terminal (not a window system),
-@var{cs} uses three characters to describe, respectively, the coding
-system for keyboard input, the coding system for terminal output, and
-the coding system used for the file you are editing.
-
-  When multibyte characters are not enabled, @var{cs} does not appear at
-all.  @xref{Enabling Multibyte}.
-
-@cindex end-of-line conversion, mode-line indication
-  The colon after @var{cs} can change to another string in certain
-circumstances.  Emacs uses newline characters to separate lines in the buffer.
-Some files use different conventions for separating lines: either
-carriage-return linefeed (the MS-DOS convention) or just carriage-return
-(the Macintosh convention).  If the buffer's file uses carriage-return
-linefeed, the colon changes to either a backslash (@samp{\}) or
-@samp{(DOS)}, depending on the operating system.  If the file uses just
-carriage-return, the colon indicator changes to either a forward slash
-(@samp{/}) or @samp{(Mac)}.  On some systems, Emacs displays
-@samp{(Unix)} instead of the colon even for files that use newline to
-separate lines.
-
-@vindex eol-mnemonic-unix
-@vindex eol-mnemonic-dos
-@vindex eol-mnemonic-mac
-@vindex eol-mnemonic-undecided
-  You can customize the mode line display for each of the end-of-line
-formats by setting each of the variables @code{eol-mnemonic-unix},
-@code{eol-mnemonic-dos}, @code{eol-mnemonic-mac}, and
-@code{eol-mnemonic-undecided} to any string you find appropriate.
-@xref{Variables}, for an explanation how to set variables.
-
-  @xref{Optional Mode Line}, for features that add other handy
-information to the mode line, such as the current column number of
-point, the current time, and whether new mail for you has arrived.
-
-The mode line is mouse-sensitive and help text is echoed when you move
-the mouse across it.  @xref{Mode Line Mouse}.
-
-@node Menu Bar
-@section The Menu Bar
-@cindex menu bar
-
-  Each Emacs frame normally has a @dfn{menu bar} at the top which you
-can use to perform certain common operations.  There's no need to list
-them here, as you can more easily see for yourself.
-
-@kindex M-`
-@kindex F10
-@findex tmm-menubar
-  When you are using a window system, you can use the mouse to choose a
-command from the menu bar.  An arrow pointing right, after the menu
-item, indicates that the item leads to a subsidiary menu; @samp{...} at
-the end means that the command will read arguments from the keyboard
-before it actually does anything.
-
-  To view the full command name and documentation for a menu item, type
-@kbd{C-h k}, and then select the menu bar with the mouse in the usual
-way (@pxref{Key Help}).
-
-  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 command enters a mode in which you can select
-a menu item from the keyboard.  A provisional choice appears in the echo
-area.  You can use the left and right arrow keys to move through the
-menu to different choices.  When you have found the choice you want,
-type @key{RET} to select it.
-
-  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.
-
-  Some of the commands in the menu bar have ordinary key bindings as
-well; if so, the menu lists one equivalent key binding in parentheses
-after the item itself.
+@c This is part of the Emacs manual.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
+@c   2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+@c See file emacs.texi for copying conditions.
+@node Screen, User Input, Acknowledgments, Top
+@chapter The Organization of the Screen
+@cindex screen
+@cindex parts of the screen
+
+  On a text-only terminal, the Emacs display occupies the whole
+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 text-only screen or an entire
+system-level 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.
+@xref{Frames}.
+
+  When you start Emacs, the main central area of the frame, all except
+for the top and bottom and sides, displays the text you are editing.
+This area is called @dfn{the window}.  At the top there is normally a
+@dfn{menu bar} where you can access a series of menus; then there may
+be a @dfn{tool bar}, a row of icons that perform editing commands if
+you click on them.  Below this, the window begins, often with a
+@dfn{scroll bar} on one side.  Below the window comes the last line of
+the frame, a special @dfn{echo area} or @dfn{minibuffer window}, where
+prompts appear and you enter information when Emacs asks for it.  See
+following sections for more information about these special lines.
+
+  You can subdivide the window horizontally or vertically to make
+multiple text windows, each of which can independently display some
+file or text (@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.
+
+  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.
+
+  Most Emacs commands implicitly apply to the text in the selected
+window; the text in unselected windows is mostly visible for
+reference.  However, mouse commands generally operate on whatever
+window you click them in, whether selected or not.  If you use
+multiple frames on a graphical display, then giving the input focus to
+a particular frame selects a window in that frame.
+
+  Each window's last line is a @dfn{mode line}, which describes what
+is going on in that window.  It appears in different color and/or a ``3D''
+box if the terminal supports them; its contents normally begin with
+@w{@samp{--:-- @ *scratch*}} when Emacs starts.  The mode line
+displays status information such as what buffer is being displayed
+above it in the window, what major and minor modes are in use, and
+whether the buffer contains unsaved changes.
+
+@menu
+* Point::              The place in the text where editing commands operate.
+* Echo Area::           Short messages appear at the bottom of the screen.
+* Mode Line::          Interpreting the mode line.
+* Menu Bar::            How to use the menu bar.
+@end menu
+
+@node Point
+@section Point
+@cindex point
+@cindex cursor
+
+  Within Emacs, the active cursor shows the location at which
+editing commands will take effect.  This location is called @dfn{point}.
+Many Emacs commands move point through the text, so that you can edit at
+different places in it.  You can also place point by clicking mouse
+button 1 (normally the left button).
+
+  While the cursor appears to be @emph{on} a character, 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.
+
+  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, and (when
+possible) its own cursor.
+
+  A text-only terminal has just one cursor, in the selected window.
+The other windows do not show a cursor, even though they do have their
+own position of point.  When Emacs updates the screen on a text-only
+terminal, it has to put the cursor temporarily at the place the output
+goes.  This doesn't mean point is there, though.  Once display
+updating finishes, Emacs puts the cursor where point is.
+
+  On graphical displays, Emacs shows a cursor in each window; the
+selected window's cursor is solid and blinking, and the other cursors
+are just hollow.  Thus, the most prominent cursor always shows you the
+selected window, on all kinds of terminals.
+
+  @xref{Cursor Display}, for customizable variables that control display
+of the cursor or cursors.
+
+  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.''
+
+@node Echo Area
+@section The Echo Area
+@cindex echo area
+
+  The line at the bottom of the frame (below the mode line) 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.  At the
+command line, the operating system normally echoes all your input.
+Emacs handles echoing differently.
+
+  Single-character commands do not echo in Emacs, and multi-character
+commands echo only if you pause while typing them.  As soon as you pause
+for more than a second in the middle of a command, Emacs echoes all the
+characters of the command so far.  This is to @dfn{prompt} you for the
+rest of the command.  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.  You can change this behavior by setting a variable
+(@pxref{Display Custom}).
+
+@cindex error message in the echo area
+  If a command cannot do its job, it may display an @dfn{error
+message} in the echo area.  Error messages are accompanied by beeping
+or by flashing the screen.  The error also discards any input you have
+typed ahead.
+
+  Some commands display informative messages in the echo area.  These
+messages look much like error messages, but they are not announced
+with a beep and do not throw away input.  Sometimes the message tells
+you what the command has done, when this is not obvious from looking
+at the text being edited.  Sometimes 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.
+
+@cindex @samp{*Messages*} buffer
+@cindex saved echo area messages
+@cindex messages saved from echo area
+  Echo-area informative messages are saved in an editor buffer named
+@samp{*Messages*}.  (We have not explained buffers yet; see
+@ref{Buffers}, for more information about them.)  If you miss a message
+that appears briefly on the screen, you can switch to the
+@samp{*Messages*} buffer to see it again.  (Successive progress messages
+are often collapsed into one in that buffer.)
+
+@vindex message-log-max
+  The size of @samp{*Messages*} is limited to a certain number of
+lines.  The variable @code{message-log-max} specifies how many lines.
+Once the buffer has that many lines, adding lines at the end deletes lines
+from the beginning, to keep the size constant.  @xref{Variables}, for
+how to set variables such as @code{message-log-max}.
+
+  The echo area is also used to display the @dfn{minibuffer}, a 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 echo area begins
+with a prompt string that usually ends with a colon; also, the cursor
+appears in that line because it is 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
+@cindex mode line
+@cindex top level
+@c
+
+  Each text window's last line is a @dfn{mode line}, which describes
+what is going on in that window.  The mode line starts and ends with
+dashes.  When there is only one text window, the mode line appears
+right above the echo area; it is the next-to-last line in the frame.
+On a text-only terminal, the mode line is in inverse video if the
+terminal supports that; on a graphics display, the mode line has a 3D
+box appearance to help it stand out.  The mode line of the selected
+window is highlighted if possible; see @ref{Optional Mode Line}, for
+more information.
+
+  Normally, the mode line looks like this:
+
+@example
+-@var{cs}:@var{ch}@var{R}-@var{fr}  @var{buf}      @var{pos} @var{line}   (@var{major} @var{minor})------
+@end example
+
+@noindent
+This gives information about the window and the buffer it displays: the
+buffer's name, what major and minor modes are in use, whether the
+buffer's text has been changed, and how far down the buffer you are
+currently looking.
+
+  @var{ch} contains two stars @samp{**} if the text in the buffer has
+been edited (the buffer is ``modified''), or @samp{--} if the buffer has
+not been edited.  For a read-only buffer, it is @samp{%*} if the buffer
+is modified, and @samp{%%} otherwise.
+
+  @var{R} is @samp{@@} if the default-directory for the current buffer
+is on a remote machine, or a hyphen otherwise.
+
+  @var{fr} gives the selected frame name (@pxref{Frames}).  It appears
+only on text-only terminals.  The initial frame's name is @samp{F1}.
+
+  @var{buf} is the name of the window's @dfn{buffer}.  Usually this is
+the same as the name of a file you are editing.  @xref{Buffers}.
+
+  The buffer displayed in the selected window (the window with the
+cursor) is the @dfn{current buffer}, where editing happens.  When a
+command's effect applies to ``the buffer,'' we mean it does those
+things to the current buffer.
+
+  @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{line} is @samp{L} followed by the current line number of point.
+This is present when Line Number mode is enabled (it normally is).
+You can display the current column number too, by turning on Column
+Number mode.  It is not enabled by default because it is somewhat
+slower.  @xref{Optional Mode Line}.
+
+  @var{major} is the name of the @dfn{major mode} in effect in the
+buffer.  A buffer can only be in one major mode at a time.  The major
+modes available include Fundamental mode (the least specialized), Text
+mode, Lisp mode, C mode, Texinfo mode, and many others.  @xref{Major
+Modes}, for details of how the modes differ and how to select
+them.
+
+  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} that are
+turned on at the moment in the window's chosen buffer.  For example,
+@samp{Fill} means that Auto Fill mode is on.  @samp{Abbrev} means that
+Word Abbrev mode is on.  @samp{Ovwrt} means that Overwrite mode is on.
+@xref{Minor Modes}, for more information.  
+
+  @samp{Narrow} means that the buffer being displayed has editing
+restricted to only a portion of its text.  (This is not really a minor
+mode, but is like one.)  @xref{Narrowing}.  @samp{Def} means that a
+keyboard macro is being defined.  @xref{Keyboard Macros}.
+
+  In addition, if Emacs is inside a recursive editing level, square
+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
+
+  @var{cs} states the coding system used for the file you are editing.
+A dash indicates the default state of affairs: no code conversion,
+except for end-of-line translation if the file contents call for that.
+@samp{=} means no conversion whatsoever.  Nontrivial code conversions
+are represented by various letters---for example, @samp{1} refers to ISO
+Latin-1.  @xref{Coding Systems}, for more information.
+
+  On a text-only terminal, @var{cs} includes two additional characters
+which describe the coding system for keyboard input and the coding
+system for terminal output.  They come right before the coding system
+used for the file you are editing.
+
+  If you are using an input method, a string of the form
+@samp{@var{i}>} is added to the beginning of @var{cs}; @var{i}
+identifies the input method.  (Some input methods show @samp{+} or
+@samp{@@} instead of @samp{>}.)  @xref{Input Methods}.
+
+  When multibyte characters are not enabled, @var{cs} does not appear at
+all.  @xref{Enabling Multibyte}.
+
+@cindex end-of-line conversion, mode-line indication
+  The colon after @var{cs} changes to another string in some cases.
+Emacs uses newline characters to separate lines in the buffer.  Some
+files use different conventions for separating lines: either
+carriage-return linefeed (the MS-DOS convention) or just
+carriage-return (the Macintosh convention).  If the buffer's file uses
+carriage-return linefeed, the colon changes to either a backslash
+(@samp{\}) or @samp{(DOS)}, depending on the operating system.  If the
+file uses just carriage-return, the colon indicator 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.
+
+  @xref{Optional Mode Line}, to add other handy information to the
+mode line, such as the size of the buffer, the current column number
+of point, and whether new mail for you has arrived.
+
+  The mode line is mouse-sensitive; when you move the mouse across
+various parts of it, Emacs displays help text to say what a click in
+that place will do.  @xref{Mode Line Mouse}.
+
+@node Menu Bar
+@section The Menu Bar
+@cindex menu bar
+
+  Each Emacs frame normally has a @dfn{menu bar} at the top which you
+can use to perform common operations.  There's no need to list them
+here, as you can more easily see them yourself.
+
+@kindex M-`
+@kindex F10
+@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 the menu item means it
+leads to a subsidiary menu; @samp{...} at the end means that the
+command invoked will read arguments (further input from you) before it
+actually does anything.
+
+  You can also invoke the first menu bar item by pressing @key{F10} (to run
+the command @code{menu-bar-open}).  You can then navigate the menus with
+the arrow keys.  You select an item by pressing @key{RET} and cancel menu
+navigation with @key{ESC}.
+
+  To view the full command name and documentation for a menu item, type
+@kbd{C-h k}, and then select the menu bar with the mouse in the usual
+way (@pxref{Key Help}).
+
+  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.
+
+  Some of the commands in the menu bar have ordinary key bindings as
+well; one such binding is shown in parentheses after the item itself.
+
+@ignore
+   arch-tag: 104ba40e-d972-4866-a542-a98be94bdf2f
+@end ignore