24.4 Killing Buffers
If you continue an Emacs session for a while, you may accumulate a
large number of buffers. You may then find it convenient to kill
the buffers you no longer need. On most operating systems, killing a
buffer releases its space back to the operating system so that other
programs can use it. Here are some commands for killing buffers:
- C-x k bufname <RET>
- Kill buffer bufname (
kill-buffer
).
- M-x kill-some-buffers
- Offer to kill each buffer, one by one.
C-x k (kill-buffer
) kills one buffer, whose name you
specify in the minibuffer. The default, used if you type just
<RET> in the minibuffer, is to kill the current buffer. If you
kill the current buffer, another buffer becomes current: one that was
current in the recent past but is not displayed in any window now. If
you ask to kill a file-visiting buffer that is modified (has unsaved
editing), then you must confirm with yes before the buffer is
killed.
The command M-x kill-some-buffers asks about each buffer, one by
one. An answer of y means to kill the buffer. Killing the current
buffer or a buffer containing unsaved changes selects a new buffer or asks
for confirmation just like kill-buffer
.
The buffer menu feature (see Several Buffers) is also convenient
for killing various buffers.
If you want to do something special every time a buffer is killed, you
can add hook functions to the hook kill-buffer-hook
(see Hooks).
If you run one Emacs session for a period of days, as many people do,
it can fill up with buffers that you used several days ago. The command
M-x clean-buffer-list is a convenient way to purge them; it kills
all the unmodified buffers that you have not used for a long time. An
ordinary buffer is killed if it has not been displayed for three days;
however, you can specify certain buffers that should never be killed
automatically, and others that should be killed if they have been unused
for a mere hour.
You can also have this buffer purging done for you, every day at
midnight, by enabling Midnight mode. Midnight mode operates each day at
midnight; at that time, it runs clean-buffer-list
, or whichever
functions you have placed in the normal hook midnight-hook
(see Hooks).
To enable Midnight mode, use the Customization buffer to set the
variable midnight-mode
to t
. See Easy Customization.