hotfuzzという補完スタイルを提供するEmacsパッケージがある.
あいまい入力の補完を助けるので,とても便利である.
さらなる高速化を望むなら,hotfuzzの動的モジュールのソースコードをコンパイルしてロードパスの通ったところに置く必要がある.
筆者は ~/.emacs.d/hotfuzz に置いたということ.
hotfuzz-max-highlighted-completions
はデフォルト値が25だが,あまり大きくする意味もなかったので,一番小さくしておいた.
consultと一緒に用いる場合,consult--tofu-char
がUnicode範囲外をあえて指定しているのが不具合を引き起こすので(consult-lineなどで),
これを "Supplementary Private Use Area-B" の範囲で指定するように変更した.これはhotfuzz公式リポジトリに書かれたTIPSである.
(add-to-list 'load-path "~/.emacs.d/hotfuzz") (setq completion-styles '(basic partial-completion hotfuzz)) ;; hotfuzzをfallbackに活用する (setq completion-category-overrides nil) (setq hotfuzz-max-highlighted-completions 1) ;; 正の整数 大きすぎるのはダメ (with-eval-after-load 'consult (setq consult--tofu-char #x100000 consult--tofu-range #x00fffe))
補完候補が毎回出過ぎるのも困るので,hotfuzzは completion-styles
の一番後ろに置き,basicやpartial-completionのfallbackにしてみた.
このあたりは各自がどのような場面で補完を使うのかに依存する.プログラミング系だと先頭完全一致(=basic)を先に置かないと候補が最初から出すぎるおそれがあるなど.
もしorderlessを併せて使うときには
(setq completion-styles '(basic partial-completion hotfuzz orderless)) (setq completion-category-overrides '((file (styles basic partial-completion))))
とするのがいいのかもしれない.