Next: , Previous: Kill Buffer, Up: Buffers


13.5 複数バッファの操作

バッファメニュー(buffer-menu)機能は 『バッファに対するdired』に似ています。 このコマンドは、バッファ一覧を収めたEmacsバッファを編集することで、 さまざまなEmacsバッファを操作できます。 バッファの保存、消去(ここではdiredとの一貫性のために削除と呼ぶ)、 表示を行うことができます。

M-x buffer-menu
すべてのEmacsバッファの一覧を収めたバッファを編集し始める。

コマンドbuffer-menuは、 すべてのEmacsバッファの一覧をバッファ‘*Buffer List*’に書き、 そのバッファをバッファメニュー(buffer-menu)モードにして 選択します。 そのバッファは読み出し専用で、本節で述べる特別なコマンドでのみ変更できます。 普通のEmacsカーソル移動コマンドは、‘*Buffer List*’バッファでも使えます。 つぎにあげるコマンドは、現在行に書かれているバッファに作用します。

d
バッファを削除(消去)するように指示し、1行下へ移動する。 この指示は、その行のバッファ名のまえに‘D’を表示する。 指示した削除は、xコマンドを打ったときに実行される。
C-d
dに似ているが、1行下へ移動するかわりに上へ移動する。
s
バッファを保存するように指示する。 この指示により、行には‘S’が表示される。 指示した保存は、xコマンドを打ったときに実行される。 同じバッファに対して、保存と削除の両方を指示できる。
x
まえに指示した削除と保存を実行する。
u
現在行に対する指示を消し、1行下へ移動する。
<DEL>
1つまえの行に移動し、その行に対するどんな指示も消す。

dC-dsuコマンドは、 フラグを追加または削除して、1行下へ(あるいは上へ)移動します。 これらのコマンドは、反復回数として数引数を取ります。

つぎにあげるコマンドは、現在行に書かれているバッファにただちに作用します。

~
バッファに『変更なし』と印を付ける。 コマンド~を打つと、ただちに実行する。
%
バッファの読み出し専用フラグをトグルする。 コマンド%を打つと、ただちに実行する。
t
タグテーブルとしてバッファを訪問する。 see Select Tags Table

他のバッファや複数のバッファを選択するコマンドもあります。

q
バッファメニューをやめる。 このウィンドウには、ここに表示していたもっとも最近のバッファを表示する。
<RET>
f
*Buffer List*’のかわりに、この行のバッファをただちに選択する。
o
C-x 4 bのように、別のウィンドウでこの行のバッファをただちに選択する。 ‘*Buffer List*’はそのまま。
C-o
別のウィンドウにこの行のバッファをただちに表示するが、 そのウィンドウを選択しない。
1
この行のバッファを画面一杯のウィンドウにただちに選択する。
2
ただちに2つのウィンドウにして、 この行のバッファをその1つに、 (‘*Buffer List*’バッファを除いて)まえに選択していたバッファを もう1つに表示する。
b
この行のバッファを一覧の最後に移す。
m
vコマンドでバッファメニューをやめたときに、 この行のバッファを別のウィンドウに表示するように印を付ける。 この指示は、行頭に‘>’ を表示する。 (1つのバッファに、削除指示と表示指示の両方を付けることはできない。)
v
ただちにこの行のバッファを選択し、 別のウィンドウ群にはmコマンドで印を付けたバッファ群を表示する。 印を付けたバッファがなければ、このコマンドは1コマンドと同じ。

buffer-menuが直接行うことは、 適切なバッファを作成してそれに切り替えてから、 バッファメニュー(buffer-menu)モードにすることです。 それ以外の上に述べたことはすべて、 バッファメニュー(buffer-menu)モードが用意した特別なコマンドで 実装されています。 その結果、‘*Buffer List*’バッファから別のEmacsバッファへ切り替えて、 そこで編集できます。 あとで‘*Buffer List*’バッファをふたたび選択してすでに指示した操作を実行したり、 このバッファを削除したり、無視したりもできます。

buffer-menulist-buffersの唯一の違いは、 buffer-menuは選択されたウィンドウで ‘*Buffer List*’バッファに切り替えることです。 list-buffersは別のウィンドウにこのバッファを表示するだけです。 list-buffersを実行し(つまり、C-x C-bと打つ)、 ‘*Buffer List*’バッファを手動で選択すると、 ここに述べたすべてのコマンドを使えます。

バッファを作成したり削除したりしても、 バッファ‘*Buffer List*’は自動的に更新されません。 その内容はただのテキストにすぎません。 バッファを作成/削除/改名したら、 現在のバッファの状態を見るために‘*Buffer List*’を更新する方法は、 grevert-buffer)を打つか、 buffer-menuコマンドを再度実行することです。