Emacsでは,バッファの中に``マーク''を指定できます. マークした位置からカーソルの間にはさまれた部分を``リージョン''といい, この範囲に対して編集を行えます.
リージョンを指定するには,始点にマークをセットし, 終点にカーソルを移動します. マークをセットするには, C-<SPACE>またはC-@を入力します. カーソルの位置にマークがセットされ,エコーエリアに次のように 表示されます.
範囲を指定したい終点までカーソルを移動すると, マークからカーソルの間がリージョンに指定できます.
また,C-kなどでテキストを削除 した場合や,検索や置換などを行ったときは, その作業の開始地点に自動的にマークがセットされます. また,バッファ全体をリージョンに設定するには C-x hを入力します.
C-x C-xによって,マークとカーソルの位置を入れ替え, マークのあった位置にカーソルを移動できます. C-<SPACE>を入力するとマークの位置は更新されますが, Emacsは以前のマークの位置を保存しています. また,C-u C-<SPACE>を連続して入力することにより, 過去のマークの位置へさかのぼって移動できます.
表2.2にマークとリージョンに
関するキー操作を示します.
キー操作 | 意味 |
C-<SPACE>,C-@ | マークの設定 |
C-x h | バッファ全体をリージョンにする |
C-x C-x | マーク位置とカーソル位置の入れ替え |
C-u C-<SPACE> | 過去のマークへの移動 |
Emacsでは,広範囲のテキストを一度に削除し,それを取り出せます.削除された テキストは,``キルバッファ'' というバッファに保存され,新しいものから順番に取り出せます.
C-kを入力するとカーソル上の 文字から行の終りまでを削除できます. C-kを使って削除された範囲は, キルバッファに保存されます.キルバッファの中身は, C-yを入力することによって現在 カーソルのある位置に取り出せます. また,C-kを連続して入力することによって一度に 複数行を削除した場合,削除した行すべてが1つのキルバッファに保存され, C-yで全体を取り出せます.
リージョンを削除するためには,C-wを入力します. 削除されたテキストはC-kを入力したときと同様に キルバッファに保存されます.
M-wを入力すると,リージョン内のテキストを削除せずに,キル バッファに保存します.
テキストを削除したところから別の位置までカーソルを移動して, C-yによって削除したテキストの内容を取り出せば, テキストを別の場所に移動できます. また,C-yを複数回入力することによって削除した テキストを複製できます.
C-kを入力するたびにキルバッファの内容は更新されますが, Emacsは以前のキルバッファの内容を保存しています.C-yに続 けてM-yを入力することにより,以前のキルバッファを取り 出せます. さらにM-yを連続して入力すると過去のキルバッファ の内容をさかのぼって取り出せます.
表2.3にキルバッファに関するキー操作を示します.