Font Lockモードはマイナーモードであり、常に特定のバッファに紐付き、そのバッファ内のテキストにフェイスを割り当てる(あるいはフォント化する)ものです。各バッファのメジャーモードが、どのテキストをフォント化すべきかをFont Lockモードに指示します。例えば、プログラミング言語モードでは、コメントや文字列、関数名といった構文上重要な構成要素をフォント化します。
Font Lockモードは、対応しているメジャーモードではデフォルトで有効になっています。現在のバッファでこのモードを切り替えるには、M-x font-lock-mode と入力してください。正の数値引数を指定すると無条件にFont Lockモードが有効になり、負の数値または0を指定すると無効になります。
M-x global-font-lock-mode と入力すると、すべてのバッファで Font Lock
モードの切り替えが可能です。今後の Emacs セッションでもこの設定を適用するには、変数 global-font-lock-mode をカスタマイズするか(Easy Customization Interface を参照)、init
ファイルに以下の行を追加してください:
(global-font-lock-mode 0)
グローバル Font Lock モードを無効にしている場合でも、モードフックに関数 font-lock-mode を追加することで、特定のメジャーモードに対して Font Lock
を有効にできます(フックを参照)。例えば、C ファイルの編集時に Font
Lock モードを有効にするには、次のようにします。
(add-hook 'c-mode-hook 'font-lock-mode)
Font Lockモードでは、font-lock-string-faceやfont-lock-comment-faceなど、個別に名前が付けられた複数のフェイスを使用して動作します。これらをすべて見つける最も簡単な方法は、M-x customize-group RET font-lock-faces
RETを使用することです。その後、このカスタマイズバッファを使用して、これらのフェイスの外観をカスタマイズできます。フェイスのカスタマイズを参照してください。
非常に大きなバッファをフォント化するには、時間がかかる場合があります。ファイルにアクセスした際の大幅な遅延を避けるため、Emacsは当初、バッファの可視部分のみをフォント化します。バッファをスクロールするにつれ、可視になった各部分が表示された直後にフォント化されます。この種のFont Lockは、Just-In-Time(またはJIT)Lockと呼ばれます。カスタマイズグループ ‘jit-lock’ の変数をカスタマイズすることで、アイドル時にフォント化を行うように設定するなど、JIT Lockの動作を制御できます。特定項目のカスタマイズを参照してください。
主要なモードが、バッファテキストのどの部分をフォント化し、どのフェイスを使用するかを決定する際に用いる情報は、テキストを解析するいくつかの異なる手法に基づいています: