Remove unnecessary prev/next/up pointers in @node
[bpt/emacs.git] / man / display.texi
index 0b16172..3bc6807 100644 (file)
@@ -30,11 +30,18 @@ display it.
 @section Using Multiple Typefaces
 @cindex faces
 
-  When using Emacs with a window system, you can set up multiple
-styles of displaying characters.  Each style is called a @dfn{face}.
-Each face can specify various attributes, such as the height, weight
-and slant of the characters, the foreground and background color, and
-underlining.  But it does not have to specify all of them.
+  Emacs supports using multiple styles of displaying characters.  Each
+style is called a @dfn{face}.  Each face can specify various @dfn{face
+attributes}, such as the font family, the height, weight and slant of
+the characters, the foreground and background color, and underlining
+or overlining.  A face does not have to specify all of these
+attributes; often it inherits many of them from another face.
+
+  On a window system, all the Emacs face attributes are meaningful.
+On a character terminal, only some of them work.  Some character
+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.
 
   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
@@ -48,7 +55,7 @@ terminal has this capability.
 specifying the face or faces to use for it.  The style of display used
 for any given character is determined by combining the attributes of
 all the applicable faces specified for that character.  Any attribute
-that isn't specified by these faces is taken from the default face,
+that isn't specified by these faces is taken from the @code{default} face,
 whose attributes reflect the default settings of the frame itself.
 
   Enriched mode, the mode for editing formatted text, includes several
@@ -62,12 +69,16 @@ background color.
 @findex set-face-background
   To alter the appearance of a face, use the customization buffer.
 @xref{Face Customization}.  You can also use X resources to specify
-attributes of particular faces (@pxref{Resources X}).  Alternatively,
+attributes of particular faces (@pxref{Resources}).  Alternatively,
 you can change the foreground and background colors of a specific face
 with @kbd{M-x set-face-foreground} and @kbd{M-x set-face-background}.
 These commands prompt in the minibuffer for a face name and a color
 name, with completion, and then set that face to use the specified
-color.
+color.  Changing the colors of the @code{default} face also changes
+the foreground and background colors on all frames, both existing and
+those to be created in the future.  (You can also set foreground and
+background colors for the current frame only; see @ref{Frame
+Parameters}.)
 
   Emacs 21 can correctly display variable-width fonts, but Emacs
 commands that calculate width and indentation do not know how to
@@ -89,12 +100,20 @@ faces:
 @item default
 This face is used for ordinary text that doesn't specify any other face.
 @item mode-line
-This face is used for mode lines.  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}.
+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 highlight
 This face is used for highlighting portions of text, in various modes.
 For example, mouse-sensitive text is highlighted using this face.
@@ -143,7 +162,7 @@ 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-nil.
+@code{show-trailing-whitespace} is non-nil; see @ref{Trailing Whitespace}.
 @item variable-pitch
 The basic variable-pitch face.
 @end table
@@ -252,9 +271,12 @@ beyond which buffer fontification is suppressed.
 
 @c @w is used below to prevent a bad page-break.
 @vindex font-lock-beginning-of-syntax-function
+@cindex incorrect fontification
+@cindex parenthesis in column zero and fontification
+@cindex brace in column zero and fontification
   Comment and string fontification (or ``syntactic'' fontification)
 relies on analysis of the syntactic structure of the buffer text.  For
-the purposes of speed, some modes, including C mode and Lisp mode,
+the sake of speed, some modes, including C mode and Lisp mode,
 rely on a special convention: an open-parenthesis or open-brace in the
 leftmost column always defines the @w{beginning} of a defun, and is
 thus always outside any string or comment.  (@xref{Left Margin
@@ -288,6 +310,22 @@ comments, use this:
  '(("\\<\\(FIXME\\):" 1 font-lock-warning-face t)))
 @end example
 
+@findex font-lock-remove-keywords
+  To remove keywords from the font-lock highlighting patterns, use the
+function @code{font-lock-remove-keywords}.
+
+@cindex just-in-time (JIT) font-lock
+@cindex background syntax highlighting
+  Fontifying large buffers can take a long time.  To avoid large
+delays when a file is visited, Emacs fontifies only the visible
+portion of a buffer.  As you scroll through the buffer, each portion
+that becomes visible is fontified as soon as it is displayed.  The
+parts of the buffer that are not displayed are fontified
+``stealthily'', in the background, i.e.@: when Emacs is idle.  You can
+control this background fontification, called @dfn{Just-In-Time}, or
+@dfn{JIT} Font Lock, by customizing various options in the
+customization group @samp{jit-lock}.  @xref{Specific Customization}.
+
 @node Highlight Changes
 @section Highlight Changes Mode
 
@@ -373,9 +411,10 @@ This command does nothing if the major mode is a member of the list
 realizing it.  In most cases, this @dfn{trailing whitespace} has no
 effect, but there are special circumstances where it matters.
 
-  You can make trailing whitespace visible on the screen by setting
-the variable @code{show-trailing-whitespace} to @code{t}.  Then Emacs
-displays trailing whitespace in the face @code{trailing-whitespace}.
+  You can make trailing whitespace visible on the screen by setting the
+buffer-local variable @code{show-trailing-whitespace} to @code{t}.  Then
+Emacs displays trailing whitespace in the face
+@code{trailing-whitespace}.
 
   Trailing whitespace is defined as spaces or tabs at the end of a
 line.  But trailing whitespace is not displayed specially if point is
@@ -383,16 +422,24 @@ at the end of the line containing the whitespace.  (Doing that looks
 ugly while you are typing in new text, and the location of point is
 enough in that case to show you that the spaces are present.)
 
+@findex delete-trailing-whitespace
+  To delete all trailing whitespace within the current buffer's
+restriction (@pxref{Narrowing}), type @kbd{M-x
+delete-trailing-whitespace @key{RET}}.  (This command does not remove
+the form-feed characters.)
+
 @vindex indicate-empty-lines
 @vindex default-indicate-empty-lines
 @cindex empty lines
+@cindex fringes, and empty line indication
   Emacs can indicate empty lines at the end of the buffer with a
 special bitmap on the left fringe of the window.  To enable this
 feature, set the buffer-local variable @code{indicate-empty-lines} to
 a non-@code{nil} value.  The default value of this variable is
 controlled by the variable @code{default-indicate-empty-lines};
 by setting that variable, you can enable or disable this feature
-for all new buffers.
+for all new buffers.  (This feature currently doesn't work on
+character terminals.)
 
 @node Scrolling
 @section Scrolling
@@ -456,9 +503,9 @@ whole windowful of lines that were not previously visible.  If point
 was in the text that scrolled off the top, it ends up at the new top
 of the window.
 
-  @kbd{M-v} (@code{scroll-down}) with no argument scrolls backward
-similarly with overlap.  The number of lines of overlap across a
-@kbd{C-v} or @kbd{M-v} is controlled by the variable
+  @kbd{M-v} (@code{scroll-down}) with no argument scrolls backward in
+a similar way, also with overlap.  The number of lines of overlap
+across a @kbd{C-v} or @kbd{M-v} is controlled by the variable
 @code{next-screen-context-lines}; by default, it is 2.  The function
 keys @key{NEXT} and @key{PRIOR}, or @key{PAGEDOWN} and @key{PAGEUP},
 are equivalent to @kbd{C-v} and @kbd{M-v}.
@@ -593,9 +640,24 @@ for automatic horizontal scrolling.  Automatic scrolling will continue
 to scroll the window, but never farther to the right than the amount
 you previously set by @code{scroll-left}.
 
-@vindex automatic-hscrolling
+@vindex hscroll-margin
+  The value of the variable @code{hscroll-margin} controls how close
+to the window's edges point is allowed to get before the window will
+be automatically scrolled.  It is measured in columns.  If the value
+is 5, then moving point within 5 columns of the edge causes horizontal
+scrolling away from that edge.
+
+@vindex hscroll-step
+  The variable @code{hscroll-step} determines how many columns to
+scroll the window when point gets too close to the edge.  If it's
+zero, horizontal scrolling centers point horizontally within the
+window.  If it's a positive integer, it specifies the number of
+columns to scroll by.  If it's a floating-point number, it specifies
+the fraction of the window's width to scroll by.  The default is zero.
+
+@vindex auto-hscroll-mode
   To disable automatic horizontal scrolling, set the variable
-@code{automatic-hscrolling} to @code{nil}.
+@code{auto-hscroll-mode} to @code{nil}.
 
 @node Follow Mode
 @section Follow Mode
@@ -722,7 +784,7 @@ an icon instead of @samp{Mail} by customizing
 line.  You can customize @code{display-time-mail-face} to make the mail
 indicator prominent.
 
-@cindex mode line, 3D appearence
+@cindex mode line, 3D appearance
 @cindex attributes of mode line, changing
 @cindex non-integral number of lines in a window
   By default, the mode line is drawn on graphics displays with
@@ -743,6 +805,20 @@ Alternatively, you can turn off the box attribute in your
 Emacs.mode-line.AttributeBox: off
 @end example
 
+@cindex non-selected windows, mode line appearance
+  By default, the mode line of nonselected windows is displayed in a
+different face, called @code{mode-line-inactive}.  Only the selected
+window is displayed in the @code{mode-line} face.  This helps show
+which window is selected.  When the minibuffer is selected, since
+it has no mode line, the window from which you activated the minibuffer
+has its mode line displayed using @code{mode-line}; as a result,
+ordinary entry to the minibuffer does not change any mode lines.
+
+@vindex mode-line-in-non-selected-windows
+  You can disable use of @code{mode-line-inactive} by setting variable
+@code{mode-line-in-non-selected-windows} to @code{nil}; then all mode
+lines are displayed in the @code{mode-line} face.
+
 @node Text Display
 @section How Text Is Displayed
 @cindex characters (in text)
@@ -780,10 +856,10 @@ users should skip it.
   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}.  If you specify the foreground color for the
-@code{mode-line} face, and @code{mode-line-inverse-video} is
-non-@code{nil}, then the default background color for that face is the
-usual foreground color.  @xref{Faces}.
+@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
@@ -873,17 +949,25 @@ or off, customize the group @code{cursor}.  You can also control the
 amount of time Emacs must remain busy before the busy indicator is
 displayed, by setting the variable @code{hourglass-delay}.
 
+@findex tty-suppress-bold-inverse-default-colors
+  On some text-only terminals, bold face and inverse video together
+result in text that is hard to read.  Call the function
+@code{tty-suppress-bold-inverse-default-colors} with a non-@code{nil}
+argument to suppress the effect of bold-face in this case.
+
 @node Cursor Display
 @section Displaying the Cursor
 
 @findex hl-line-mode
+@findex global-hl-line-mode
 @cindex highlight current line
 @findex blink-cursor-mode
 @cindex cursor, locating visually
 @cindex cursor, blinking
   There are a number of ways to customize the display of the cursor.
-@kbd{M-x hl-line-mode} enables or disables a global minor mode which
-highlights the line containing point.  On window systems, the command
+@kbd{M-x hl-line-mode} enables or disables a minor mode which
+highlights the line containing point.  @kbd{M-x global-hl-line-mode}
+enables the minor mode globally.  On window systems, the command
 @kbd{M-x blink-cursor-mode} turns on or off the blinking of the
 cursor.  (On terminals, the terminal itself blinks the cursor, and
 Emacs has no control over it.)