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

13.3 リージョンでの運用

リージョンを用意したら、以下のような操作が可能です。

マークが非アクティブなときはデフォルトの動作をするが、マークがアクティブなときはリージョンに対して動作するコマンドがあります。例えば、M-$ (ispell-word) は通常、ポイントにある単語のスペルをチェックしますが、マークがアクティブな場合はリージョン内のテキストをチェックします(スペルのチェックと修正を参照)。通常、このようなコマンドは、リージョンが空の場合(つまり、マークとポイントが同じ位置にある場合)にはデフォルトの動作を行います。空のリージョンに対して動作させたい場合は、変数 use-empty-active-region を t に変更してください。

テキストの消去で説明されている通り、DEL (backward-delete-char) および Delete (delete-forward-char) コマンドも同様に動作します。マークが有効な場合、これらはリージョン内のテキストを削除します。(例外として、n が 1 ではない数値引数 n を指定した場合、これらのコマンドはマークの有効・無効にかかわらず n 文字を削除します)。変数 delete-active-region を nil に変更すると、これらのコマンドはマークが有効な場合でも動作が変わりません。値を kill に変更すると、これらのコマンドはリージョンを削除する代わりに キル します(テキストのキルと移動 を参照)。

その他のコマンドは常にリージョンに対して動作し、デフォルトの動作は定義されていません。こうしたコマンドの名前には通常、C-w (kill-region) や C-x C-u (upcase-region) のように region という語が含まれています。マークが非アクティブな場合、これらのコマンドは非アクティブリージョン――すなわち、ポイントから最後にマークが設定された位置までのテキスト――に対して動作します(マークリングを参照)。この動作を無効にするには、変数 mark-even-if-inactive を nil に変更してください。これにより、マークが非アクティブな場合、これらのコマンドは代わりにエラーを報告するようになります。

デフォルトでは、マークが有効な状態でもテキストの挿入は通常通り行われます。例えば、a と入力すると文字 ‘a’ が挿入され、その後マークが無効になります。マイナーモードである Delete Selection モードはこの動作を変更します。このモードを有効にすると、マークが有効な状態でテキストを挿入した際、まずリージョン内のテキストが削除されます。ただし、delete-selection-temporary-region オプションをカスタマイズすることで、この動作を調整できます。デフォルト値は nil ですが、これを t に設定すると、一時的に有効なリージョンのみが置換対象となります。具体的には、マウスドラッグ(マークの設定 を参照)やシフト選択(シフト選択 を参照)によって設定されたリージョン、および Transient Mark Mode が無効な場合の C-u C-x C-x によるリージョンが対象となります。さらに、delete-selection-temporary-region を selection に設定することで動作をさらに調整できます。この場合、C-u C-x C-x による一時的リージョンは置換されず、マウスドラッグまたはシフト選択によって有効化されたリージョンのみが置換対象となります。Delete Selection モードのオン/オフを切り替えるには、M-x delete-selection-mode と入力してください。現在のバッファのみで Delete Selection モードのオン/オフを切り替えるには、M-x delete-selection-local-mode と入力してください。