@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
@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
@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.
@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 sake of speed, some modes, including C mode and Lisp mode,
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
@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
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
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)
@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 minor mode which
-highlights the line containing point. On window systems, the command
+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.)