14.18 Optional Mode Line Features
The buffer percentage pos indicates the percentage of the
buffer above the top of the window. You can additionally display the
size of the buffer by typing M-x size-indication-mode
to turn on
Size Indication mode. The size will be displayed immediately
following the buffer percentage like this:
pos of size
Here size is the human readable representation of the number of
characters in the buffer, which means that ‘ k
’ for 10^3, ‘ M
’
for 10^6, ‘ G
’ for 10^9, etc., are used to abbreviate.
The current line number of point appears in the mode line when Line
Number mode is enabled. Use the command M-x line-number-mode
to
turn this mode on and off; normally it is on. The line number appears
after the buffer percentage pos, with the letter ‘ L
’ to
indicate what it is.
Similarly, you can display the current column number by turning on
Column Number mode with M-x column-number-mode
. The column
number is indicated by the letter ‘ 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 ‘ L
’ and
‘ C
’. For example: ‘ (561,2)
’. See Minor Modes, for more
information about minor modes and about how to use these commands.
In Column Number mode, the displayed column number counts from zero
starting at the left margin of the window. If you would prefer for
the displayed column number to count from one, you may set
column-number-indicator-zero-based
to nil
.
If you have narrowed the buffer (see Narrowing), the displayed
line number is relative to the accessible portion of the buffer.
Thus, it isn’t suitable as an argument to goto-line
. (The
command what-line
shows the line number relative to the whole
file.) You can use goto-line-relative
command to move point to
the line relative to the accessible portion of the narrowed buffer.
If the buffer is very large (larger than the value of
line-number-display-limit
), Emacs won’t compute the line
number, because that would be too slow; therefore, the line number
won’t appear on the mode-line. To remove this limit, set
line-number-display-limit
to nil
.
Line-number computation can also be slow if the lines in the buffer
are too long. For this reason, Emacs doesn’t display line numbers if
the average width, in characters, of lines near point is larger than
the value of line-number-display-limit-width
. The default
value is 200 characters.
Emacs can optionally display the time and system load in all mode
lines. To enable this feature, type M-x display-time
or customize
the option display-time-mode
. The information added to the mode
line looks like this:
hh:mmPM l.ll
Here hh and mm are the hour and minute, followed always by
‘ AM
’ or ‘ PM
’. l.ll is the average number, collected
for the last few minutes, of processes in the whole system that were
either running or ready to run (i.e., were waiting for an available
processor). (Some fields may be missing if your operating system
cannot support them.) If you prefer time display in 24-hour format,
set the variable display-time-24hr-format
to t
.
The word ‘ Mail
’ appears after the load level if there is mail
for you that you have not read yet. On graphical displays, you can
use an icon instead of ‘ Mail
’ by customizing
display-time-use-mail-icon
; this may save some space on the
mode line. You can customize display-time-mail-face
to make
the mail indicator prominent. Use display-time-mail-file
to
specify the mail file to check, or set
display-time-mail-directory
to specify the directory to check
for incoming mail (any nonempty regular file in the directory is
considered to be newly arrived mail).
When running Emacs on a laptop computer, you can display the battery
charge on the mode-line, by using the command
display-battery-mode
or customizing the variable
display-battery-mode
. The variable
battery-mode-line-format
determines the way the battery charge
is displayed; the exact mode-line message depends on the operating
system, and it usually shows the current battery charge as a
percentage of the total charge.
On graphical displays, the mode line is drawn as a 3D box. If you
don’t like this effect, you can disable it by customizing the
mode-line
face and setting its box
attribute to
nil
. See Customizing Faces.
By default, the mode line of nonselected windows is displayed in a
different face, called mode-line-inactive
. Only the selected
window is displayed in the 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 mode-line
; as a result,
ordinary entry to the minibuffer does not change any mode lines.
You can disable use of mode-line-inactive
by setting variable
mode-line-in-non-selected-windows
to nil
; then all mode
lines are displayed in the mode-line
face.
You can customize the mode line display for each of the end-of-line
formats by setting each of the variables eol-mnemonic-unix
,
eol-mnemonic-dos
, eol-mnemonic-mac
, and
eol-mnemonic-undecided
to the strings you prefer.