[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
1.3 The Mode Line
Each text window's last line is a mode line, which describes what is going on in that window. The mode line starts and ends with dashes. When there is only one text window, the mode line appears right above the echo area; it is the next-to-last line in the frame. On a text-only terminal, the mode line is in inverse video if the terminal supports that; on a graphics display, the mode line has a 3D box appearance to help it stand out. The mode line of the selected window is highlighted if possible; see Optional Mode Line Features, for more information.
Normally, the mode line looks like this:
-cs:ch-fr buf pos line (major minor)------ |
This gives information about the window and the buffer it displays: the buffer's name, what major and minor modes are in use, whether the buffer's text has been changed, and how far down the buffer you are currently looking.
ch contains two stars ‘**’ if the text in the buffer has been edited (the buffer is “modified”), or ‘--’ if the buffer has not been edited. For a read-only buffer, it is ‘%*’ if the buffer is modified, and ‘%%’ otherwise.
fr gives the selected frame name (see section Frames and Graphical Displays). It appears only on text-only terminals. The initial frame's name is ‘F1’.
buf is the name of the window's buffer. Usually this is the same as the name of a file you are editing. See section Using Multiple Buffers.
The buffer displayed in the selected window (the window with the cursor) is the current buffer, where editing happens. When a command's effect applies to “the buffer,” we mean it does those things to the current buffer.
pos tells you whether there is additional text above the top of the window, or below the bottom. If your buffer is small and it is all visible in the window, pos is ‘All’. Otherwise, it is ‘Top’ if you are looking at the beginning of the buffer, ‘Bot’ if you are looking at the end of the buffer, or ‘nn%’, where nn is the percentage of the buffer above the top of the window. With Size Indication mode, you can display the size of the buffer as well. See section Optional Mode Line Features.
line is ‘L’ followed by the current line number of point. This is present when Line Number mode is enabled (it normally is). You can display the current column number too, by turning on Column Number mode. It is not enabled by default because it is somewhat slower. See section Optional Mode Line Features.
major is the name of the major mode in effect in the buffer. A buffer can only be in one major mode at a time. The major modes available include Fundamental mode (the least specialized), Text mode, Lisp mode, C mode, Texinfo mode, and many others. See section Major Modes, for details of how the modes differ and how to select them.
Some major modes display additional information after the major mode name. For example, Rmail buffers display the current message number and the total number of messages. Compilation buffers and Shell buffers display the status of the subprocess.
minor is a list of some of the minor modes that are turned on at the moment in the window's chosen buffer. For example, ‘Fill’ means that Auto Fill mode is on. ‘Abbrev’ means that Word Abbrev mode is on. ‘Ovwrt’ means that Overwrite mode is on. See section Minor Modes, for more information.
‘Narrow’ means that the buffer being displayed has editing restricted to only a portion of its text. (This is not really a minor mode, but is like one.) See section Narrowing. ‘Def’ means that a keyboard macro is being defined. See section Keyboard Macros.
In addition, if Emacs is inside a recursive editing level, square brackets (‘[…]’) appear around the parentheses that surround the modes. If Emacs is in one recursive editing level within another, double square brackets appear, and so on. Since recursive editing levels affect Emacs globally, not just one buffer, the square brackets appear in every window's mode line or not in any of them. See section Recursive Editing Levels.
cs states the coding system used for the file you are editing. A dash indicates the default state of affairs: no code conversion, except for end-of-line translation if the file contents call for that. ‘=’ means no conversion whatsoever. Nontrivial code conversions are represented by various letters—for example, ‘1’ refers to ISO Latin-1. See section Coding Systems, for more information.
On a text-only terminal, cs includes two additional characters which describe the coding system for keyboard input and the coding system for terminal output. They come right before the coding system used for the file you are editing.
If you are using an input method, a string of the form ‘i>’ is added to the beginning of cs; i identifies the input method. (Some input methods show ‘+’ or ‘@’ instead of ‘>’.) See section Input Methods.
When multibyte characters are not enabled, cs does not appear at all. See section Enabling Multibyte Characters.
The colon after cs changes to another string in some cases. Emacs uses newline characters to separate lines in the buffer. Some files use different conventions for separating lines: either carriage-return linefeed (the MS-DOS convention) or just carriage-return (the Macintosh convention). If the buffer's file uses carriage-return linefeed, the colon changes to either a backslash (‘\’) or ‘(DOS)’, depending on the operating system. If the file uses just carriage-return, the colon indicator changes to either a forward slash (‘/’) or ‘(Mac)’. On some systems, Emacs displays ‘(Unix)’ instead of the colon for files that use newline as the line separator.
See section Optional Mode Line Features, to add other handy information to the mode line, such as the size of the buffer, the current column number of point, and whether new mail for you has arrived.
The mode line is mouse-sensitive; when you move the mouse across various parts of it, Emacs displays help text to say what a click in that place will do. See section Mode Line Mouse Commands.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |