Macの日本語入力にはgoogle日本語入力を使い、Emacsのときにはmozcを使っています。 当然ながらMacのgoogle日本語入力は、かなキーでON/OFFしますので、emacs_mozcのON/OFFには、別のキーを割り当てる必要があります。

MacでもEmacsでも、かなキーでIMのON/OFFできたらと試行錯誤した結果、あんがい簡単に実現できたのでご紹介します。

Mac+Emacsでmozcを使う

google日本語入力と連携してmozc_emacs_helperを導入できるので辞書管理なども一元化できて便利です。 詳しい導入Tipsは、別ページに書いています。

mozc_emacs_helper on macOS Sierra

google日本語入力とemacs-mozcとを使い分ける

Emacs環境でのIM(mozc)は、M-x toggle-input-method で切り替えますが、連動してMac側のIM(google日本語入力)をOFFにすることはできないので、下記サイトの記事を参考にinit.elに以下のような設定を加ています。

mozc-emacs-helperとOSXのIMを連動させる (toggle-input-method, 英数/かなキー)

;; 英数キーをエミュレートする
;; https://www.inabamasaki.com/archives/1898
(when (eq system-type 'darwin) 
  (defun my-eisuu-key ()
  "Emulating alphanumeric keys"
  (interactive)
  (call-process "osascript" nil t nil "-e" "tell application \"System Events\" to key code 102"))
  ;; Mozcが起動されたら英数にする
  (add-hook 'mozc-mode-hook 'my-eisuu-key)
  ;; フレームがアクティブになった時英数にする
  (add-hook 'focus-in-hook 'my-eisuu-key))

何をしているかというと、下記条件のときに強制的にMacを英数入力にしているのです。

  1. Emacsのmozcが起動されたらMacの入力ソースを英数にする
  2. 他のフレームからEmacsフレームへ移動したらMacの入力ソースを英数にする

※でもちょっと問題が

上記対応をしていてもあとからうっかり、かなキーを押すとgoogle日本語入力が起動してしまいます。Emacsがアクティブなときは、かなキーが無効になるようにシステムコントロールできるのが一番いいのですが、Macの日本語入力モードをOFFにするコマンドがよくわからいのでお手上げでした。

⌘英かな.appで、かなキーをカスタマイズする

⌘英かな.appで、Emacsのときだけ、かなキーを強制的に他のキーバインドに変更してしまいます。

Alt Text

かなキーをsuper+jに変更することでEmacsでのmozcのON/OFFが可能になり、かつgoogle日本語入力のON/OFFができなくなります。

※ここからが裏技です

⌘英かな.appは、除外アプリを設定できます。google日本語入力を使いたいアプリを全て除外アプリに登録すれば、デフォルトのかなキーでgoogle日本語入力ON/OFFが出来るわけです。

残念ながら、この裏技が使えるのは、かなキーのあるJISキーボードだけです。USキーボードの場合は、別のアルゴリズムを考える必要があります。