This section describes variables that control miscellaneous aspects of the appearance of the Emacs screen. Beginning users can skip it.
If you want to have Emacs display line numbers for every line in the
buffer, customize the buffer-local variable
display-line-numbers; it is
nil by default. This
variable can have several different values to support various modes of
Display (an absolute) line number before each non-continuation screen line that displays buffer text. If the line is a continuation line, or if the entire screen line displays a display or an overlay string, that line will not be numbered.
Display relative line numbers before non-continuation lines which show buffer text. The line numbers are relative to the line showing point, so the numbers grow both up and down as lines become farther from the current line.
This value causes Emacs to count lines visually: only lines actually
shown on the display will be counted (disregarding any lines in
invisible parts of text), and lines which wrap to consume more than
one screen line will be numbered that many times. The displayed
numbers are relative, as with
relative value above. This is
handy in modes that fold text, such as Outline mode (see Outline Mode), and when you need to move by exact number of screen lines.
Any other non-
nil value is treated as
The command M-x display-line-numbers-mode provides a
convenient way to turn on display of line numbers. This mode has a globalized
global-display-line-numbers-mode. The user option
display-line-numbers-type controls which sub-mode of
line-number display, described above, these modes will activate.
Note that line numbers are not displayed in the minibuffer and in the
tooltips, even if you turn on
When Emacs displays relative line numbers, you can control the number
displayed before the current line, the line showing point. By
default, Emacs displays the absolute number of the current line there,
even though all the other line numbers are relative. If you customize
display-line-numbers-current-absolute to a
nil value, the number displayed for the current line will be
zero. This is handy if you don’t care about the number of the current
line, and want to leave more horizontal space for text in large
In a narrowed buffer (see Narrowing) lines are normally numbered
starting at the beginning of the narrowing. However, if you customize
display-line-numbers-widen to a non-
value, line numbers will disregard any narrowing and will start at the
first character of the buffer.
If the value of
display-line-numbers-offset is non-zero, it is
added to each absolute line number, and lines are counted from the
beginning of the buffer, as if
nil. It has no effect when set to zero, or when line
numbers are not absolute.
In selective display mode (see Selective Display), and other modes
that hide many lines from display (such as Outline and Org modes), you
may wish to customize the variables
display-line-numbers-grow-only, or set
display-line-numbers-width to a large enough value, to avoid
occasional miscalculations of space reserved for the line numbers.
The line numbers are displayed in a special face
The current line number is displayed in a different face,
line-number-current-line, so you can make the current line’s
number have a distinct appearance, which will help locating the line
showing point. Additional faces
line-number-minor-tick can be used to highlight the line numbers
of lines which are a multiple of certain numbers. Customize
display-line-numbers-minor-tick respectively to set those
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.
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 something to echo. See The Echo Area.
On graphical displays, Emacs displays the mouse pointer as an
hourglass if Emacs is busy. To disable this feature, set the variable
nil. The variable
hourglass-delay determines the number of seconds of busy
time before the hourglass is shown; the default is 1.
If the mouse pointer lies inside an Emacs frame, Emacs makes it
invisible each time you type a character to insert text, to prevent it
from obscuring the text. (To be precise, the hiding occurs when you
type a self-inserting character. See Inserting Text.) Moving
the mouse pointer makes it visible again. To disable this feature,
set the variable
On graphical displays, the variable
determines the minimum distance between the baseline and underline, in
pixels, for underlined text. By default, the value is 1; increasing
it may improve the legibility of underlined text for certain fonts.
(However, Emacs will never draw the underline below the current line
area.) The variable
x-underline-at-descent-line determines how
to draw underlined text. The default is
nil, which means to
draw it at the baseline level of the font; if you change it to
t, Emacs draws the underline at the same height as the font’s
descent line. (If non-default line spacing was specified for the
underlined text, see Line Height in The Emacs Lisp
Reference Manual, Emacs draws the underline below the additional
overline-margin specifies the vertical position
of an overline above the text, including the height of the overline
itself, in pixels; the default is 2.
On some text 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-
argument to suppress the effect of bold-face in this case.
Raw bytes are displayed in octal format by default, for example a
byte with a decimal value of 128 is displayed as
change display to the hexadecimal format of
\x80, set the
Care may be needed when interpreting a raw byte when copying
text from a terminal containing an Emacs session, or when a terminal’s
escape-glyph face looks like the default face. For example, by
default Emacs displays the four characters ‘\’, ‘2’,
‘0’, ‘0’ with the same characters it displays a byte with
decimal value 128. The problem can be worse with hex displays, where
the raw byte 128 followed by the character ‘7’ is displayed as
\x807, which Emacs Lisp reads as the single character U+0807
SAMARITAN LETTER IT; this confusion does not occur with the
corresponding octal display
\2007 because octal escapes contain
at most three digits.