]> code.delx.au - gnu-emacs/blobdiff - man/display.texi
(Highlight Interactively): Include global-hi-lock-mode. Add miscellaneous
[gnu-emacs] / man / display.texi
index 15681a1382b3db3939aa84d01a3d7cd137d22345..a0cb73c03bca1e1c9b7c4d783b81733f709946c0 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, 2005
-@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
@@ -14,8 +14,8 @@ display it.
 * 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.
+* Highlight Changes::      Using colors to show where you changed the buffer.
 * Scrolling::             Moving text up and down in a window.
 * Horizontal Scrolling::   Moving text left and right in a window.
 * Fringes::                Enabling or disabling window fringes.
@@ -104,14 +104,18 @@ future Emacs versions.
   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:
+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 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
@@ -119,9 +123,15 @@ 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.
+This face forces use of a particular fixed-width font.
 @item variable-pitch
-The basic variable-pitch face.
+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
@@ -146,19 +156,15 @@ mode is enabled---see below).
 This face is used for displaying a secondary X selection (@pxref{Secondary
 Selection}).
 @item trailing-whitespace
-The face for highlighting trailing whitespace when
-@code{show-trailing-whitespace} is non-@code{nil}; see @ref{Useless
-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.
-@item shadow
-The basic face for making the text less noticeable than the surrounding
-ordinary text.  Usually this is achieved by using shades of grey in
-contrast with either black or white default foreground color.
 @end table
 
 @cindex @code{region} face
@@ -175,10 +181,13 @@ appearance of these parts of the frame.
 
 @table @code
 @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.
+@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
@@ -186,15 +195,22 @@ 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.
+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 on
-character terminals.  By default this face inherits from the
-@code{mode-line-inactive} face.
+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.)
@@ -214,9 +230,16 @@ colors of this face affect the appearance of tool bar icons.  @xref{Tool Bars}.
 @item tooltip
 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.  @xref{Menu Bars}.
+@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
 
 @node Font Lock
@@ -235,37 +258,36 @@ Some special modes, such as Occur mode and Info mode, have completely
 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 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)
-@end example
+  Font Lock mode is turned on by default in all modes which support it.
+You can toggle font-lock for each buffer with the command @kbd{M-x
+font-lock-mode}.  Using a positive argument unconditionally turns Font
+Lock mode on, and a negative or zero argument turns it off.
 
 @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} using the
-Customize interface (@pxref{Easy Customization}) or use the function
+  If you do not wish Font Lock mode to be turned on by default,
+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)
+(global-font-lock-mode 0)
 @end example
 
-@noindent
-You can also specify this using the menu bar Options menu, specifying
-first Syntax Highlighting and then Save Options.
+@findex turn-on-font-lock
+  If you have disabled Global Font Lock mode, you can still enable font
+lock for specific major modes by adding the function
+@code{turn-on-font-lock} to the mode hooks (@pxref{Hooks}).  For
+example, to enable Font Lock mode for editing C files, you can do this:
+
+@example
+(add-hook 'c-mode-hook 'turn-on-font-lock)
+@end example
 
   Font Lock mode uses several specifically named faces to do its job,
 including @code{font-lock-string-face}, @code{font-lock-comment-face},
-and others.  The easiest way to find them all is to use completion
-on the face name in @code{set-face-foreground}.
+and others.  The easiest way to find them all is to use
+@kbd{M-x customize-group @key{RET} font-lock-faces @key{RET}}.
 
   To change the colors or the fonts used by Font Lock mode to fontify
 different parts of text, just change these faces.  There are
@@ -362,48 +384,53 @@ control this background fontification, also called @dfn{Just-In-Time}
 (or @dfn{JIT}) Lock, by customizing variables in the customization
 group @samp{jit-lock}.  @xref{Specific Customization}.
 
-@node Highlight Changes
-@section Highlight Changes Mode
-
-@findex highlight-changes-mode
-  Use @kbd{M-x highlight-changes-mode} to enable a minor mode
-that uses faces (colors, typically) to indicate which parts of
-the buffer were changed most recently.
-
 @node Highlight Interactively
 @section Interactive Highlighting by Matching
 @cindex highlighting by matching
 @cindex interactive highlighting
 
-  It is sometimes useful to highlight the strings that match a certain
-regular expression.  For example, you might wish to see all the
-references to a certain variable in a program source file, or highlight
-certain parts in a voluminous output of some program, or make certain
-cliches stand out in an article.
+  It is sometimes useful to temporarily highlight text that
+matches a certain regular expression.  For example, you might wish to
+see all the references to a certain variable in a program source file,
+highlight certain parts in a voluminous output of some program, or
+make certain names stand out in an article.
 
 @findex hi-lock-mode
   Use the @kbd{M-x hi-lock-mode} command to turn on a minor mode that
-allows you to specify regular expressions of the text to be
-highlighted.  Hi-lock mode works like Font Lock (@pxref{Font Lock}),
-except that it lets you specify explicitly what parts of text to
-highlight.  You control Hi-lock mode with these commands:
+allows you to interactively add and remove regular expressions
+specifying text to be highlighted.  Hi Lock mode works like Font Lock
+mode (@pxref{Font Lock}), except that it lets you easily add and
+remove regular expressions while you are editing a buffer.  To enable
+Hi Lock mode for all buffers use @kbd{M-x global-hi-lock-mode} or
+place @code{(global-hi-lock-mode 1)} in your @file{.emacs} file.
+
+You control Hi Lock mode with these commands:
 
 @table @kbd
 @item C-x w h @var{regexp} @key{RET} @var{face} @key{RET}
 @kindex C-x w h
 @findex highlight-regexp
-Highlight text that matches
-@var{regexp} using face @var{face} (@code{highlight-regexp}).
-By using this command more than once, you can highlight various
-parts of the text in different ways.
+Highlight text that matches @var{regexp} using face @var{face}
+(@code{highlight-regexp}).  By using this command more than once, you
+can highlight various parts of the text in different ways. The
+highlighting will remain as long as the buffer is loaded.  For
+example, to highlight all occurrences of the word ``whim'' using the
+default face (a yellow background) @kbd{C-x w h whim @key{RET}
+@key{RET}}.  Any face can be used for highlighting, Hi Lock provides
+several of its own and these are pre-loaded into a history list. While
+being prompted for a face use @kbd{C-p} and @kbd{C-n} to cycle through
+them.
 
 @item C-x w r @var{regexp} @key{RET}
 @kindex C-x w r
 @findex unhighlight-regexp
-Unhighlight @var{regexp} (@code{unhighlight-regexp}).  You must enter
-one of the regular expressions currently specified for highlighting.
-(You can use completion, or choose from a menu, to enter one of them
-conveniently.)
+Unhighlight @var{regexp} (@code{unhighlight-regexp}).  
+When activated from the menu select the expression to unhighlight from
+a list.  When activated from the keyboard the most recently added
+expression will be shown. Use @kbd{C-p} to show the next older
+expression and @kbd{C-n} to select the next newer expression. When
+the expression to unhighlight appears press @kbd{@key{RET}} to unhighlight
+it. The expression can also be typed and completion is available. 
 
 @item C-x w l @var{regexp} @key{RET} @var{face} @key{RET}
 @kindex C-x w l
@@ -422,7 +449,7 @@ program.  This key binding runs the
 @code{hi-lock-write-interactive-patterns} command.
 
 These patterns will be read the next time you visit the file while
-Hi-lock mode is enabled, or whenever you use the @kbd{M-x
+Hi Lock mode is enabled, or whenever you use the @kbd{M-x
 hi-lock-find-patterns} command.
 
 @item C-x w i
@@ -430,13 +457,27 @@ hi-lock-find-patterns} command.
 @findex hi-lock-find-patterns
 @vindex hi-lock-exclude-modes
 Re-read regexp/face pairs in the current buffer
-(@code{hi-lock-write-interactive-patterns}).  The list of pairs is
-found no matter where in the buffer it may be.
+(@code{hi-lock-write-interactive-patterns}). Users familiar with Font
+Lock keywords might interactively enter patterns
+(@code{highlight-regexp}), write them into the file
+(@code{hi-lock-write-interactive-patterns}), edit them, perhaps
+including different faces for different parenthesized parts of the
+match, and finally use this command
+(@code{hi-lock-write-interactive-patterns}) to have Hi Lock highlight
+them.
 
 This command does nothing if the major mode is a member of the list
 @code{hi-lock-exclude-modes}.
 @end table
 
+@node Highlight Changes
+@section Highlight Changes Mode
+
+@findex highlight-changes-mode
+  Use @kbd{M-x highlight-changes-mode} to enable a minor mode
+that uses faces (colors, typically) to indicate which parts of
+the buffer were changed most recently.
+
 @node Scrolling
 @section Scrolling
 
@@ -1004,15 +1045,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.