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

16.14 インタラクティブなハイライト

「変更箇所ハイライト」モードは、バッファ内で直近に変更された部分を異なる書体で表示してハイライトするマイナーモードです。「変更箇所ハイライト」モードを有効または無効にするには、M-x highlight-changes-modeを使用してください。

Hi Lockモードは、指定した正規表現に一致するテキストをハイライトするマイナーモードです。例えば、プログラムソースファイル内の特定の変数への参照をすべてハイライトしたり、あるプログラムの膨大な出力の一部をハイライトしたり、あるいは記事の中の特定の名前をハイライトしたりする場合に利用できます。Hi Lockモードを有効または無効にするには、コマンド M-x hi-lock-mode を使用します。すべてのバッファでHi Lockモードを有効にするには、M-x global-hi-lock-mode を使用するか、.emacs ファイルに (global-hi-lock-mode 1) を記述してください。

Hi LockモードはFont Lockモード(Font Lockモードを参照)と同様に動作しますが、ハイライトする正規表現を明示的に指定する点が異なります。以下のコマンドでこれらを制御できます。(以下に示すC-x wで始まるキーバインドは、グローバルなM-s hバインドに取って代わられ非推奨となっており、将来のEmacsバージョンで削除される予定です。)

M-s h r regexp RET face RET
C-x w h regexp RET face RET

regexp に一致するテキストを、フェイス face (highlight-regexp) でハイライトします。ハイライトは、バッファがロードされている間維持されます。例えば、デフォルトのフェイス(黄色の背景)を使用して単語 “whim” のすべての出現箇所をハイライトするには、M-s h r whim RET RET と入力します。ハイライトには任意のフェイスを使用でき、Hi Lock は独自のフェイスをいくつか提供しており、これらはデフォルト値のリストにあらかじめロードされています。フェイスの指定中は、M-n と M-p を使用してそれらを順に切り替えます。接頭辞の数値引数を指定すると、ハイライト範囲を対応する部分式に限定できます。

オプション hi-lock-auto-select-face に nil 以外の値を設定すると、このコマンド(および面を読み取るその他の Hi Lock コマンド)は、確認を求めることなくデフォルトリストから次の面を自動的に選択します。

このコマンドは複数回使用でき、ハイライトの方法を変えるためにさまざまな正規表現を指定できます。

M-s h u regexp RET
C-x w r regexp RET

ハイライト解除 regexp (unhighlight-regexp)。メニューから呼び出す場合は、リストからハイライトを解除する式を選択します。キーボードから呼び出す場合は、ミニバッファを使用します。ここには直近に追加された正規表現が表示されます。M-n で一つ前の式を、M-p で次の式を選択できます。(補完機能を使って、式を直接入力することも可能です。)ミニバッファにハイライトを解除したい式が表示されたら、RET を押してミニバッファを終了し、ハイライトを解除します。

M-s h l regexp RET face RET
C-x w l regexp RET face RET

regexp に一致する行全体を、フェイス face (highlight-lines-matching-regexp) でハイライトする。

M-s h p phrase RET face RET
C-x w p phrase RET face RET

phrase のマッチ箇所を、face face (highlight-phrase) を用いてハイライトします。phrase には任意の正規表現を指定できますが、スペースは空白文字のマッチ箇所に置換され、先頭の小文字は大文字・小文字を区別しなくなります。

M-s h .
C-x w .

点の近くにあるシンボルを、次に利用可能な面(highlight-symbol-at-point)を用いて強調表示します。

M-s h w
C-x w b

現在ハイライトに使用されているすべての正規表現/フェイスのペアを、プログラムに変更を加えないようコメント区切り文字を付けて、ポイント位置のバッファに挿入します。(このキーバインドは hi-lock-write-interactive-patterns コマンドを実行します。)

これらのパターンは、コメントから、必要に応じて、M-x hi-lock-find-patternsを呼び出した場合、またはHi Lockモードが有効な状態でファイルにアクセスした場合(このモードではhi-lock-find-patternsが実行されるため)に抽出されます。

M-s h f
C-x w i

現在のバッファ(hi-lock-find-patterns)内のコメントから正規表現とフェイスのペアを抽出します。これにより、highlight-regexpでインタラクティブにパターンを入力し、hi-lock-write-interactive-patternsでそれらをファイルに保存し、編集(マッチした括弧内の部分ごとに異なるフェイスを適用する場合など)を行い、最後にこのコマンド(hi-lock-find-patterns)を使用して、Hi Lockで編集済みのパターンをハイライト表示させることができます。

変数 hi-lock-file-patterns-policy は、Hi Lock モードがファイルにアクセスした際に、ファイル内で見つかったパターンを自動的に抽出してハイライトするかどうかを制御します。その値には、nil(決してハイライトしない)、ask(ユーザーに問い合わせる)、または関数を指定できます。関数の場合、hi-lock-find-patterns はパターンを引数としてその関数を呼び出し、関数が nil 以外の値を返した場合にパターンが使用されます。デフォルトは ask です。なお、この変数の値に関わらず、hi-lock-find-patterns を直接呼び出した場合は常にパターンがハイライトされます。

また、現在のメジャーモードのシンボルがリスト hi-lock-exclude-modes に含まれている場合、hi-lock-find-patterns は何もしません。