しばらくの間、Emacsセッションを続けていると、多くのバッファーが溜まってしまう場合があります。必要のないバッファーをkillしたほうがよいと思うかもしれません(他のエディターではこの操作をclose(閉じる)と呼び、“バッファーを閉じる”とか、ファイルをvisitしているバッファーでは“ファイルを閉じる”のように表現するものもあります)。ほとんどのオペレーティングシステムでは、バッファーをkillすることにより、バッファーのためにEmacsが使用していたメモリーをオペレーティングシステムに解放するので、他のプログラムがそれを使えるようになります。以下はバッファーをkillするコマンドです:
バッファーbufferをkillします(kill-buffer
)。
バッファーを1つずつkillするか尋ねます。
正規表現にマッチするすべてのバッファーをkillするか尋ねます。
kill-matching-buffers
と同様ですが、同意を求めません。
C-x k
(kill-buffer
)は、ミニバッファーで指定した名前のバッファーを1つkillします。RETだけをタイプしたときはデフォルトが使われ、これはカレントバッファーをkillします。カレントバッファーをkillすると、最近カレントだったが、今は別のウィンドウにも表示されていないバッファーがカレントになります。ファイルをvisitしているバッファーが変更されているとき、それをkillしようとすると確認を求められます。そのバッファーをkillする前に、確認にyesを応えなければkillできません。
コマンドM-x
kill-some-buffersは、各バッファーについて1つずつ確認を求めます。yesと応えると、kill-buffer
と同様にバッファーをkillすることを意味します。このコマンドは名前がスペースで始まる、Emacsが内部的に使用するバッファーは無視します。
コマンドM-x
kill-matching-buffersは、正規表現の入力を求め、名前がその正規表現にマッチするすべてのバッファーをkillします。正規表現の構文を参照してください。kill-some-buffers
と同様、このコマンドはkillする前に確認を求めます。このコマンドは通常、名前がスペースで始まる、Emacsが内部的に使うバッファーを無視します。内部的なバッファーも同じようにkillするには、プレフィクス引数を指定してkill-matching-buffers
を呼び出します。コマンドM-x kill-matching-buffers-no-askはkill-matching-buffers
と同じように機能しますが、マッチしたバッファーそれぞれにたいしてkill
する前に同意を求めない点が異なります。
さまざまなバッファーをkillするにはBuffer Menu機能も便利です。複数バッファーにたいする操作を参照してください。
バッファーがkillされるときに特別な処理を行いたい場合、フックkill-buffer-hook
にフック関数を追加できます(フックを参照してください)。
(多くの人がそうしているように)何日間も1つのEmacsセッションを使っていると、何日か前に使ったバッファーが溜まってくるかもしれません。コマンドM-x
clean-buffer-listは、それらを一掃するのに便利です。これは長い間使用されていない、変更されていないバッファーをすべてkillします。3日間表示されていない普通のバッファーはkillされます。しかし自動的にkillされるべきではない特定のバッファーを指定したり、使われていない時間が短いバッファーでもkillするように指定できます。これらのデフォルト、およびこのコマンドの挙動の他の動向は、clean-buffer-list
のドキュメント文字列で説明されている、いくつかのオプションをカスタマイズすることにより制御できます。
Midnightモードを有効にすることにより、1日ごとにバッファーを一掃することもできます。Midnightモードは毎日真夜中にclean-buffer-list
、またはノーマルフックmidnight-hook
に指定された関数を実行します(フックを参照してください)。Midnightモードを有効にするには、Customizationバッファーを使って変数midnight-mode
をt
にセットします。Easy Customizationインターフェースを参照してください。