The text you are editing in Emacs resides in an object called a
buffer. Each time you visit a file, a buffer is created to hold the
file's text. Each time you invoke Dired, a buffer is created to hold the
directory listing. If you send a message with C-x m, a buffer named
`*mail*
' is used to hold the text of the message. When you ask for a
command's documentation, that appears in a buffer called `*Help*
'.
At any time, one and only one buffer is selected. It is also called the current buffer. Often we say that a command operates on ``the buffer'' as if there were only one; but really this means that the command operates on the selected buffer (most commands do).
When Emacs has multiple windows, each window has a chosen buffer which is displayed there, but at any time only one of the windows is selected and its chosen buffer is the selected buffer. Each window's mode line displays the name of the buffer that the window is displaying (see Windows).
Each buffer has a name, which can be of any length, and you can select
any buffer by giving its name. Most buffers are made by visiting files,
and their names are derived from the files' names. But you can also create
an empty buffer with any name you want. A newly started Emacs has a buffer
named `*scratch*
' which can be used for evaluating Lisp expressions in
Emacs. The distinction between upper and lower case matters in buffer
names.
Each buffer records individually what file it is visiting, whether it is modified, and what major mode and minor modes are in effect in it (see Major Modes). Any Emacs variable can be made local to a particular buffer, meaning its value in that buffer can be different from the value in other buffers. See Locals.
Files Top Windows