Emacs Spell-Checking (Hunspell) in Windows

Last Updated: Apr 14, 2025

多くのGNU/LinuxディストリビューションにIspellといった西洋語スペルチェッカが内蔵されている。当然ながら、Windowsにはこんな便利なツールを簡単にインストールできるわけがない。

Emacsで英文を書くとき、いつもIspellを使っているが、Windowsで同じことするのに苦労したのでメモっておく。

まず、WindowsではIspellではなく、Hunspellを使う人が多いらしいのでHunspellをインストールする。管理者権限でPowershellを開き、

Set-ExecutionPolicy Bypass 
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('http://internal/odata/repo/ChocolateyInstall.ps1'))

を逐次に実行する。

次に、chocoでHunspellをインストールする。

choco install hunspell.portable

また、 LibreOffice Extensionsから英語、或いは望ましい言語の辞書をダウンロードする。ダウンロードされたファイルはoxt形式になるが、ZIPと同じようなものなので、なんとか展開する。該当する辞書(.aff.dic)をHunspellのパスに含まれたディレクトリに入れる。Hunspellのパスは、

hunspell -D

を実行することでわかる。その後、

hunspell -D -d en_US NUL

を実行して辞書をインストールする。なお、en_USを適宜自分がインストールしたい言語に変えること。

下準備は以上で完了。次に.emacsをいじればOK。chocoでHunspellをインストールした場合、自動的にパスに入れてくれるが、そうではない場合、手動でパスに入れるかフルパスを三行目に入れる。

(setenv "LANG" "en_US") 
(setenv "DICTIONARY" "en_US") 
(setq-default ispell-program-name "hunspell.exe")

これで動くかもしれないが、Emacsのバージョンが新しい場合、なぜか動かないことがある。エラーはこのような感じ:

ispell-phaf: No matching entry for en_US in ‘ispell-hunspell-dict-paths-alist’.

このサイトより、ispell.elを直せばいいらしい。

現時点1127行目

- (affix-file (concat dict ".aff"))) 
+ (affix-file (concat (file-name-sans-extension dict) ".aff")))

の通りに直し、最後にM-x byte-compile-file <path/to/ispell.el>を実行すれば動くはず。