ここから本文です
Mac OS XのEmacs24で日本語入力時にカーソルの色を変える
ぼくは、「macports版のEmacsとemacs-mac patch版のEmacs」のような方法で自分のEmacs環境を構築していますが、なかなかMac OS Xの日本語入力との連携ができませんでした。
Emacs使いの方々は、OS標準のIME/FEP(JapaneseIM)なんて使っておらず、Emacs内で完結した日本語入力環境を使っている方が多数なようで、あまりリソースも見つかりませんでした。
が、
を参考にちょっといじったら、とりあえずいちおう納得のいく振る舞いになったのでアップしておきます。
(if (fboundp 'mac-input-source)
(progn
(defun my-mac-selected-keyboard-input-source-chage-function ()
(let ((mac-input-source (mac-input-source)))
(set-cursor-color
(if (or (string-match "com.apple.inputmethod.Kotoeri.Roman" mac-input-source)
(string-match "com.apple.keylayout.US" mac-input-source))
"white" "Red"))))
;; hook for cursor
(add-hook 'mac-selected-keyboard-input-source-change-hook
'my-mac-selected-keyboard-input-source-chage-function)
;; timer for cursor
(setq-default global-cursor-color-timer
(run-with-idle-timer
0.03
t
'my-mac-selected-keyboard-input-source-chage-function)))
;; if not mac
(set-cursor-color "white"))
scratchバッファで
(mac-input-source)
をC-jで評価して、
com.apple.inputmethod.Kotoeri.Roman com.apple.inputmethod.Kotoeri.japanese
みたいなんが返ってきたら使えます(それにしてもこのファイル名は、まだ「ことえり」なんですね……。関係ないけど、JapaneseIM、使いづらくってむかつく:-()。
ネタ元との違いはアイドルタイマーによる監視です。これを入れておかないと、ふっとカーソル色が英数字のモードに戻ってしまうことがあり、信用できなくなってしまうので。
ジャンル: Emacs、Mac、ことえり/JapaneseIM

