X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/6336d8c3d7812815d083de055229ebb840fe6159..19e364e29522a20357a236d8501725db47f7feee:/man/display.texi?ds=sidebyside diff --git a/man/display.texi b/man/display.texi deleted file mode 100644 index 21a65999ec..0000000000 --- a/man/display.texi +++ /dev/null @@ -1,1259 +0,0 @@ -@c This is part of the Emacs manual. -@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. -@c See file emacs.texi for copying conditions. -@node Display, Search, Registers, Top -@chapter Controlling the Display - - Since only part of a large buffer fits in the window, Emacs tries to -show a part that is likely to be interesting. Display-control -commands allow you to specify which part of the text you want to see, -and how to display it. Many variables also affect the details of -redisplay. Unless otherwise stated, the variables described in this -chapter have their effect by customizing redisplay itself; therefore, -their values only make a difference at the time of redisplay. - -@menu -* Scrolling:: Commands to move text up and down in a window. -* Auto Scrolling:: Redisplay scrolls text automatically when needed. -* Horizontal Scrolling:: Moving text left and right in a window. -* Follow Mode:: Follow mode lets two windows scroll as one. -* Faces:: How to change the display style using faces. -* Standard Faces:: Emacs' predefined faces. -* Font Lock:: Minor mode for syntactic highlighting using faces. -* Highlight Interactively:: Tell Emacs what text to highlight. -* Fringes:: Enabling or disabling window fringes. -* Displaying Boundaries:: Displaying top and bottom of the buffer. -* Useless Whitespace:: Showing possibly-spurious trailing whitespace. -* Selective Display:: Hiding lines with lots of indentation. -* Optional Mode Line:: Optional mode line display features. -* Text Display:: How text characters are normally displayed. -* Cursor Display:: Features for displaying the cursor. -* Line Truncation:: Truncating lines to fit the screen width instead - of continuing them to multiple screen lines. -* Display Custom:: Information on variables for customizing display. -@end menu - -@node Scrolling -@section Scrolling - - If a buffer contains text that is too large to fit entirely within a -window that is displaying the buffer, Emacs shows a contiguous portion of -the text. The portion shown always contains point. - -@cindex scrolling - @dfn{Scrolling} means moving text up or down in the window so that -different parts of the text are visible. Scrolling ``forward'' or -``up'' means that text moves up, and new text appears at the bottom. -Scrolling ``backward'' or ``down'' moves text down, and new text -appears at the top. - - Scrolling happens automatically if you move point past the bottom or -top of the window. You can also scroll explicitly with the commands -in this section. - -@table @kbd -@item C-l -Clear screen and redisplay, scrolling the selected window to center -point vertically within it (@code{recenter}). -@item C-v -Scroll forward (a windowful or a specified number of lines) (@code{scroll-up}). -@item @key{NEXT} -@itemx @key{PAGEDOWN} -Likewise, scroll forward. -@item M-v -Scroll backward (@code{scroll-down}). -@item @key{PRIOR} -@itemx @key{PAGEUP} -Likewise, scroll backward. -@item @var{arg} C-l -Scroll so point is on line @var{arg} (@code{recenter}). -@item C-M-l -Scroll heuristically to bring useful information onto the screen -(@code{reposition-window}). -@end table - -@kindex C-l -@findex recenter - The most basic scrolling command is @kbd{C-l} (@code{recenter}) with -no argument. It scrolls the selected window so that point is halfway -down from the top of the window. On a text terminal, it also clears -the screen and redisplays all windows. That is useful in case the -screen is garbled (@pxref{Screen Garbled}). - -@kindex C-v -@kindex M-v -@kindex NEXT -@kindex PRIOR -@kindex PAGEDOWN -@kindex PAGEUP -@findex scroll-up -@findex scroll-down - To read the buffer a windowful at a time, use @kbd{C-v} -(@code{scroll-up}) with no argument. This scrolls forward by nearly -the whole window height. The effect is to take the two lines at the -bottom of the window and put them at the top, followed by nearly a -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. - -@vindex next-screen-context-lines - @kbd{M-v} (@code{scroll-down}) with no argument scrolls backward in -a similar way, also with overlap. The number of lines of overlap that -the @kbd{C-v} or @kbd{M-v} commands leave 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}. - - The commands @kbd{C-v} and @kbd{M-v} with a numeric argument scroll -the text in the selected window up or down a few lines. @kbd{C-v} -with an argument moves the text and point up, together, that many -lines; it brings the same number of new lines into view at the bottom -of the window. @kbd{M-v} with numeric argument scrolls the text -downward, bringing that many new lines into view at the top of the -window. @kbd{C-v} with a negative argument is like @kbd{M-v} and vice -versa. - - The names of scroll commands are based on the direction that the -text moves in the window. Thus, the command to scroll forward is -called @code{scroll-up} because it moves the text upward on the -screen. The keys @key{PAGEDOWN} and @key{PAGEUP} derive their names -and customary meanings from a different convention that developed -elsewhere; hence the strange result that @key{PAGEDOWN} runs -@code{scroll-up}. - -@vindex scroll-preserve-screen-position - Some users like the full-screen scroll commands to keep point at the -same screen line. To enable this behavior, set the variable -@code{scroll-preserve-screen-position} to a non-@code{nil} value. In -this mode, when these commands would scroll the text around point off -the screen, or within @code{scroll-margin} lines of the edge, they -move point to keep the same vertical position within the window. -This mode is convenient for browsing through a file by scrolling by -screenfuls; if you come back to the screen where you started, point -goes back to the line where it started. However, this mode is -inconvenient when you move to the next screen in order to move point -to the text there. - - Another way to do scrolling is with @kbd{C-l} with a numeric argument. -@kbd{C-l} does not clear the screen when given an argument; it only scrolls -the selected window. With a positive argument @var{n}, it repositions text -to put point @var{n} lines down from the top. An argument of zero puts -point on the very top line. Point does not move with respect to the text; -rather, the text and point move rigidly on the screen. @kbd{C-l} with a -negative argument puts point that many lines from the bottom of the window. -For example, @kbd{C-u - 1 C-l} puts point on the bottom line, and @kbd{C-u -- 5 C-l} puts it five lines from the bottom. @kbd{C-u C-l} scrolls to put -point at the center (vertically) of the selected window. - -@kindex C-M-l -@findex reposition-window - The @kbd{C-M-l} command (@code{reposition-window}) scrolls the current -window heuristically in a way designed to get useful information onto -the screen. For example, in a Lisp file, this command tries to get the -entire current defun onto the screen if possible. - -@node Auto Scrolling -@section Automatic Scrolling - -@vindex scroll-conservatively - Redisplay scrolls the buffer automatically when point moves out of -the visible portion of the text. The purpose of automatic scrolling -is to make point visible, but you can customize many aspects of how -this is done. - - Normally, automatic scrolling centers point vertically within the -window. However, if you set @code{scroll-conservatively} to a small -number @var{n}, then if you move point just a little off the -screen---less than @var{n} lines---then Emacs scrolls the text just -far enough to bring point back on screen. By default, -@code{scroll-conservatively} is@tie{}0. - -@cindex aggressive scrolling -@vindex scroll-up-aggressively -@vindex scroll-down-aggressively - When the window does scroll by a longer distance, you can control -how aggressively it scrolls, by setting the variables -@code{scroll-up-aggressively} and @code{scroll-down-aggressively}. -The value of @code{scroll-up-aggressively} should be either -@code{nil}, or a fraction @var{f} between 0 and 1. A fraction -specifies where on the screen to put point when scrolling upward. -More precisely, when a window scrolls up because point is above the -window start, the new start position is chosen to put point @var{f} -part of the window height from the top. The larger @var{f}, the more -aggressive the scrolling. - - @code{nil}, which is the default, scrolls to put point at the center. -So it is equivalent to .5. - - Likewise, @code{scroll-down-aggressively} is used for scrolling -down. The value, @var{f}, specifies how far point should be placed -from the bottom of the window; thus, as with -@code{scroll-up-aggressively}, a larger value is more aggressive. - -@vindex scroll-margin - The variable @code{scroll-margin} restricts how close point can come -to the top or bottom of a window. Its value is a number of screen -lines; if point comes within that many lines of the top or bottom of the -window, Emacs recenters the window. By default, @code{scroll-margin} is -0. - -@node Horizontal Scrolling -@section Horizontal Scrolling -@cindex horizontal scrolling - - @dfn{Horizontal scrolling} means shifting all the lines sideways -within a window---so that some of the text near the left margin is not -displayed at all. When the text in a window is scrolled horizontally, -text lines are truncated rather than continued (@pxref{Line -Truncation}). Whenever a window shows truncated lines, Emacs -automatically updates its horizontal scrolling whenever point moves -off the left or right edge of the screen. You can also use these -commands to do explicit horizontal scrolling. - -@table @kbd -@item C-x < -Scroll text in current window to the left (@code{scroll-left}). -@item C-x > -Scroll to the right (@code{scroll-right}). -@end table - -@kindex C-x < -@kindex C-x > -@findex scroll-left -@findex scroll-right - The command @kbd{C-x <} (@code{scroll-left}) scrolls the selected -window to the left by @var{n} columns with argument @var{n}. This moves -part of the beginning of each line off the left edge of the window. -With no argument, it scrolls by almost the full width of the window (two -columns less, to be precise). - - @kbd{C-x >} (@code{scroll-right}) scrolls similarly to the right. The -window cannot be scrolled any farther to the right once it is displayed -normally (with each line starting at the window's left margin); -attempting to do so has no effect. This means that you don't have to -calculate the argument precisely for @w{@kbd{C-x >}}; any sufficiently large -argument will restore the normal display. - - If you use those commands to scroll a window horizontally, that sets -a lower bound 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 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{auto-hscroll-mode} to @code{nil}. - -@node Follow Mode -@section Follow Mode -@cindex Follow mode -@cindex mode, Follow -@findex follow-mode -@cindex windows, synchronizing -@cindex synchronizing windows - - @dfn{Follow mode} is a minor mode that makes two windows, both -showing the same buffer, scroll as a single tall ``virtual window.'' -To use Follow mode, go to a frame with just one window, split it into -two side-by-side windows using @kbd{C-x 3}, and then type @kbd{M-x -follow-mode}. From then on, you can edit the buffer in either of the -two windows, or scroll either one; the other window follows it. - - In Follow mode, if you move point outside the portion visible in one -window and into the portion visible in the other window, that selects -the other window---again, treating the two as if they were parts of -one large window. - - To turn off Follow mode, type @kbd{M-x follow-mode} a second time. - -@node Faces -@section Using Multiple Typefaces -@cindex faces - - You can specify various styles for displaying text using -@dfn{faces}. 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 most of them from another face. - - On graphical display, all the Emacs face attributes are meaningful. -On a text-only terminal, only some of them work. Some text-only -terminals support inverse video, bold, and underline attributes; some -support colors. Text-only terminals generally do not support changing -the height and width or the font family. - - Emacs uses faces automatically for highlighting, through the work of -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}. - - You control the appearance of a part of the text in the buffer by -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 @code{default} face, -whose attributes reflect the default settings of the frame itself. - - Enriched mode, the mode for editing formatted text, includes several -commands and menus for specifying faces for text in the buffer. -@xref{Format Faces}, for how to specify the font for text in the -buffer. @xref{Format Colors}, for how to specify the foreground and -background color. - -@cindex face colors, setting -@findex set-face-foreground -@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}). 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. 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}.) - - If you want to alter the appearance of all Emacs frames, you need to -customize the frame parameters in the variable -@code{default-frame-alist}; see @ref{Creating Frames, -default-frame-alist}. - - Emacs can correctly display variable-width fonts, but Emacs commands -that calculate width and indentation do not know how to calculate -variable widths. This can sometimes lead to incorrect results when -you use variable-width fonts. In particular, indentation commands can -give inconsistent results, so we recommend you avoid variable-width -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. With a prefix argument, this -prompts for a regular expression, and displays only faces with names -matching that regular expression. - - Here are the standard faces for specifying text appearance. You can -apply them to 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 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 -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 face 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 isearch -This face is used for highlighting the current Isearch match. -@item query-replace -This face is used for highlighting the current Query Replace match. -@item lazy-highlight -This face is used for lazy highlighting of Isearch and Query Replace -matches other than the current one. -@item region -This face is used for displaying a selected region (when Transient Mark -mode is enabled---see below). -@item secondary-selection -This face is used for displaying a secondary X selection (@pxref{Secondary -Selection}). -@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 graphical displays, 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 mode-line-highlight -Like @code{highlight}, but used for portions of text on mode lines. -@item mode-line-buffer-id -This face is used for buffer identification parts in the mode line. -@item header-line -Similar to @code{mode-line} for a window's header line, which appears -at the top of a window just as the mode line appears at the bottom. -Most windows do not have a header line---only some special modes, such -Info mode, create one. -@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 graphical displays 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. (This variable takes -effect when you enter the minibuffer.) -@item 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 -This face determines the color of the cursor. -@item mouse -This face determines the color of the mouse pointer. -@item tool-bar -This face determines the color of tool bar icons. @xref{Tool Bars}. -@item tooltip -This face is used for tooltips. @xref{Tooltips}. -@item menu -@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/Mac ports 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 -@section Font Lock mode -@cindex Font Lock mode -@cindex mode, Font Lock -@cindex syntax highlighting and coloring - - Font Lock mode is a minor mode, always local to a particular buffer, -which highlights (or ``fontifies'') the buffer contents 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---for -example, names of functions being defined or reserved keywords. -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 - 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 - 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 0) -@end example - -@noindent -This variable, like all the variables that control Font Lock mode, -take effect whenever fontification is done; that is, potentially at -any time. - -@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 @kbd{M-x -customize-group @key{RET} font-lock-faces @key{RET}}. You can then -use that customization buffer to customize the appearance of these -faces. @xref{Face Customization}. - - You can also customize these faces using @kbd{M-x -set-face-foreground} or @kbd{M-x set-face-background}. @xref{Faces}. - -@vindex font-lock-maximum-decoration - The variable @code{font-lock-maximum-decoration} specifies the -preferred level of fontification, for modes that provide multiple -levels. Level 1 is the least amount of fontification; some modes -support levels as high as 3. The normal default is ``as high as -possible.'' You can specify an integer, which applies to all modes, or -you can specify different numbers for particular major modes; for -example, to use level 1 for C/C++ modes, and the default level -otherwise, use this: - -@example -(setq font-lock-maximum-decoration - '((c-mode . 1) (c++-mode . 1))) -@end example - -@vindex font-lock-maximum-size - Fontification can be too slow for large buffers, so you can suppress -it for buffers above a certain size. The variable -@code{font-lock-maximum-size} specifies a buffer size, 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 sake of speed, some modes, including 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 Paren}.) If you -don't follow this convention, Font Lock mode can misfontify the text -that follows an open-parenthesis or open-brace in the leftmost column -that is inside a string or comment. - -@cindex slow display during scrolling - The variable @code{font-lock-beginning-of-syntax-function} (always -buffer-local) specifies how Font Lock mode can find a position -guaranteed to be outside any comment or string. In modes which use the -leftmost column parenthesis convention, the default value of the variable -is @code{beginning-of-defun}---that tells Font Lock mode to use the -convention. If you set this variable to @code{nil}, Font Lock no longer -relies on the convention. This avoids incorrect results, but the price -is that, in some cases, fontification for a changed text must rescan -buffer text from the beginning of the buffer. This can considerably -slow down redisplay while scrolling, particularly if you are close to -the end of a large buffer. - -@findex font-lock-add-keywords - Font Lock highlighting patterns already exist for many modes, but you -may want to fontify additional patterns. You can use the function -@code{font-lock-add-keywords}, to add your own highlighting patterns for -a particular mode. For example, to highlight @samp{FIXME:} words in C -comments, use this: - -@example -(font-lock-add-keywords - 'c-mode - '(("\\<\\(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}. @xref{Search-based -Fontification,,, elisp, The Emacs Lisp Reference Manual}, for -documentation of the format of this list. - -@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, 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 Interactively -@section Interactive Highlighting -@cindex highlighting by matching -@cindex interactive highlighting -@cindex Highlight Changes mode - -@findex highlight-changes-mode - Use @kbd{M-x highlight-changes-mode} to enable (or disable) -Highlight Changes mode, a minor mode that uses faces (colors, -typically) to indicate which parts of the buffer were changed most -recently. - -@cindex Hi Lock mode -@findex hi-lock-mode - Hi Lock mode highlights text that matches regular expressions you -specify. 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. Use the @kbd{M-x hi-lock-mode} command to enable (or -disable) Hi Lock mode. 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. - - Hi Lock mode works like Font Lock mode (@pxref{Font Lock}), except -that you specify explicitly the regular expressions to highlight. You -control them 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}). 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{M-p} and @kbd{M-n} to cycle through them. - -You can use this command multiple times, specifying various regular -expressions to highlight in different ways. - -@item C-x w r @var{regexp} @key{RET} -@kindex C-x w r -@findex unhighlight-regexp -Unhighlight @var{regexp} (@code{unhighlight-regexp}). - -If you invoke this from the menu, you select the expression to -unhighlight from a list. If you invoke this from the keyboard, you -use the minibuffer. It will show the most recently added regular -expression; use @kbd{M-p} to show the next older expression and -@kbd{M-n} to select the next newer expression. (You can also type the -expression by hand, with completion.) When the expression you want to -unhighlight appears in the minibuffer, press @kbd{@key{RET}} to exit -the minibuffer and unhighlight it. - -@item C-x w l @var{regexp} @key{RET} @var{face} @key{RET} -@kindex C-x w l -@findex highlight-lines-matching-regexp -@cindex lines, highlighting -@cindex highlighting lines of text -Highlight entire lines containing a match for @var{regexp}, using face -@var{face} (@code{highlight-lines-matching-regexp}). - -@item C-x w b -@kindex C-x w b -@findex hi-lock-write-interactive-patterns -Insert all the current highlighting regexp/face pairs into the buffer -at point, with comment delimiters to prevent them from changing your -program. (This key binding runs the -@code{hi-lock-write-interactive-patterns} command.) - -These patterns are extracted from the comments, if appropriate, if you -invoke @kbd{M-x hi-lock-find-patterns}, or if you visit the file while -Hi Lock mode is enabled (since that runs @code{hi-lock-find-patterns}). - -@item C-x w i -@kindex C-x w i -@findex hi-lock-find-patterns -Extract regexp/face pairs from comments in the current buffer -(@code{hi-lock-find-patterns}). Thus, you can enter patterns -interactively with @code{highlight-regexp}, store them into the file -with @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-find-patterns}) to -have Hi Lock highlight the edited patterns. - -@vindex hi-lock-file-patterns-policy -The variable @code{hi-lock-file-patterns-policy} controls whether Hi -Lock mode should automatically extract and highlight patterns found in -a file when it is visited. Its value can be @code{nil} (never -highlight), @code{t} (highlight the patterns), @code{ask} (query the -user), or a function. If it is a function, -@code{hi-lock-find-patterns} calls it with the patterns as argument; -if the function returns non-@code{nil}, the patterns are used. The -default is @code{nil}. Note that patterns are always highlighted if -you call @code{hi-lock-find-patterns} directly, regardless of the -value of this variable. - -@vindex hi-lock-exclude-modes -Also, @code{hi-lock-find-patterns} does nothing if the current major -mode's symbol is a member of the list @code{hi-lock-exclude-modes}. -@end table - -@node Fringes -@section Window Fringes -@cindex fringes - - On a graphical display, each Emacs window normally has narrow -@dfn{fringes} on the left and right edges. The fringes display -indications about the text in the window. - - The most common use of the fringes is to indicate a continuation -line, when one line of text is split into multiple lines on the -screen. The left fringe shows a curving arrow for each screen line -except the first, indicating that ``this is not the real beginning.'' -The right fringe shows a curving arrow for each screen line except the -last, indicating that ``this is not the real end.'' - - The fringes indicate line truncation with short horizontal arrows -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 can also indicate other things, such as empty lines, or where a -program you are debugging is executing (@pxref{Debuggers}). - -@findex set-fringe-style -@findex fringe-mode - You can enable and disable the fringes for all frames using -@kbd{M-x fringe-mode}. To enable and disable the fringes -for the selected frame, use @kbd{M-x set-fringe-style}. - -@node Displaying Boundaries -@section Displaying Boundaries - -@vindex indicate-buffer-boundaries - On a graphical display, Emacs can indicate the buffer boundaries in -the fringes. It indicates the first line and the last line with -angle images in the fringes. This can be combined with up and down -arrow images which say whether it is possible to scroll the window up -and down. - - The buffer-local variable @code{indicate-buffer-boundaries} controls -how the buffer boundaries and window scrolling is indicated in the -fringes. If the value is @code{left} or @code{right}, both angle and -arrow bitmaps are displayed in the left or right fringe, respectively. - - If value is an alist, each element @code{(@var{indicator} . -@var{position})} specifies the position of one of the indicators. -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{nil} -which specifies not to show this indicator. - - For example, @code{((top . left) (t . right))} places the top angle -bitmap in left fringe, the bottom angle bitmap in right fringe, and -both arrow bitmaps in right fringe. To show just the angle bitmaps in -the left fringe, but no arrow bitmaps, use @code{((top . left) -(bottom . left))}. - -@vindex default-indicate-buffer-boundaries - The value of the variable @code{default-indicate-buffer-boundaries} -is the default value for @code{indicate-buffer-boundaries} in buffers -that do not override it. - -@node Useless Whitespace -@section Useless Whitespace - -@cindex trailing whitespace -@cindex whitespace, trailing -@vindex show-trailing-whitespace - It is easy to leave unnecessary spaces at the end of a line, or -empty lines at the end of a file, without realizing it. In most -cases, this @dfn{trailing whitespace} has no effect, but there are -special circumstances where it matters. It can also be a nuisance -that the line has ``changed,'' when the change is just spaces added or -removed at the end. - - You can make trailing whitespace at the end of a line 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}. - - This feature does not apply when point is at the end of the line -containing the whitespace. Strictly speaking, that is ``trailing -whitespace'' nonetheless, but displaying it specially in that case -looks ugly while you are typing in new text. In this special case, -the location of point is enough to show you that the spaces are -present. - -@findex delete-trailing-whitespace - To delete all trailing whitespace within the current buffer's -accessible portion (@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 unused lines -@cindex fringes, and unused line indication - Emacs can indicate unused lines at the end of the window with a -small image in the left fringe (@pxref{Fringes}). The image appears -for window lines that do not correspond to any buffer text. Blank -lines at the end of the buffer then stand out because they do not have -this image in the fringe. - - 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. (This feature -currently doesn't work on text-only terminals.) - -@node Selective Display -@section Selective Display -@cindex selective display -@findex set-selective-display -@kindex C-x $ - - Emacs has the ability to hide lines indented more than a certain number -of columns (you specify how many columns). You can use this to get an -overview of a part of a program. - - 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. - - The hidden lines are still present in the buffer, and most editing -commands see them as usual, so you may find point in the middle of the -hidden text. When this happens, the cursor appears at the end of the -previous line, after the three dots. If point is at the end of the -visible line, before the newline that ends it, the cursor appears before -the three dots. - - To make all lines visible again, type @kbd{C-x $} with no argument. - -@vindex selective-display-ellipses - If you set the variable @code{selective-display-ellipses} to -@code{nil}, the three dots do not appear at the end of a line that -precedes hidden lines. Then there is no visible indication of the -hidden lines. This variable becomes local automatically when set. - - See also @ref{Outline Mode} for another way to hide part of -the text in a buffer. - -@node Optional Mode Line -@section Optional Mode Line Features - -@cindex buffer size display -@cindex display of buffer size -@findex size-indication-mode - The buffer percentage @var{pos} indicates the percentage of the -buffer above the top of the window. You can additionally display the -size of the buffer by typing @kbd{M-x size-indication-mode} to turn on -Size Indication mode. The size will be displayed immediately -following the buffer percentage like this: - -@example -@var{POS} of @var{SIZE} -@end example - -@noindent -Here @var{SIZE} is the human readable representation of the number of -characters in the buffer, which means that @samp{k} for 10^3, @samp{M} -for 10^6, @samp{G} for 10^9, etc., are used to abbreviate. - -@cindex narrowing, and buffer size display - If you have narrowed the buffer (@pxref{Narrowing}), the size of the -accessible part of the buffer is shown. - -@cindex line number display -@cindex display of line number -@findex line-number-mode - The current line number of point appears in the mode line when Line -Number mode is enabled. Use the command @kbd{M-x line-number-mode} to -turn this mode on and off; normally it is on. The line number appears -after the buffer percentage @var{pos}, with the letter @samp{L} to -indicate what it is. - -@cindex Column Number mode -@cindex mode, Column Number -@findex column-number-mode - Similarly, you can display the current column number by turning on -Column number mode with @kbd{M-x column-number-mode}. The column -number is indicated by the letter @samp{C}. However, when both of -these modes are enabled, the line and column numbers are displayed in -parentheses, the line number first, rather than with @samp{L} and -@samp{C}. For example: @samp{(561,2)}. @xref{Minor Modes}, for more -information about minor modes and about how to use these commands. - -@cindex narrowing, and line number display - If you have narrowed the buffer (@pxref{Narrowing}), the displayed -line number is relative to the accessible portion of the buffer. -Thus, it isn't suitable as an argument to @code{goto-line}. (Use -@code{what-line} command to see the line number relative to the whole -file.) - -@vindex line-number-display-limit - If the buffer is very large (larger than the value of -@code{line-number-display-limit}), then the line number doesn't appear. -Emacs doesn't compute the line number when the buffer is large, because -that would be too slow. Set it to @code{nil} to remove the limit. - -@vindex line-number-display-limit-width - Line-number computation can also be slow if the lines in the buffer -are too long. For this reason, Emacs normally doesn't display line -numbers if the average width, in characters, of lines near point is -larger than the value of the variable -@code{line-number-display-limit-width}. The default value is 200 -characters. - -@findex display-time -@cindex time (on mode line) - Emacs can optionally display the time and system load in all mode -lines. To enable this feature, type @kbd{M-x display-time} or customize -the option @code{display-time-mode}. The information added to the mode -line usually appears after the buffer name, before the mode names and -their parentheses. It looks like this: - -@example -@var{hh}:@var{mm}pm @var{l.ll} -@end example - -@noindent -@vindex display-time-24hr-format -Here @var{hh} and @var{mm} are the hour and minute, followed always by -@samp{am} or @samp{pm}. @var{l.ll} is the average number of running -processes in the whole system recently. (Some fields may be missing if -your operating system cannot support them.) If you prefer time display -in 24-hour format, set the variable @code{display-time-24hr-format} -to @code{t}. - -@cindex mail (on mode line) -@vindex display-time-use-mail-icon -@vindex display-time-mail-face -@vindex display-time-mail-file -@vindex display-time-mail-directory - The word @samp{Mail} appears after the load level if there is mail -for you that you have not read yet. On a graphical display you can use -an icon instead of @samp{Mail} by customizing -@code{display-time-use-mail-icon}; this may save some space on the mode -line. You can customize @code{display-time-mail-face} to make the mail -indicator prominent. Use @code{display-time-mail-file} to specify -the mail file to check, or set @code{display-time-mail-directory} -to specify the directory to check for incoming mail (any nonempty regular -file in the directory is considered as ``newly arrived mail''). - -@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 -3D-style highlighting, like that of a button when it is not being -pressed. If you don't like this effect, you can disable the 3D -highlighting of the mode line, by customizing the attributes of the -@code{mode-line} face. @xref{Face Customization}. - -@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. - -@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 the strings you prefer. - -@node Text Display -@section How Text Is Displayed -@cindex characters (in text) - - @acronym{ASCII} printing characters (octal codes 040 through 0176) in Emacs -buffers are displayed with their graphics, as are non-ASCII multibyte -printing characters (octal codes above 0400). - - Some @acronym{ASCII} control characters are displayed in special ways. The -newline character (octal code 012) is displayed by starting a new line. -The tab character (octal code 011) is displayed by moving to the next -tab stop column (normally every 8 columns). - - Other @acronym{ASCII} control characters are normally displayed as a caret -(@samp{^}) followed by the non-control version of the character; thus, -control-A is displayed as @samp{^A}. The caret appears in face -@code{escape-glyph}. - - Non-@acronym{ASCII} characters 0200 through 0237 (octal) are -displayed with octal escape sequences; thus, character code 0230 -(octal) is displayed as @samp{\230}. The backslash appears in face -@code{escape-glyph}. - -@vindex ctl-arrow - If the variable @code{ctl-arrow} is @code{nil}, control characters in -the buffer are displayed with octal escape sequences, except for newline -and tab. Altering the value of @code{ctl-arrow} makes it local to the -current buffer; until that time, the default value is in effect. The -default is initially @code{t}. - - The display of character codes 0240 through 0377 (octal) may be -either as escape sequences or as graphics. They do not normally occur -in multibyte buffers, but if they do, they are displayed as Latin-1 -graphics. In unibyte mode, if you enable European display they are -displayed using their graphics (assuming your terminal supports them), -otherwise as escape sequences. @xref{Unibyte Mode}. - -@vindex nobreak-char-display -@cindex no-break space, display -@cindex no-break hyphen, display -@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. - -@vindex tab-width -@vindex default-tab-width - Normally, a tab character in the buffer is displayed as whitespace which -extends to the next display tab stop position, and display tab stops come -at intervals equal to eight spaces. The number of spaces per tab is -controlled by the variable @code{tab-width}, which is made local by -changing it. Note that how the tab character -in the buffer is displayed has nothing to do with the definition of -@key{TAB} as a command. The variable @code{tab-width} must have an -integer value between 1 and 1000, inclusive. The variable -@code{default-tab-width} controls the default value of this variable -for buffers where you have not set it locally. - - You can customize the way any particular character code is displayed -by means of a display table. @xref{Display Tables,, Display Tables, -elisp, The Emacs Lisp Reference Manual}. - -@node Cursor Display -@section Displaying the Cursor - -@findex blink-cursor-mode -@vindex blink-cursor-alist -@cindex cursor, locating visually -@cindex cursor, blinking - You can customize the cursor's color, and whether it blinks, using -the @code{cursor} Custom group (@pxref{Easy Customization}). On -a graphical display, the command @kbd{M-x blink-cursor-mode} enables -or disables the blinking of the cursor. (On text terminals, the -terminal itself blinks the cursor, and Emacs has no control over it.) -You can control how the cursor appears when it blinks off by setting -the variable @code{blink-cursor-alist}. - -@vindex visible-cursor - Some text terminals offer two different cursors: the normal cursor -and the very visible cursor, where the latter may be e.g. bigger or -blinking. By default Emacs uses the very visible cursor, and switches -to it when you start or resume Emacs. If the variable -@code{visible-cursor} is @code{nil} when Emacs starts or resumes, it -doesn't switch, so it uses the normal cursor. - -@cindex cursor in non-selected windows -@vindex cursor-in-non-selected-windows - Normally, the cursor appears in non-selected windows in the ``off'' -state, with the same appearance as when the blinking cursor blinks -``off.'' For a box cursor, this is a hollow box; for a bar cursor, -this is a thinner bar. To turn off cursors in non-selected windows, -customize the variable @code{cursor-in-non-selected-windows} and assign -it a @code{nil} value. - -@vindex x-stretch-cursor -@cindex wide block cursor - On graphical displays, Emacs can optionally draw the block cursor -as wide as the character under the cursor---for example, if the cursor -is on a tab character, it would cover the full width occupied by that -tab character. To enable this feature, set the variable -@code{x-stretch-cursor} to a non-@code{nil} value. - -@findex hl-line-mode -@findex global-hl-line-mode -@cindex highlight current line - To make the cursor even more visible, you can use HL Line mode, a -minor mode that highlights the line containing point. Use @kbd{M-x -hl-line-mode} to enable or disable it in the current buffer. @kbd{M-x -global-hl-line-mode} enables or disables the same mode globally. - -@node Line Truncation -@section Truncation of Lines - -@cindex truncation -@cindex line truncation, and fringes - As an alternative to continuation, Emacs can display long lines by -@dfn{truncation}. This means that all the characters that do not fit -in the width of the screen or window do not appear at all. On -graphical displays, a small straight arrow in the fringe indicates -truncation at either end of the line. On text-only terminals, @samp{$} -appears in the first column when there is text truncated to the left, -and in the last column when there is text truncated to the right. - -@vindex truncate-lines -@findex toggle-truncate-lines - Horizontal scrolling automatically causes line truncation -(@pxref{Horizontal Scrolling}). You can explicitly enable line -truncation for a particular buffer with the command @kbd{M-x -toggle-truncate-lines}. This works by locally changing the variable -@code{truncate-lines}. If that variable is non-@code{nil}, long lines -are truncated; if it is @code{nil}, they are continued onto multiple -screen lines. Setting the variable @code{truncate-lines} in any way -makes it local to the current buffer; until that time, the default -value is in effect. The default value is normally @code{nil}. - -@c @vindex truncate-partial-width-windows @c Idx entry is in Split Windows. - If the variable @code{truncate-partial-width-windows} is -non-@code{nil}, it forces truncation rather than continuation in any -window less than the full width of the screen or frame, regardless of -the value of @code{truncate-lines}. For information about side-by-side -windows, see @ref{Split Window}. See also @ref{Display,, Display, -elisp, The Emacs Lisp Reference Manual}. - -@vindex overflow-newline-into-fringe - If the variable @code{overflow-newline-into-fringe} is -non-@code{nil} on a graphical display, then Emacs does not continue or -truncate a line which is exactly as wide as the window. Instead, the -newline overflows into the right fringe, and the cursor appears in the -fringe when positioned on that newline. - -@node Display Custom -@section Customization of Display - - This section describes variables (@pxref{Variables}) that you can -change to customize how Emacs displays. Beginning users can skip -it. -@c the reason for that pxref is because an xref early in the -@c ``echo area'' section leads here. - -@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. - -@vindex visible-bell - If the variable @code{visible-bell} is non-@code{nil}, Emacs attempts -to make the whole screen blink when it would normally make an audible bell -sound. This variable has no effect if your terminal does not have a way -to make the screen blink. - -@vindex echo-keystrokes - The variable @code{echo-keystrokes} controls the echoing of multi-character -keys; its value is the number of seconds of pause required to cause echoing -to start, or zero, meaning don't echo at all. The value takes effect when -there is someting to echo. @xref{Echo Area}. - -@vindex baud-rate - 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 text-only terminals, it affects padding, -and decisions about whether to scroll part of the screen or redraw it -instead. It also affects the behavior of incremental search. - - On graphical displays, @code{baud-rate} is only used to determine -how frequently to look for pending input during display updating. A -higher value of @code{baud-rate} means that check for pending input -will be done less frequently. - -@cindex hourglass pointer display -@vindex hourglass-delay - On graphical display, Emacs can optionally display the mouse pointer -in a special shape to say that Emacs is busy. To turn this feature on -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}. - -@vindex overline-margin - On graphical display, this variables specifies the vertical position -of an overline above the text, including the height of the overline -itself (1 pixel). The default value is 2 pixels. - -@vindex x-underline-at-descent-line - On graphical display, Emacs normally draws an underline at the -baseline level of the font. If @code{x-underline-at-descent-line} is -non-@code{nil}, Emacs draws the underline at the same height as the -font's descent line. - -@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. - -@vindex no-redraw-on-reenter - On a text-only terminal, when you reenter Emacs after suspending, Emacs -normally clears the screen and redraws the entire display. On some -terminals with more than one page of memory, it is possible to arrange -the termcap entry so that the @samp{ti} and @samp{te} strings (output -to the terminal when Emacs is entered and exited, respectively) switch -between pages of memory so as to use one page for Emacs and another -page for other output. On such terminals, you might want to set the variable -@code{no-redraw-on-reenter} non-@code{nil}; this tells Emacs to -assume, when resumed, that the screen page it is using still contains -what Emacs last wrote there. - -@ignore - arch-tag: 2219f910-2ff0-4521-b059-1bd231a536c4 -@end ignore