Next: テキストオブジェクトをマークするコマンド, Up: マークとリージョン [Contents][Index]
マークをセットするためのコマンドがいくつかあります:
ポイント位置にマークをセットしてアクティブにします(set-mark-command
)。
同じです。
ポイント位置にマークをセットしてアクティブにしてから、以前のマークがあった位置にポイントを移動します(exchange-point-and-mark
)。
ドラッグしたテキストの周りにポイントとマークをセットします。
ポイント位置にマークをセットしてから、クリックした場所にポイントを移動します(mouse-save-then-kill
)。
マークが非アクティブなら、ポイント位置にマークをセットしてポイントを移動します。シフト選択を参照してください。
マークをセットするもっとも一般的な方法は、C-SPC
(set-mark-command
)です5。これはポイントがある位置にマークをセットしてから、アクティブにします。その後、マークをそこに残したままポイントを移動できます。
たとえばバッファーの一部を大文字に変換したいとします。これを行うには対象のテキストの一方の端に移動して、C-SPCをタイプし、対象のテキストがハイライトされるまでポイントを移動します。そしてC-x
C-u (upcase-region
)をタイプすると、リージョンのテキストが大文字に変換されて、マークが非アクティブになります。
マークがアクティブなときに非アクティブにしたいときは、C-gをタイプします(中止と中断を参照してください)。リージョンにたいして操作を行うほとんどのコマンドは、上記の例のC-x C-uのように、自動的にマークを非アクティブにします。
リージョンにたいしての操作は行わず、バッファーの位置を覚えておくためにマークをセット(C-SPC C-SPCとタイプ)して、後でそこに戻る(C-u C-SPCとタイプ)こともできます。詳細については、マークリングを参照してください。
コマンドC-x C-x
(exchange-point-and-mark
)は、ポイントとマークの位置を交換します。ポイントの位置に問題はないが、リージョンのもう一方の端にポイントを移動したいときC-x
C-xは便利です。2回目のC-x
C-xで、マークを新しいポイント位置にマークをセットしてから、ポイントを元の位置に戻すことができます。このコマンドはマークが非アクティブのとき、最初にマークをアクティブにします。これはマークが最後にどこにセットされたかを明確にするために、リージョンをハイライトするためです。しかしプレフィクス引数とともに呼び出せば、マークは非アクティブのままでリージョンもハイライトされません。これを使えばC-u
C-SPCと同様の方法で、マークの位置にジャンプできます。
マウスでマークをセットすることもできます。マウスの左ボタン(down-mouse-1)をクリックしてから、テキスト範囲をドラッグすると、最初にマウスボタンを押した位置にマークがセットされ、マウスボタンを話した位置にポイントが置かれます。かわりにマウスの右ボタン(mouse-3)をクリックすれば、ポイントのある位置にマークがセットされ、クリックした位置にポイントが移動します。これらのマウスコマンドに関する詳細な説明は、編集のためのマウスコマンドを参照してください。
最後にシフトキーを押しながらカーソルを移動するコマンド(S-RIGHT、S-C-f、S-C-nなど)でマークをセットできます。これはシフト選択(shift-selection)と呼ばれ、以前にシフト選択やマウスコマンドでセットされたアクティブなマークがないときに限り、ポイントを移動する前の位置にマークをセットします。マウスコマンドやシフト選択によるマークのセットは、通常のマークとは少し異なります。続けてシフトを押さないカーソル移動コマンドを実行するにより、マークは自動的に非アクティブになります。詳細は、シフト選択を参照してください。
C-y
(yank
)のようなテキストを挿入するコマンドの多くは、挿入されたテキストの先頭に、非アクティブなマークをセットします。これにより簡単にその位置に戻ることができます(マークリングを参照してください)。コマンドがこれを行っていることは、エコーエリアに‘Mark set’が表示されることで見分けることができます。
Xではアクティブなリージョンが変化するたびに、Emacsはリージョンのテキストをプライマリー選択(primary selection)に保存します。これによりmouse-2をクリックして、他のXアプリケーションへテキストを挿入することができるようになります。他のウィンドウアプリケーションにたいするカットアンドペーストを参照してください。
ASCIIには、文字C-SPCはありません。テキスト端末でC-SPCをタイプすると、通常は文字C-@が与えられます。このキーもset-mark-command
にバインドされているので、もし異なる挙動を示すテキスト端末の場合は、C-SPCのかわりにC-@を使うことを考えるのがよいかもしれません。