複数のEmacsを起動しなくても,ウィンドウを分割することでそれぞれのウィンドウに別々のバッファを表示できる.このように,複数のバッファを一度に表示するためにウィンドウを分割する機能をマルチウィンドウという.また,1つのウィンドウ内で複数のバッファに対して編集を行える.このように自由にバッファを切り替える機能をマルチバッファと呼ぶ.
マルチバッファを利用することで,カーソルをウィンドウ間で移動しながら1つのEmacsで複数のファイルの編集作業を行えるため,効率のよい編集作業が可能となる.また,編集作業を一時中断して他の作業を行った上で(例えば電子メールを読む),再び中断していた作業に戻れる.表2.2にバッファ操作に関連したキー操作を示す.
例として,`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/t00000tf/file1
. file2 456 Fundamental /home/t00000tf/file2
| MR | : | Modified/Read Onlyの情報 |
| * | -- バッファの内容が変更後保存されていない | |
| % | -- バッファの内容は変更できない | |
| . | -- 現在ウィンドウに表示されているバッファ | |
| Buffer | : | バッファ名 |
| Size | : | バッファサイズ(単位 : バイト) |
| Mode | : | モード |
| File | : | ファイルパス( C-x C-sで保存されるファイル) |
この例では,`file1'はバッファに読み込まれた後に編集が行われたが,まだ保存はされていないことや,現在ウィンドウに表示されているのは`file2'であることがわかる.
バッファにファイルを読み込んだ後,別のファイルをバッファに読み込んだ場合,新しく作成されたバッファが表示され,最初作成されたバッファはその背後に隠れてウィンドウに表示されなくなる.
表示するバッファを変えるときはC-x bと入力する.すると,エコーエリアに次のようなメッセージが表示され,カーソルがエコーエリアに移動する.
Switch to buffer: (default *scratch*) _
必要の無いバッファは,C-x kによって消去できる.バッファ消去の動作はバッファの切り替えと同じく,C-x k と入力すると,エコーエリアに次のようなメッセージが表示され,カーソルがエコーエリアに移動する.
Kill buffer: (default *scratch*) _
|
|
|
|