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


11 マークとリージョン

Emacsのコマンドには、現在のバッファー内の、任意の連続する領域(region)を操作するものがたくさんあります。そのようなコマンドが操作するテキストを指定するには、領域の一方の端にマーク(mark)をセットし、もう一方の端にポイントを移動します。ポイントとマークの間のテキストを、リージョン(region)と呼びます。リージョンは常にポイントとマークの間で拡張され、それは一方がテキストの先頭にある場合も変わりません。ポイントを移動すれば、常にリージョンは変化します。

テキストのある位置にマークをセットすると、マークはアクティブ(active)になります。マークがアクティブのときは、リージョンもアクティブになります。Emacsはアクティブなリージョンの中にあるテキストを、フェイスregionでハイライト表示します(Face Customizationを参照してください)。

これはテキスト、および行末よウィンドウボーダーの間のスペースのハイライトに同一フェイスを暗黙に使用する:extend t属性をもつ数少ないフェイスの1つです。テキストだけをハイライトするために、この属性にnilをセットすることもできます。

バッファーのテキストを変更するコマンドを含む、特定の非移動系コマンド(non-motion commands)の後で、Emacsは自動的にマークを非アクティブ(deactivates)にし、これによりハイライトも解除されます。C-gをタイプすれば、いつでも明示的に非アクティブにすることができます(Quittingを参照してください)。

上記のデフォルト動作は、Transient Markモード(暫定マークモード)という名で知られています。Transient Markモードを無効にすると、Emacsは通常ではリージョンをハイライトしなくなります。Disabled Transient Markを参照してください。

あるバッファーでマークをセットしても、他のバッファーのマークは影響を受けません。アクティブなマークがあるバッファーに戻ったとき、マークは以前と同じ場所にあります。複数のウィンドウで同じバッファーを表示しているとき、これらのウィンドウはそれぞれのポイント位置をもっているので、リージョンも異なります。しかしこれらのウィンドウでは、マークの位置は共通です。Windowsを参照してください。通常、選択されたウィンドウのリージョンだけがハイライトされます。しかし変数highlight-nonselected-windowsが非nilの場合、各ウィンドウのリージョンがハイライトされます。

rectangular region(矩形リージョン)という、違う種類のリージョンもあります。Rectanglesを参照してください。