Next: , Previous: , Up: Buffers   [Contents][Index]


19.4 バッファーのkill

しばらくの間、Emacsセッションを続けていると、多くのバッファーが溜まってしまう場合があります。必要のないバッファーをkillしたほうがよいと思うかもしれません(他のエディターではこの操作をclose(閉じる)と呼び、“バッファーを閉じる”とか、ファイルをvisitしているバッファーでは“ファイルを閉じる”のように表現するものもあります)。ほとんどのオペレーティングシステムでは、バッファーをkillすることにより、バッファーのためにEmacsが使用していたメモリーをオペレーティングシステムに解放するので、他のプログラムがそれを使えるようになります。以下はバッファーをkillするコマンドです:

C-x k buffer RET

バッファーbufferをkillします(kill-buffer)。

M-x kill-some-buffers

バッファーを1つずつkillするか尋ねます。

M-x kill-matching-buffers

正規表現にマッチするすべてのバッファーをkillするか尋ねます。

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します。Regexpsを参照してください。kill-some-buffersと同様、このコマンドはkillする前に確認を求めます。このコマンドは通常、名前がスペースで始まる、Emacsが内部的に使うバッファーを無視します。内部的なバッファーも同じようにkillするには、プレフィクス引数を指定してkill-matching-buffersを呼び出します。

さまざまなバッファーをkillするにはBuffer Menu機能も便利です。Several Buffersを参照してください。

バッファーがkillされるときに特別な処理を行いたい場合、フックkill-buffer-hookにフック関数を追加できます(Hooksを参照してください)。

(多くの人がそうしているように)何日間も1つのEmacsセッションを使っていると、何日か前に使ったバッファーが溜まってくるかもしれません。コマンドM-x clean-buffer-listは、それらを一掃するのに便利です。これは長い間使用されていない、変更されていないバッファーをすべてkillします。3日間表示されていない普通のバッファーはkillされます。しかし自動的にkillされるべきではない特定のバッファーを指定したり、使われていない時間が短いバッファーでもkillするように指定できます。これらのデフォルト、およびこのコマンドの挙動の他の動向は、clean-buffer-listのドキュメント文字列で説明されている、いくつかのオプションをカスタマイズすることにより制御できます。

Midnightモードを有効にすることにより、1日ごとにバッファーを一掃することもできます。Midnightモードは毎日真夜中にclean-buffer-list、またはノーマルフックmidnight-hookに指定された関数を実行します(Hooksを参照してください)。Midnightモードを有効にするには、Customizationバッファーを使って変数midnight-modetにセットします。Easy Customizationを参照してください。