9/16の日記で,ruby-electricとanthyの併用ができない件を書いたのですが,解決しました。id:rubikitchさんに教えていただきました。ありがとうございます。
原因と解決策は以下の通りです。
一般にマイナーモードはロード順によって干渉しあう。以下のような設定にしていたので,
(load-library "anthy") (setq default-input-method "japanese-anthy") (require 'ruby-electric) (add-hook 'ruby-mode-hook '(lambda () (ruby-electric-mode t) ))
(mapcar 'car minor-mode-map-alist) を評価すると
(view-mode ruby-electric-mode compilation-minor-mode compilation-shell-minor-mode anthy-minor-mode)
と表示され,ruby-electric-modeがanthy-modeよりも前にあります。minor-mode-map-alistはマイナーモードによるキーバインドを制御する変数で、先頭のものほど優先されます。
解決策としては,
(let ((rel (assq 'ruby-electric-mode minor-mode-map-alist))) (setq minor-mode-map-alist (append (delete rel minor-mode-map-alist) (list rel))))
後者の方法で解決しました。