Emacs Terminology
Buffer
When you use [C-x C-f] to invoke command find-file, Emacs opens the file you request, and puts its contents into a buffer with the same name as the file. Instead of thinking that you are editing a file, think that you are editing text in a buffer. When you save the buffer, the file is updated to reflect your edits.
Buffers can also contain text that doesn't come from a file. When you use [C-x C-b] to get a list of buffers, that list is itself in a buffer, called *Buffer List*, and that buffer is not associated with any file.
By convention, buffers whose names start with an asterisk (`*') are not associated with files (but that doesn't mean you can't save them in files). If they have unsaved changes when you exit Emacs, these buffers are killed without your being asking for confirmation.
Buffers whose names start with a space are invisible to many operations. These are generally internal buffers that you don't want to see. Their names normally don't appear in the buffer list or as completion candidates when you switch buffers using [C-x b].
Buffers are shown in windows. You can have more than one window showing the same buffer. [C-x 2] splits the current window, creating two windows, both showing the same buffer.
You can find more info on buffers in the Emacs manual:
Window
In Emacs terminology, a "window" is a container in which a buffer is displayed.
When starting an Emacs frame, there is ordinarily only one window in it, which can be split into multiple windows using [C-x 2] or [C-x 3]. This allows viewing different buffers (or multiple times the same buffer) at once.
You can read more about windows in the Emacs manual:
Frame
In Emacs terminology, a "frame" is what most window managers (Windows, OSX, GNOME, KDE, etc.) would call a "window".
It will typically have a title bar and some buttons to iconify (minimize), maximize / restore, and close the frame. To
see an example, open up a second frame from your running Emacs instance with [C-x 5 2]
(make-frame-command
). You can close frames with [C-x 5 0] (delete-frame
), though this
will not close the last frame that is open.
You can read more about frames in the Emacs manual:
Point
The active cursor shows the location at which editing commands will take effect, which is called "point". Many Emacs commands move point to different places in the buffer; for example, you can place point by clicking mouse button 1 (normally the left button) at the desired location.
If you use a block cursor, the cursor appears to be on a character, but you should think of point as between two characters; it points before the character that appears under the cursor. For example, if your text looks like `frob' with the cursor over the `b', then point is between the `o' and the `b'. If you insert the character `!' at that position, the result is `fro!b', with point between the `!' and the `b'. Thus, the cursor remains over the `b', as before.
Sometimes people speak of "the cursor" when they mean "point," or speak of commands that move point as "cursor motion" commands.
You can read more about the point in the Emacs manual:
- Point (`(info "(emacs) Point")')
Killing and yanking
Region
Faces
Emacs can display text in several different styles, which are called faces. Each face can specify various face attributes, such as the font, height, weight and slant, 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 a text-only terminal, not all face attributes are meaningful. Some text-only terminals support inverse video, bold, and underline attributes; some support colors. Text-only terminals generally do not support changing the height, width or font.
Most major modes assign faces to the text automatically through the work of Font Lock mode. See Font Lock, for more information about Font Lock mode and syntactic highlighting. You can print the current buffer with the highlighting that appears on your screen using the command ps-print-buffer-with-faces.
You can read more about faces in the Emacs manual:
- Faces (`(info "(emacs) Faces")')
Fill
Case-fold
(compared with case sensitivity)
Narrow and widen
(compared with collapse and expand)