19.15 Customization of Display
This section contains information for customization only. Beginning
users should skip it.
If the variable inverse-video
is non-nil
, Emacs attempts
to invert all the lines of the display from what they normally are.
If the variable visible-bell
is non-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.
On a text 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 ‘ti’ and ‘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. Then you might want to set the variable
no-redraw-on-reenter
non-nil
; this tells Emacs to
assume, when resumed, that the screen page it is using still contains
what Emacs last wrote there.
The variable 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. See Echo Area.
If the variable ctl-arrow
is nil
, all control characters in
the buffer are displayed with octal escape sequences, except for newline
and tab. Altering the value of ctl-arrow
makes it local to the
current buffer; until that time, the default value is in effect. The
default is initially t
. See Display Tables.
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 tab-width
, which is made local by
changing it, just like ctl-arrow
. Note that how the tab character
in the buffer is displayed has nothing to do with the definition of
<TAB> as a command. The variable tab-width
must have an
integer value between 1 and 1000, inclusive. The variable
default-tab-width
controls the default value of this variable
for buffers where you have not set it locally.
As an alternative to continuation, Emacs can display long lines by
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 terminals, a small straight arrow in the fringe indicates
truncation at either end of the line. On text terminals, ‘$’
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.
Horizontal scrolling automatically causes line truncation
(see Horizontal Scrolling). You can explicitly enable line
truncation for a particular buffer with the command M-x
toggle-truncate-lines. This works by locally changing the variable
truncate-lines
. If that variable is non-nil
, long lines
are truncated; if it is nil
, they are continued onto multiple
screen lines. Setting the variable 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 nil
.
If the variable truncate-partial-width-windows
is
non-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 truncate-lines
. For information about side-by-side
windows, see Split Window. See also Display.
If the variable overflow-newline-into-fringe
is
non-nil
on a window system, it specifies that lines which are
exactly as wide as the window (not counting the final newline
character) shall not be broken into two lines on the display (with
just the newline on the second line). Instead, the newline
overflows into the right fringe, and the cursor will be displayed in
the fringe when positioned on that newline.
On a window system, Emacs may indicate the buffer boundaries in the
fringes. The buffer boundaries, i.e. first and last line in the
buffer, can be marked with angle bitmaps in the left or right fringe.
This can be combined with up and down arrow bitmaps shown at the top
and bottom of the left or right fringe if the window can be scrolled
in either direction.
The buffer-local variable indicate-buffer-boundaries
controls
how the buffer boundaries and window scrolling is indicated in the
fringes.
If the value is left
or right
, both angle and arrow
bitmaps are displayed in the left or right fringe, respectively.
If value is an alist, each element (
indicator .
position)
specifies the position of one of the indicators.
The indicator must be one of top
, bottom
,
up
, down
, or t
which specifies the default
position for the indicators not present in the alist.
The position is one of left
, right
, or nil
which specifies not to show this indicator.
For example, ((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 ((top . left)
(bottom . left))
.
The value of the variable default-indicate-buffer-boundaries
is the default value for indicate-buffer-boundaries
in buffers
that do not override it.
The variable baud-rate
holds the output speed of the
terminal, as far as Emacs knows. Setting this variable does not
change the speed of actual data transmission, but the value is used
for calculations. On terminals, it affects padding, and decisions
about whether to scroll part of the screen or redraw it instead.
It also affects the behavior of incremental search.
On window-systems, baud-rate
is only used to determine how
frequently to look for pending input during display updating. A
higher value of baud-rate
means that check for pending input
will be done less frequently.
You can customize the way any particular character code is displayed
by means of a display table. See Display Tables.
On a window system, 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 cursor
. You can also control the
amount of time Emacs must remain busy before the busy indicator is
displayed, by setting the variable hourglass-delay
.
On some text-only terminals, bold face and inverse video together
result in text that is hard to read. Call the function
tty-suppress-bold-inverse-default-colors
with a non-nil
argument to suppress the effect of bold-face in this case.