Next: , Up: Mark


7.1 マークを設定する

マークを設定するコマンドはつぎのとおりです。

C-<SPC>
ポイント位置にマークを置く(set-mark-command)。
C-@
上と同様。
C-x C-x
マークとポイントを入れ換える(exchange-point-and-mark)。
Drag-Mouse-1
ドラッグしたテキストの周囲にポイントとマークを設定する。
Mouse-3
ポイント位置にマークを設定し、クリックした箇所にポイントを移動する (mouse-save-then-kill)。

たとえば、コマンドC-x C-uupcase-region)を使って、 バッファのある部分をすべて大文字に変換したいとしましょう。 このコマンドは、リージョン中のテキストに作用します。 まず、大文字に変換したいテキストの先頭に移動し、 C-<SPC>と打ってマークを設定します。 続いてテキストの終端に移動してC-x C-uと打ちます。 あるいは、先にテキストの終端にマークを設定して、 テキストの始点に移動してからC-x C-uと打ちます。

マークを設定するもっとも一般的な方法は、 C-<SPC>コマンド(set-mark-command)を使うことです。 このコマンドは、ポイント位置にマークを設定します。 そうすれば、マークを置いたままで、ポイントを移動できます。

マウスを使ったマークの設定方法は2つあります。 テキストのある範囲でマウスボタン1をドラッグします。 マウスボタンを離した位置にポイントが置かれ、 ドラッグを開始した箇所にマークが設定されます。 あるいは、マウスボタン3をクリックします。 これは(C-<SPC>と同様に)ポイント位置にマークを設定してから、 ポイントを(Mouse-1のように)移動します。 両者は、マークを設定するだけでなく、リージョンをキルリングにコピーします。 これは、他のウィンドウアプリケーションの動作と一貫性を持たせるためです。 キルリングを変更したくなければ、 キーボードコマンドを使ってマークを設定する必要があります。 See Mouse Commands

普通の端末にはカーソルは1つしかありませんから、 Emacsにはマークを置いた位置を表示する術はありません。 ユーザーがその位置を覚えておく必要があります。 この問題に対する通常の解決方法は、マークを設定したら、 忘れてしまうまえにただちにそれを利用することです。 あるいは、C-x C-xexchange-point-and-mark)コマンドを使って、 マーク位置を確認します。 このコマンドは、ポイント位置にマークを置き、 マークのあった位置にポイントを置きます。 リージョンの範囲は変わらずに、 カーソルとポイントは以前マークのあった箇所に移動します。 暫定マーク(transient-mark)モードでは、 このコマンドはマークを再度活性にします。

ポイント位置を変えずに、 リージョンのもう一方の端(マークの位置)を移動させたい場合にも、 C-x C-xは便利な方法です。 まず、C-x C-xでポイントをリージョンの一方の端に移して、 その端を移動します。 必要ならば、もう1度C-x C-xを使って新しい位置にマークを置き、 ポイントをもとの位置に戻します。

ASCIIには、C-<SPC>という文字は存在しません。 <CTRL>を押し下げながら<SPC>を打つと、 ほとんどの普通の端末では文字C-@になります。 このキーは、実際にset-mark-commandにバインドしてあります。 ただし、幸運にもC-<SPC>C-@を送出する端末を 使っているのであれば、 C-@C-<SPC>とみなしてかまいません。 Xウィンドウシステムでは、C-<SPC>は実際には 別の文字として認識されますが、 そのバインドはやはりset-mark-commandです。