]> code.delx.au - gnu-emacs/blobdiff - man/display.texi
(mark-diary-entries): Rearrange to wrap with-current-buffer form in
[gnu-emacs] / man / display.texi
index c1b0c540fb5b021a4f3260938bbc89ff57fc19e7..58e69ad4e604984caf22cae792ff7c3efb693269 100644 (file)
@@ -1,6 +1,6 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997, 2000, 2001, 2002
-@c   Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c   2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Display, Search, Registers, Top
 @chapter Controlling the Display
@@ -12,6 +12,7 @@ display it.
 
 @menu
 * Faces::                 How to change the display style using faces.
+* Standard Faces::         Emacs' predefined faces.
 * Font Lock::              Minor mode for syntactic highlighting using faces.
 * Highlight Changes::      Using colors to show where you changed the buffer.
 * Highlight Interactively:: Tell Emacs what text to highlight.
@@ -44,6 +45,12 @@ terminals support inverse video, bold, and underline attributes; some
 support colors.  Character terminals generally do not support changing
 the height and width or the font family.
 
+  The easiest way to use faces is to turn on Font Lock mode.
+@xref{Font Lock}, for more information about Font Lock mode and
+syntactic highlighting.  You can print out the buffer with the
+highlighting that appears on your screen using the command
+@code{ps-print-buffer-with-faces}.  @xref{PostScript}.
+
   Features which rely on text in multiple faces (such as Font Lock mode)
 will also work on non-windowed terminals that can display more than one
 face, whether by colors or underlining and emboldening.  This includes
@@ -90,34 +97,53 @@ fonts for editing program source code.  Filling will sometimes make
 lines too long or too short.  We plan to address these issues in
 future Emacs versions.
 
+@node Standard Faces
+@section Standard Faces
+
 @findex list-faces-display
-  To see what faces are currently defined, and what they look like, type
-@kbd{M-x list-faces-display}.  It's possible for a given face to look
-different in different frames; this command shows the appearance in the
-frame in which you type it.  Here's a list of the standard defined
-faces:
+  To see what faces are currently defined, and what they look like,
+type @kbd{M-x list-faces-display}.  It's possible for a given face to
+look different in different frames; this command shows the appearance
+in the frame in which you type it.
+
+Here are the standard faces for specifying text appearance.  You can
+use them on specific text, when you want the effects they produce.
 
 @table @code
 @item default
 This face is used for ordinary text that doesn't specify any other face.
-@item mode-line
-This face is used for the mode line of the currently selected window.
-By default, it's drawn with shadows for a ``raised'' effect on window
-systems, and drawn as the inverse of the default face on non-windowed
-terminals.  @xref{Display Custom}.
-@item mode-line-inactive
-Like @code{mode-line}, but used for mode lines of the windows other
-than the selected one (if @code{mode-line-in-non-selected-windows} is
-non-@code{nil}).  This face inherits from @code{mode-line}, so changes
-in that face affect mode lines in all windows.
-@item header-line
-Similar to @code{mode-line} for a window's header line.  Most modes
-don't use the header line, but the Info mode does.
-@item minibuffer-prompt
-This face is used for the prompt strings displayed in the minibuffer.
+@item bold
+This face uses a bold variant of the default font, if it has one.
+It's up to you to choose a default font that has a bold variant,
+if you want to use one.
+@item italic
+This face uses an italic variant of the default font, if it has one.
+@item bold-italic
+This face uses a bold italic variant of the default font, if it has one.
+@item underline
+This face underlines text.
+@item fixed-pitch
+This face forces use of a particular fixed-width font.
+@item variable-pitch
+This face forces use of a particular variable-width font.  It's
+reasonable to customize this to use a different variable-width font,
+if you like, but you should not make it a fixed-width font.
+@item shadow
+This face is used for making the text less noticeable than the surrounding
+ordinary text.  Usually this can be achieved by using shades of gray in
+contrast with either black or white default foreground color.
+@end table
+
+  Here's an incomplete list of faces used to highlight parts of the
+text temporarily for specific purposes.  (Many other modes define
+their own faces for this purpose.)
+
+@table @code
 @item highlight
 This face is used for highlighting portions of text, in various modes.
 For example, mouse-sensitive text is highlighted using this face.
+@item mode-line-highlight
+Like @code{highlight}, but used for portions of text on mode lines.
 @item isearch
 This face is used for highlighting Isearch matches.
 @item lazy-highlight
@@ -129,23 +155,69 @@ mode is enabled---see below).
 @item secondary-selection
 This face is used for displaying a secondary X selection (@pxref{Secondary
 Selection}).
-@item bold
-This face uses a bold variant of the default font, if it has one.
-@item italic
-This face uses an italic variant of the default font, if it has one.
-@item bold-italic
-This face uses a bold italic variant of the default font, if it has one.
-@item underline
-This face underlines text.
-@item fixed-pitch
-The basic fixed-pitch face.
+@item trailing-whitespace
+The face for highlighting excess spaces and tabs at the end of a line
+when @code{show-trailing-whitespace} is non-@code{nil}; see
+@ref{Useless Whitespace}.
+@item nobreak-space
+The face for displaying the character ``nobreak space''.
+@item escape-glyph
+The face for highlighting the @samp{\} or @samp{^} that indicates
+a control character.  It's also used when @samp{\} indicates a
+nobreak space or nobreak (soft) hyphen.
+@end table
+
+@cindex @code{region} face
+  When Transient Mark mode is enabled, the text of the region is
+highlighted when the mark is active.  This uses the face named
+@code{region}; you can control the style of highlighting by changing the
+style of this face (@pxref{Face Customization}).  @xref{Transient Mark},
+for more information about Transient Mark mode and activation and
+deactivation of the mark.
+
+  These faces control the appearance of parts of the Emacs frame.
+They exist as faces to provide a consistent way to customize the
+appearance of these parts of the frame.
+
+@table @code
+@item mode-line
+@itemx modeline
+This face is used for the mode line of the currently selected window,
+and for menu bars when toolkit menus are not used.  By default, it's
+drawn with shadows for a ``raised'' effect on window systems, and
+drawn as the inverse of the default face on non-windowed terminals.
+@code{modeline} is an alias for the @code{mode-line} face, for
+compatibility with old Emacs versions.
+@item mode-line-inactive
+Like @code{mode-line}, but used for mode lines of the windows other
+than the selected one (if @code{mode-line-in-non-selected-windows} is
+non-@code{nil}).  This face inherits from @code{mode-line}, so changes
+in that face affect mode lines in all windows.
+@item header-line
+Similar to @code{mode-line} for a window's header line.  Most modes
+don't use the header line, but some special modes, such the Info mode, do.
+@item vertical-border
+This face is used for the vertical divider between windows.
+By default this face inherits from the @code{mode-line-inactive} face
+on character terminals.  On window systems the foreground color of
+this face is used for the vertical line between windows without
+scrollbars.
+@item minibuffer-prompt
+@cindex @code{minibuffer-prompt} face
+@vindex minibuffer-prompt-properties
+This face is used for the prompt strings displayed in the minibuffer.
+By default, Emacs automatically adds this face to the value of
+@code{minibuffer-prompt-properties}, which is a list of text
+properties used to display the prompt text.
 @item fringe
-@cindex fringe
+@cindex @code{fringe} face
 The face for the fringes to the left and right of windows on graphic
 displays.  (The fringes are the narrow portions of the Emacs frame
 between the text area and the window's right and left borders.)
+@xref{Fringes}.
 @item scroll-bar
 This face determines the visual appearance of the scroll bar.
+@xref{Scroll Bars}.
 @item border
 This face determines the color of the frame border.
 @item cursor
@@ -154,41 +226,22 @@ This face determines the color of the cursor.
 This face determines the color of the mouse pointer.
 @item tool-bar
 This is the basic tool-bar face.  No text appears in the tool bar, but the
-colors of this face affect the appearance of tool bar icons.
+colors of this face affect the appearance of tool bar icons.  @xref{Tool Bars}.
 @item tooltip
-This face is used for tooltips.
+This face is used for tooltips.  @xref{Tooltips}.
 @item menu
-This face determines the colors and font of Emacs's menus.  Setting the
-font of LessTif/Motif menus is currently not supported; attempts to set
-the font are ignored in this case.
-@item trailing-whitespace
-The face for highlighting trailing whitespace when
-@code{show-trailing-whitespace} is non-@code{nil}; see @ref{Useless
-Whitespace}.
-@item variable-pitch
-The basic variable-pitch face.
+@cindex menu bar appearance
+@cindex @code{menu} face, no effect if customized
+@cindex customization of @code{menu} face
+This face determines the colors and font of Emacs's menus.  @xref{Menu
+Bars}.  Setting the font of LessTif/Motif menus is currently not
+supported; attempts to set the font are ignored in this case.
+Likewise, attempts to customize this face in Emacs built with GTK and
+in the MS-Windows port are ignored by the respective GUI toolkits;
+you need to use system-wide styles and options to change the
+appearance of the menus.
 @end table
 
-@cindex @code{region} face
-  When Transient Mark mode is enabled, the text of the region is
-highlighted when the mark is active.  This uses the face named
-@code{region}; you can control the style of highlighting by changing the
-style of this face (@pxref{Face Customization}).  @xref{Transient Mark},
-for more information about Transient Mark mode and activation and
-deactivation of the mark.
-
-  One easy way to use faces is to turn on Font Lock mode.  This minor
-mode, which is always local to a particular buffer, arranges to
-choose faces according to the syntax of the text you are editing.  It
-can recognize comments and strings in most languages; in several
-languages, it can also recognize and properly highlight various other
-important constructs.  @xref{Font Lock}, for more information about
-Font Lock mode and syntactic highlighting.
-
-  You can print out the buffer with the highlighting that appears
-on your screen using the command @code{ps-print-buffer-with-faces}.
-@xref{PostScript}.
-
 @node Font Lock
 @section Font Lock mode
 @cindex Font Lock mode
@@ -206,11 +259,12 @@ specialized ways of assigning fonts for Font Lock mode.
 
 @findex font-lock-mode
 @findex turn-on-font-lock
-  The command @kbd{M-x font-lock-mode} turns Font Lock mode on or off
-according to the argument, and toggles the mode when it has no argument.
-The function @code{turn-on-font-lock} unconditionally enables Font Lock
-mode.  This is useful in mode-hook functions.  For example, to enable
-Font Lock mode whenever you edit a C file, you can do this:
+  The command @kbd{M-x font-lock-mode} turns Font Lock mode on with
+positive argument, off with negative or zero argument, and toggles the
+mode when it has no argument.  The function @code{turn-on-font-lock}
+unconditionally enables Font Lock mode.  This is useful in mode-hook
+functions.  For example, to enable Font Lock mode whenever you edit a
+C file, you can do this:
 
 @example
 (add-hook 'c-mode-hook 'turn-on-font-lock)
@@ -219,9 +273,9 @@ Font Lock mode whenever you edit a C file, you can do this:
 @findex global-font-lock-mode
 @vindex global-font-lock-mode
   To turn on Font Lock mode automatically in all modes which support
-it, customize the variable @code{global-font-lock-mode} or use the
-function @code{global-font-lock-mode} in your @file{.emacs} file, like
-this:
+it, customize the variable @code{global-font-lock-mode} using the
+Customize interface (@pxref{Easy Customization}) or use the function
+@code{global-font-lock-mode} in your @file{.emacs} file, like this:
 
 @example
 (global-font-lock-mode 1)
@@ -641,7 +695,7 @@ last, indicating that ``this is not the real end.''
 meaning ``there's more text on this line which is scrolled
 horizontally out of view;'' clicking the mouse on one of the arrows
 scrolls the display horizontally in the direction of the arrow.   The
-fringes also indicate other things such as empty lines, or where a
+fringes can also indicate other things, such as empty lines, or where a
 program you are debugging is executing (@pxref{Debuggers}).
 
 @findex set-fringe-style
@@ -728,11 +782,12 @@ one large window.
 of columns (you specify how many columns).  You can use this to get an
 overview of a part of a program.
 
-  To hide lines, type @kbd{C-x $} (@code{set-selective-display}) with a
-numeric argument @var{n}.  Then lines with at least @var{n} columns of
-indentation disappear from the screen.  The only indication of their
-presence is that three dots (@samp{@dots{}}) appear at the end of each
-visible line that is followed by one or more hidden ones.
+  To hide lines in the current buffer, type @kbd{C-x $}
+(@code{set-selective-display}) with a numeric argument @var{n}.  Then
+lines with at least @var{n} columns of indentation disappear from the
+screen.  The only indication of their presence is that three dots
+(@samp{@dots{}}) appear at the end of each visible line that is
+followed by one or more hidden ones.
 
   The commands @kbd{C-n} and @kbd{C-p} move across the hidden lines as
 if they were not there.
@@ -913,16 +968,18 @@ they are displayed using their graphics (assuming your terminal supports
 them), otherwise as escape sequences.  @xref{Single-Byte Character
 Support}.
 
-@vindex show-nonbreak-escape
+@vindex nobreak-char-display
 @cindex no-break space, display
 @cindex no-break hyphen, display
-  Some character sets define ``no-break'' versions of the space
-and hyphen characters, which are used where a line should not be
-broken.  Emacs displays these with an escape character in order to
-distinguish them from ordinary spaces and hyphens.  For example, a
-non-breaking space is displayed as @samp{\ }.  You can turn off this
-behavior by setting the variable @code{show-nonbreak-escape} to
-@code{nil}.
+@cindex soft hyphen, display
+  Some character sets define ``no-break'' versions of the space and
+hyphen characters, which are used where a line should not be broken.
+Emacs normally displays these characters with special faces
+(respectively, @code{nobreak-space} and @code{escape-glyph}) to
+distinguish them from ordinary spaces and hyphens.  You can turn off
+this feature by setting the variable @code{nobreak-char-display} to
+@code{nil}.  If you set the variable to any other value, that means to
+prefix these characters with an escape character.
 
 @node Cursor Display
 @section Displaying the Cursor
@@ -970,15 +1027,6 @@ global-hl-line-mode} enables or disables the same mode globally.
   This section contains information for customization only.  Beginning
 users should skip it.
 
-@vindex mode-line-inverse-video
-  The variable @code{mode-line-inverse-video} is an obsolete way of
-controlling whether the mode line is displayed in inverse video; the
-preferred way of doing this is to change the @code{mode-line} face.
-@xref{Mode Line}.  However, if @code{mode-line-inverse-video} has a
-value of @code{nil}, then the @code{mode-line} face will be ignored,
-and mode-lines will be drawn using the default text face.
-@xref{Faces}.
-
 @vindex inverse-video
   If the variable @code{inverse-video} is non-@code{nil}, Emacs attempts
 to invert all the lines of the display from what they normally are.
@@ -1086,7 +1134,7 @@ bitmaps are displayed in the left or right fringe, respectively.
 The @var{indicator} must be one of @code{top}, @code{bottom},
 @code{up}, @code{down}, or @code{t} which specifies the default
 position for the indicators not present in the alist.
-The @var{position} is one of @code{left}, @code{right}, or @code{ni}
+The @var{position} is one of @code{left}, @code{right}, or @code{nil}
 which specifies not to show this indicator.
 
   For example, @code{((top . left) (t . right))} places the top angle
@@ -1101,7 +1149,7 @@ is the default value for @code{indicate-buffer-boundaries} in buffers
 that do not override it.
 
 @vindex baud-rate
-  The variable @code{baud-rate} holds the output speed of the
+  The variable @anchor{baud-rate}@code{baud-rate} holds the output speed of the
 terminal, as far as Emacs knows.  Setting this variable does not
 change the speed of actual data transmission, but the value is used
 for calculations.  On terminals, it affects padding, and decisions