init.elの大掃除として、コード補完に Company
を利用していたのを、
Corfu
と Cape
に乗り換えてみました。
環境はEmacs HEADビルド (31.0.50) です。
その結果、Org Modeでアルファベットを書いていると定期的にエラーが発生し入力が中断されてしまうように。
例えば、 abc
と入力してしばらくすると、以下のようなメッセージが出力されます。
Debugger entered--Lisp error: (error "ispell-lookup-words: No plain word-list found at systemdefault locations. Customize ‘ispell-alternate-dictionary’ to set yours.")
error("ispell-lookup-words: No plain word-list found at systemdefault locations. Customize `ispell-alternate-dictionary' to set yours.")
ispell-lookup-words("abc")
ispell-completion-at-point()
corfu--capf-wrapper(ispell-completion-at-point)
run-hook-wrapped(corfu--capf-wrapper ispell-completion-at-point)
corfu--auto-complete-deferred((#<window 3 on init.org> #<buffer init.org> 2614 96))
apply(corfu--auto-complete-deferred (#<window 3 on init.org> #<buffer init.org> 2614 96))
timer-event-handler([t 26307 8851 745683 nil corfu--auto-complete-deferred ((#<window 3 on init.org> #<buffer init.org> 2614 96)) nil 721000 nil])
ログを見てみると、どうやら自分が自動補完を有効化していたので、
アルファベットを入力すると、 ispell
を使って英単語の補完をしようとしているが、
ispell
は設定していないので、ispellが動かずにエラーになっているようです。
大本のREADMEにも、 Emacs30移行では ispellの補完は無効にするように記載がありました。
;; Emacs 30 and newer: Disable Ispell completion function. As an alternative,
;; try `cape-dict'.
(text-mode-ispell-word-completion nil)
https://github.com/minad/corfu?tab=readme-ov-file#configuration
ということで、自分の設定にもとりこんでエラーが出なくなったことを確認。よかった。
(leaf corfu
:ensure t
:defun
(global-corfu-mode)
:config
(global-corfu-mode)
:custom
(corfu-cycle . t)
(corfu-auto . t)
(text-mode-ispell-word-completion . nil))
Share