flyspellとカスタム変数

宣言通り卒論英語で書いてるわけですが、あほなくらいスペルミスをします。squareがquareになっていたりして、それをEmacsの動的略語展開とかで補完するとスペルミスのほうが補完されてもうだめぽになります。Emacsならispellってのがあるって知ってるんですが、M-x ispellと書くのは面倒です。面倒なことはやらなくなって、またスペルミス(ryという展開なのでどうにかしないと!!というわけで探していたらflyspellというのを発見。flymakeのスペルチェックバージョンのようなやつらしいです。ソース落としてきて…とかしなくても最初から付いているそうです、Carbon Emacsならば。

そういうわけで導入したんですが、スペルをチェックするキーバインドが「\C-;」となっていて、anythingに割り当てているやつとかぶる。「しゃーないからflyspell-mode-mapとかをdefine-keyで変更するかー」と思ってやるも、そんなmode-mapはないと言われる。ソースに目を通すもmode-mapらしきものがない。。。

で、困っていたらid:yaottiがflyspellのL261を見るといいよ&defcustomというのがあるよということを教えてくれました。id:yaotti++。L261はこんな感じ。

(defcustom flyspell-auto-correct-binding
  [(control ?\;)]
  "The key binding for flyspell auto correction."
  :group 'flyspell)

custom変数というのはユーザー側でいじることが推奨されているような変数らしい。知らなかった。というわけで適当に調べて書いた。

(custom-set-variables 
 '(flyspell-auto-correct-binding [(control ?\:)]))

これで住みわけができてスペルミスも減ってハッピー。やっぱ手間のかかることは続かないので自動的にやってくれるのがいいですね。flyspell-modeの設定は全体でこんな感じにしましたとさ。

;; yatex-modeに入る時、自動でflyspell-modeに入るようにする
(add-hook 'yatex-mode-hook 'flyspell-mode)
(custom-set-variables 
 '(flyspell-auto-correct-binding [(control ?\:)]))

;; texの記法は無視
(setq ispell-parser 'tex)