GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Setting-Mark.html ・ emacs-doc.conao3.com

13.1 マークの設定

マークを設定するためのコマンドをいくつか紹介します:

C-SPC

ポイントにマークを設定し、有効化します (set-mark-command)。

C-@

同じ。

C-x C-x

ポイントにマークを設定して有効化し、その後、マークがあった場所(exchange-point-and-mark)にポイントを移動させます。

Drag-mouse-1

セットポイントと、ドラッグしたテキスト周辺のマーク。

mouse-3

マークをポイントに設定し、次にポイントをクリックした位置(mouse-save-then-kill)に移動させます。

Shifted cursor motion keys

マークが非アクティブな場合は、マークをポイントに設定し、その後ポイントを移動します。Shift Selectionを参照してください。

マークを設定する最も一般的な方法は、C-SPC (set-mark-command)7 を用いることです。これにより、ポイントの位置にマークが設定され、有効化されます。その後、ポイントを移動させると、マークが残ります。すでにポイントの位置にマークが設定されている場合、このコマンドは別のマークを設定するのではなく、既存のマークを有効化するだけです。

例えば、バッファの一部を大文字に変換したいとします。これを行うには、目的のテキストの一端に移動して 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 は、ポイントの位置には満足しているが、領域のもう一方の端(マークがある位置)を移動させたい場合に便利です。必要に応じて C-x C-x を再度使用すると、マークが新しい位置に移動し、ポイントが元の位置に戻ります。通常、マークが非アクティブな場合、このコマンドはまずマークが最後に設定された位置でマークを再アクティブにし、領域がハイライトされたままになるようにします。ただし、接頭辞引数を付けて呼び出すと、マークは非アクティブなままとなり、領域もハイライトされません。これを利用して、C-u C-SPC と同様の方法でマークへジャンプできます。

マウスでマークを設定することもできます。マウスの左ボタン(down-mouse-1)を押しながらテキストの範囲をドラッグすると、最初にマウスボタンを押した位置にマークが設定され、ボタンを離した位置にポイントが移動します。あるいは、マウスの右ボタン(mouse-3)をクリックすると、ポイントにマークが設定され、その後ポイントがクリックした位置に移動します。これらのマウスコマンドの詳細な説明については、編集用マウスコマンドを参照してください。

最後に、特定のカーソル移動コマンド(S-RIGHT、S-C-f、S-C-nなど)を入力する際にShiftキーを押し続けることで、マークを設定できます。これはシフト選択と呼ばれます。これにより、ポイントを移動させる前にポイントにマークが設定されますが、これは直前のシフト選択やマウスコマンドによって有効なマークが設定されていない場合に限られます。マウスコマンドやシフト選択によって設定されたマークは、通常のマークとは動作が若干異なります。その後にShiftキーを押さずにカーソル移動コマンドを実行すると、自動的に解除されます。詳細については、シフト選択を参照してください。

C-y (yank) のようにテキストを挿入する多くのコマンドは、マークを有効化することなく、挿入されたテキストのもう一方の端に設定します。これにより、その位置へ簡単に戻ることができます(マークリングを参照)。コマンドがこのような動作をするときは、エコーエリアに ‘Mark set’ と表示されます。

X環境では、アクティブ領域が変わるたびに、Emacsは領域内のテキストをプライマリセレクションに保存します。これにより、mouse-2回のクリックでそのテキストを他のXアプリケーションに挿入できます。他のウィンドウアプリケーションでの切り取りと貼り付けを参照してください。


脚注

(7)

ASCIIにC-SPCという文字は存在しません。通常、テキスト端末でC-SPCと入力するとC-@という文字が出力されます。このキーはset-mark-commandにも割り当てられているため、挙動の異なるテキスト端末に当たるという不運に見舞われない限り、C-@はC-SPCと考えて差し支えないでしょう。