Next: Marking Objects, Up: Mark [Contents][Index]
マークをセットするためのコマンドがいくつかあります:
ポイント位置にマークをセットしてアクティブにします(set-mark-command
)。
同じです。
ポイント位置にマークをセットしてアクティブにしてから、以前のマークがあった位置にポイントを移動します(exchange-point-and-mark
)。
ドラッグしたテキストの周りにポイントとマークをセットします。
ポイント位置にマークをセットしてから、クリックした場所にポイントを移動します(mouse-save-then-kill
)。
マークが非アクティブなら、ポイント位置にマークをセットしてポイントを移動します。Shift Selectionを参照してください。
マークをセットするもっとも一般的な方法は、C-SPC
(set-mark-command
)です5。これはポイントがある位置にマークをセットしてから、アクティブにします。その後、マークをそこに残したままポイントを移動できます。
たとえばバッファーの一部を大文字に変換したいとします。これを行うには対象のテキストの一方の端に移動して、C-SPCをタイプし、対象のテキストがハイライトされるまでポイントを移動します。そしてC-x
C-u (upcase-region
)をタイプすると、リージョンのテキストが大文字に変換されて、マークが非アクティブになります。
マークがアクティブなときに非アクティブにしたいときは、C-gをタイプします(Quittingを参照してください)。リージョンにたいして操作を行うほとんどのコマンドは、上記の例のC-x C-uのように、自動的にマークを非アクティブにします。
リージョンにたいしての操作は行わず、バッファーの位置を“覚えておく”ためにマークをセット(C-SPC C-SPCとタイプ)して、後でそこに戻る(C-u C-SPCとタイプ)こともできます。詳細については、Mark Ringを参照してください。
コマンド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)をクリックすれば、ポイントのある位置にマークがセットされ、クリックした位置にポイントが移動します。これらのマウスコマンドに関する詳細な説明は、Mouse Commandsを参照してください。
最後にシフトキーを押しながらカーソルを移動するコマンド(S-RIGHT、S-C-f、S-C-nなど)でマークをセットできます。これはシフト選択(shift-selection)と呼ばれ、(シフト選択するときにアクティブなマークがないときに限り)ポイントを移動する前の位置にマークをセットします。マウスコマンドやシフト選択によるマークのセットは、通常のマークとは少し異なります。続けてシフトを押さないカーソル移動コマンドを実行するにより、マークは自動的に非アクティブになります。詳細は、Shift Selectionを参照してください。
C-y
(yank
)のようなテキストを挿入するコマンドの多くは、挿入されたテキストの先頭に、非アクティブなマークをセットします。これにより簡単にその位置に戻ることができます(Mark Ringを参照してください)。コマンドがこれを行っていることは、エコーエリアに‘Mark set’が表示されることで見分けることができます。
Xではアクティブなリージョンが変化するたびに、Emacsはリージョンのテキストをプライマリー選択(primary selection)に保存します。これによりmouse-2をクリックして、他のXアプリケーションへテキストを挿入することができるようになります。Primary Selectionを参照してください。
ASCIIには、文字C-SPCはありません。テキスト端末でC-SPCをタイプすると、通常は文字C-@が与えられます。このキーもset-mark-command
にバインドされているので、もし異なる挙動を示すテキスト端末の場合は、C-SPCのかわりにC-@を使うことを考えるのがよいかもしれません。