Next: , Previous: , Up: The Emacs Editor   [Contents][Index]


11 マークとリージョン

Emacsコマンドの多くはカレントバッファーの連続する任意の範囲を操作します。そのようなコマンドにたいして操作するテキストを指定するためには一方の端にマーク(the mark)をセットして、もう一方の端にポイントを移動させます。このポイントとマークの間にあるテキストはリージョン(the region)と呼ばれています。このリージョンはポイントとマークのどちらがテキスト上で前方にあったとしても、ポイントを移動させるたびにリージョンは変更されます。

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

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

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

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

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

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