Emacs/ファイル, バッファの操作/マルチバッファとマルチウィンドウ

複数のEmacsを起動しなくても,ウィンドウを分割することでそれぞれのウィンドウに別々のバッファを表示できます.このように,複数のバッファを一度に表示するためにウィンドウを分割する機能を``マルチウィンドウ''といいます.また,1つのウィンドウ内で複数のバッファに対して編集できます.このように自由にバッファを切り替える機能をマルチバッファと呼びます.

2.3.1 マルチバッファ

マルチバッファを利用することで,カーソルをウィンドウ間で移動しながら1つのEmacsで複数のファイルの編集作業を行えるため,効率のよい編集作業ができます.また,編集作業を一時中断して他の作業を行った上で(例えば電子メールを読む),再び中断していた作業に戻れます.表2.2にバッファ操作に関連したキー操作を示します.


表 2.2: バッファ操作
キー操作 意味 参照ページ
C-x C-b 現在あるバッファのリストの表示 2.3.1
C-x b バッファの切り替え 2.3.1
C-x k バッファの消去 2.3.1



バッファリスト -- (C-x C-b)

Emacsのバッファの情報を表示するには,C-x C-b を入力します.ウィンドウが分割され,バッファのリストが表示されます.

例として,`file1'をバッファに読み込んで編集した後, C-x C-fによって`file2'をバッファに読み込んで編集します.この場合C-x C-bを入力すると,バッファのリストは次のように表示されます.なお,`*scratch*'と`*Messages*'はEmacs起動時に自動的に作成されるバッファであり,`*Buffer List*'はこのバッファのリストを指しています.

 MR Buffer         Size  Mode           File
 -- ------         ----  ----           ----
 *% *Buffer List*  726   Buffer Menu
    *scratch*        0   Lisp Interaction
 *  *Messages*	    1004  Fundamental	
 *  file1          123   Fundamental    /home/t01000tf/file1
.   file2          456   Fundamental    /home/t01000tf/file2

それぞれのフィールドは次のような意味があります.

MR : Modified/Read Onlyの情報 Buffer : バッファ名
* --  バッファの内容が変更後保存されていない Size : バッファサイズ(単位 : バイト)
% --  バッファの内容は変更できない Mode : モード
. --  現在ウィンドウに表示されているバッファ File : ファイルパス( C-x C-s)で保存

      するファイル

この例では,`file1'はバッファに読み込まれた後に編集が行われたが,まだ保存はされていないことや,現在ウィンドウに表示されているのは`file2'であることがわかります.

バッファの切り替え -- (C-x b)

バッファにファイルを読み込んだ後,別のファイルをバッファに読み込んだ場合,新しく作成されたバッファが表示され,最初作成されたバッファはその背後に隠れてウィンドウに表示されなくなります.

表示するバッファを変えるときはC-x bと入力します.すると,エコーエリアに次のようなメッセージが表示され,カーソルがエコーエリアに移動します.

Switch to buffer: (default *scratch*) _
ここで表示したいバッファ名を入力し,<RET> を押すと表示されるバッファが切り替わります.何も入力せずに<RET> を押すと,`default'に表示されているバッファ(この例では`*scratch*')に切り替わります.また,<TAB> を押すことで,表示可能なバッファの一覧を表示できます.


バッファの消去 -- (C-x k)

必要の無いバッファは,C-x kによって消去できます.バッファ消去の動作はバッファの切り替えと同じく,C-x k と入力すると,エコーエリアに次のようなメッセージが表示され,カーソルがエコーエリアに移動します.

Kill buffer: (default *scratch*) _
消去したいバッファ名を入力し,<RET> を押すことによって,バッファを消去できます.この場合も,何も入力せずに<RET> を押すと`default'に表示されているバッファ(この例では*scratch*)が消去されます.消去しようとしたバッファが編集作業後ファイルに保存されていない場合は,削除してよいか確認されます.

2.3.2 マルチウィンドウ


ウィンドウの分割 -- (C-x 2,C-x 3)

EmacsのウィンドウはC-x 2によって上下2つに,C-x3によって左右2つに分割でき,C-x 5 2によって別ウィンドウを作成できます.それぞれのウィンドウには異なるバッファを表示できます(図2.4,図2.5).

編集操作は,カーソルのあるウィンドウに対して行います.ウィンドウ間でのカーソル移動は,C-x oを入力することによって行います.それぞれのウィンドウで別のバッファを指定することにより,2つのバッファを同時に編集できます.表2.3にウィンドウ操作に関連したキー操作を示します.


表 2.3: ウィンドウ操作
キー操作 意味 参照ページ
C-x 2 ウィンドウを上下の2つに分ける 2.3.2
C-x 3 ウィンドウを左右の2つに分ける 2.3.2
C-x 5 2 新しくウィンドウを開く 2.3.2
C-x o ウィンドウを切り替える 2.3.2



ウィンドウの分割(上下)



ウィンドウの分割(左右)