19.3 Miscellaneous Buffer Operations
C-x C-q
Toggle read-only status of buffer ( read-only-mode
).
C-x x r RET buffer RET
Change the name of the current buffer.
C-x x u
Rename the current buffer by adding ‘ <number>
’ to the end.
M-x view-buffer RET buffer RET
Scroll through buffer buffer. See View Mode.
A buffer can be read-only, which means that commands to insert
or delete its text are not allowed. (However, other commands, like
C-x RET f
, can still mark it as modified, see Specifying a Coding System for File Text). The mode line indicates read-only buffers with ‘ %%
’ or
‘ %*
’ near the left margin. See The Mode Line. Read-only buffers
are usually made by subsystems such as Dired and Rmail that have
special commands to operate on the text. Visiting a file whose access
control says you cannot write it also makes the buffer read-only.
The command C-x C-q
( read-only-mode
) makes a read-only
buffer writable, and makes a writable buffer read-only. This works by
setting the variable buffer-read-only
, which has a local value
in each buffer and makes the buffer read-only if its value is
non- nil
. If you change the option view-read-only
to a
non- nil
value, making the buffer read-only with C-x C-q
also enables View mode in the buffer (see View Mode).
C-x x r
( rename-buffer
changes the name of the current
buffer. You specify the new name as a minibuffer argument; there is
no default. If you specify a name that is in use for some other
buffer, an error happens and no renaming is done.
C-x x u
( rename-uniquely
) renames the current buffer to
a similar name with a numeric suffix added to make it both different
and unique. This command does not need an argument. It is useful for
creating multiple shell buffers: if you rename the *shell*
buffer, then do M-x shell
again, it makes a new shell buffer
named *shell*
; meanwhile, the old shell buffer continues to
exist under its new name. This method is also good for mail buffers,
compilation buffers, and most Emacs features that create special
buffers with particular names. (With some of these features, such as
M-x compile
, M-x grep
, you need to switch to some other
buffer before using the command again, otherwise it will reuse the
current buffer despite the name change.)
The commands M-x append-to-buffer
and C-x x i
( insert-buffer
) can also be used to copy text from one buffer
to another. See Accumulating Text.