The C-x b (
switch-to-buffer) command reads a buffer
name using the minibuffer. Then it makes that buffer current, and
displays it in the currently-selected window. An empty input
specifies the buffer that was current most recently among those not
now displayed in any window.
While entering the buffer name, you can use the usual completion and history commands (see Minibuffer). Note that C-x b, and related commands, use permissive completion with confirmation for minibuffer completion: if you type <RET> when the minibuffer text names a nonexistent buffer, Emacs prints ‘[Confirm]’ and you must type a second <RET> to submit that buffer name. See Completion Exit, for details. For other completion options and features, see Completion Options.
If you specify a buffer that does not exist, C-x b creates a
new, empty buffer that is not visiting any file, and selects it for
editing. The default value of the variable
determines the new buffer's major mode; the default value is
Fundamental mode. See Major Modes. One reason to create a new
buffer is to use it for making temporary notes. If you try to save
it, Emacs asks for the file name to use, and the buffer's major mode
is re-established taking that file name into account (see Choosing Modes).
For conveniently switching between a few buffers, use the commands
C-x <LEFT> and C-x <RIGHT>. C-x <LEFT>
previous-buffer) selects the previous buffer (following the
order of most recent selection in the current frame), while C-x
next-buffer) moves through buffers in the reverse
To select a buffer in a window other than the current one
(see Windows), type C-x 4 b
switch-to-buffer-other-window). This prompts for a buffer
name using the minibuffer, displays that buffer in another window, and
selects that window.
Similarly, C-x 5 b (
prompts for a buffer name, displays that buffer in another frame
(see Frames), and selects that frame. If the buffer is already
being shown in a window on another frame, Emacs selects that window
and frame instead of creating a new frame.
See Displaying Buffers, for how the C-x 4 b and C-x 5 b commands get the window and/or frame to display in.
In addition, C-x C-f, and any other command for visiting a file, can also be used to switch to an existing file-visiting buffer. See Visiting.
C-u M-g M-g, that is
goto-line with a plain prefix
argument, reads a number n using the minibuffer, selects the
most recently selected buffer other than the current buffer in another
window, and then moves point to the beginning of line number n
in that buffer. This is mainly useful in a buffer that refers to line
numbers in another buffer: if point is on or just after a number,
goto-line uses that number as the default for n. Note
that prefix arguments other than just C-u behave differently.
C-u 4 M-g M-g goes to line 4 in the current buffer,
without reading a number from the minibuffer. (Remember that M-g
M-g without prefix argument reads a number n and then moves to
line number n in the current buffer. See Moving Point.)
Emacs uses buffer names that start with a space for internal purposes. It treats these buffers specially in minor ways—for example, by default they do not record undo information. It is best to avoid using such buffer names yourself.