15.15.3 高速ロックか遅延ロックか?
フォントロックで使えるモードの1つを選択する目安となる簡単な指針をあげます。
-
高速ロック(fast-lock)モードは、
ファイルの訪問とバッファの削除(と関連する事象)の最中に作業する。
それゆえ、バッファの編集やウィンドウのスクロールは、
普通のフォントロック(font-lock)モードより速くも遅くもない。
-
高速ロック(fast-lock)モードのキャッシュファイルの読み込みは、
遅延ロック(lazy-lock)モードがウィンドウをフォント表示化するより遅い。
よって、高速ロック(fast-lock)モードは、
遅延ロック(lazy-lock)モードよりファイルの訪問が遅い。
-
遅延ロック(lazy-lock)モードは、
ウィンドウをスクロールする最中に、
画面上に現れるテキストをフォント表示化する。
よって、スクロールは、通常のフォントロック(font-lock)モードより遅い。
-
遅延ロック(lazy-lock)モードは、
バッファを編集中はフォント表示化しない(変更部分のフォント表示化を延期する)。
よって、編集は、通常のフォントロック(font-lock)モードより速い。
-
高速ロック(fast-lock)モードは、
版管理の下に置かれたファイルではだまされることがある。
よって、そのファイルに対するキャッシュファイルが存在していても、
バッファのフォント表示化が起こりえる。
-
高速ロック(fast-lock)モードは、
ファイルを訪問しているバッファでのみ動作する。
遅延ロック(lazy-lock)モードは、どのバッファでも動作する。
-
高速ロック(fast-lock)モードは、キャッシュファイルを生成する。
遅延ロック(lazy-lock)モードは、生成しない。
変数font-lock-support-mode
は、
これらのどちらのモードを使うかを指定します。
たとえば、C/C++モードでは高速ロック(fast-lock)モードを使い、
それ以外のモードでは遅延ロック(lazy-lock)モードを使うように指定するには、
変数をつぎのように設定します。
(setq font-lock-support-mode
'((c-mode . fast-lock-mode) (c++-mode . fast-lock-mode)
(t . lazy-lock-mode)))