Next: Several Buffers, Previous: Misc Buffer, Up: Buffers [Contents][Index]

### 19.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. (Some other editors call this operation close, and talk about “closing the buffer” or “closing the file” visited in the buffer.) 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.

`M-x kill-matching-buffers`

  Offer to kill all buffers matching a regular expression.

`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, 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, just like `kill-buffer`. This command ignores buffers whose names begin with a space, which are used internally by Emacs.

The command `M-x kill-matching-buffers` prompts for a regular expression and kills all buffers whose names match that expression. See Regexps. Like `kill-some-buffers`, it asks for confirmation before each kill. This command normally ignores buffers whose names begin with a space, which are used internally by Emacs. To kill internal buffers as well, call `kill-matching-buffers` with a prefix argument.

The Buffer Menu feature is also convenient for killing various buffers. See Several 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, once a day, 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.

Next: Several Buffers, Previous: Misc Buffer, Up: Buffers [Contents][Index]