Next: , Previous: , Up: Registers   [Contents][Index]


13.2 レジスターにテキストを保存する

同じテキストのコピーを何回も挿入したいとき、killリングからyankするのは不便です。なぜなら何かkillするたびに、そのエントリーはリングの下の方へ移動してしまうからです。代替として、テキストをレジスターに保存して、後で取り出す方法があります。

C-x r s r

リージョンをレジスターrにコピーします(copy-to-register)。

C-x r i r

レジスターrからテキストを挿入します(insert-register)。

M-x append-to-register RET r

リージョンをレジスターrのテキストに追加します。

レジスターrの内容がテキストの場合、そのレジスターに追加するのにC-x r + (increment-register)も使用できます。レジスターrに数値が含まれている場合、コマンドC-x r +は違う動作をすることに注意してください。Number Registersを参照してください。

M-x prepend-to-register RET r

リージョンをレジスターrの先頭に追加します。

C-x r s rは、リージョンのテキストのコピーを、rという名前のレジスターに保存します。マークが非アクティブのとき、Emacsはまず最後にセットされたマークをアクティブにします。マークはこのコマンドの最後に非アクティブになります。Markを参照してください。同じコマンドにプレフィクス引数を指定したC-u C-x r s rは、テキストのコピーをレジスターrに保存してから、バッファーのテキストを削除します。これはリージョンのテキストを、レジスターに“移動”したと考えることができます。

M-x append-to-register RET rは、リージョンのテキストのコピーを、rという名前のレジスターにすでに保存されているテキストに追加します。プレフィクス引数を指定した場合、レジスターに追加した後にリージョンを削除します。コマンドprepend-to-registerも同様ですが、これはリージョンのテキストをレジスターのテキストの最後ではなく先頭に追加します。

append-to-registerprepend-to-registerを使ってテキストを集める場合、セパレーターを使って個々に集めたテキストを分割したい場合があります。そのようなときはregister-separatorを構成して、セパレーター文字列をそのレジスターに保存します。たとえばテキストを収集する過程で、個々のテキストを2つの改行で分けたい場合、以下の設定を使うことができます。

(setq register-separator ?+)
(set-register register-separator "\n\n")

C-x r i rは、レジスターrのテキストをバッファーに挿入します。通常はポイントをテキストの前に置き、非アクティブのマークをテキストの後ろにセットします。数引数を指定したときは、ポイントをテキストの後ろ、マークをテキストの前にセットします。