最近のEmacsはそのままでもWindowsのIMEを使えるようになったが、とても使いづらい。
- 日本語を入力する(IMEをON)
- しばらく書いたので保存したい(IMEをOFF)
- また執筆に戻る(IMEを再びON)
これでは、煩雑でしょうがない。そこでtr-ime
の出番である。
このパッケージを一言で言えばEmacsの入力システムIM(Input Method)とWindowsの入力システムIME(Input Method Editor)を同期してくれるものだ。
このパッケージを使うことで例えば以下のようなことが実現できる。
tr-ime
を使用すればPrefix keyを併用した入力は自動的にIMEをOFFにした状態に、そしてコマンドが終わったらまたIMEをONに戻してくれる。つまり
- 日本語を入力する(IMEをON)
- しばらく書いたので保存したい(そのまま
C-x C-s
) - また執筆に戻る
といったことができる。
また、EmacsではIMEのインライン表示がまだうまくいっていない。絵文字が豆腐になるのはまだ我慢できるが、Emacsのフォント・フォントサイズを変更した場合その差は耐えられなくなってくる。
tr-ime
を使えばIMEのフォントを設定することができる。また、IMEのON/OFF表示までしてくれる。
導入
- init.elを開く
- Emacsで以下のコマンドを打つ
M-x leaf-convert-insert-templete tr-ime
- Emacsを閉じ、次のコマンドを打つ
$ cd ~/.emacs.d
$ emacs --batch -f batch-byte-compile init.el
- Emacsをを開き、init.elに次のコードを貼り付ける。
(tr-ime-advanced-install)
(setq default-input-method "W32-IME")
(w32-ime-initialize)
備考
基本的に標準設定で問題ないが、私の場合は後変換と文脈変換は使わないので余計な負荷軽減のために無効化している。
;; IME
(leaf tr-ime
:doc "Emulator of IME patch for Windows"
:req "emacs-27.1" "w32-ime-0.0.1"
:tag "emacs>=27.1"
:url "https://github.com/trueroad/tr-emacs-ime-module"
:added "2023-07-22"
:emacs>= 27.1
:ensure t
:after w32-ime)
;; tr-ime 設定
(tr-ime-advanced-install 'no-confirm)
(setq default-input-method "W32-IME")
(w32-ime-initialize)
;; 後変換の無効化
(custom-set-variables '(tr-ime-reconversion-p nil))
;; 文脈参照の無効化
(custom-set-variables '(tr-ime-documentfeed-p nil))
;; Disable Prefix
;;(custom-set-variables '(tr-ime-prefix-key-p nil))
;; IME フォント
(modify-all-frames-parameters '((ime-font . "UD Digi Kyokasho N-R-14")))
また、私は記号の配列が合理的という理由でUS配列のキーボードを最近は使っている。それでもJIS配列のように変換・無変換を使ったトグルではないIMEのON/OFFを実現している。やっていることはなんてことはなく、ATOKで日本語入力のONにC-h
を、OFFにC-u
を割り当てている。
hとuに割り当てているのは私がDvorak配列を使っているからである。QWERTY配列の人はそれぞれJとFに割り当てるなどをおすすめする。
問題はこのキー設定では高確率でEmacsのHot keyと競合する。そのため、私はC-h
とC-u
をEmacsのHot keyから明示的に外している。
つまり最終的な私の設定は以下の通りである。
;; IME
(leaf tr-ime
:doc "Emulator of IME patch for Windows"
:req "emacs-27.1" "w32-ime-0.0.1"
:tag "emacs>=27.1"
:url "https://github.com/trueroad/tr-emacs-ime-module"
:added "2023-07-22"
:emacs>= 27.1
:ensure t
:after w32-ime)
;; tr-ime 設定
(tr-ime-advanced-install 'no-confirm)
(setq default-input-method "W32-IME")
(w32-ime-initialize)
;; 後変換の無効化
(custom-set-variables '(tr-ime-reconversion-p nil))
;; 文脈参照の無効化
(custom-set-variables '(tr-ime-documentfeed-p nil))
;; Disable Prefix
;;(custom-set-variables '(tr-ime-prefix-key-p nil))
;; IME フォント
(modify-all-frames-parameters '((ime-font . "UD Digi Kyokasho N-R-14")))
;; unbind key
(global-unset-key "\C-u")
(global-unset-key "\C-h")
フォントがかわいらしいのはちょっとした遊び心である。