WindowsでEmacsを使うには、Gnuの公式ビルドは実質使いづらく、快適な日本語入力のためには、有志の方のビルド=IMEパッチ版が必要でした(これまで本当に感謝です)。
今回は、公式ビルドでもW32-IMEが簡単に使えるようになった。ということで試してみたという話。
試した環境
Windows 10 Pro バージョン 20H2 (OSビルド 19042.746)
64bit版 GNU Emacs 27.1 公式ビルド
“GNU Emacs 27.1 (build 1, x86_64-w64-mingw32) of 2020-08-22”
2021/06/30 追記:2021年の5月にバージョン 27.2 がリリースされているので、そちらを使うのが良さそうです。バグフィックスリリースなので、機能的に違いはないみたいです。
概要
公式ビルドの Emacs 27.1 と下記の仕組みを利用します。
Emulator of GNU Emacs IME patch for Windows (tr-ime)
Windows 用 (MinGW/Cygwin) GNU Emacs でダイナミックモジュールの機構を利用し、 IME パッチ無しの公式バイナリなどでも、 IME による日本語入力を使いやすくする試みです。
最高の試みですね。感謝しかありません。
どうしてIMEパッチが必要なのか、わかりやすく解説もされていて、感謝しかありません。
“全世界のユーザが使っている IME パッチ無しで安定した Emacs バイナリを使い、上記のような問題を解消できる最小限を目指します。” 本当に感謝。感謝。感謝。
手順
手順は上記サイトに詳しく書かれていますので、そちらを参照するのが良いでしょう。
ここには、ざっくり書いておきます。
GNU Emacs公式サイトからインストーラをダウンロードして実行します。
https://www.gnu.org/software/emacs/download.html
emacs-27.1-x86_64-installer.exe をダンロードして、インストーラでサクッと入れてしまいます。
Emacsが起動します。
IMEの設定
これもドキュメントそのままです。.emacsに MELPAの設定をして、tr-ime をインストールします。
M-x package-install して tr-ime を入れます。(下の画像は M-x list-packages で出てくる画面)
tr-ime と その依存関係で w32-ime がインストールされます。
.emacs の設定例
他の設定もガシガシ入れていかないと、使える状態にはなりませんが、ひとまずは今回紹介したIME関連のところだけ掲載しておきます。フォント系の設定は大事だと思うのでいつかその辺も紹介してみたいと思います。
追記:フォントの設定についてはこちらに書いておく。
[Emacs] Windows10 の Emacs 27 のフォント設定をしてみる。
;; MELPAの設定
(customize-set-variable 'package-archives
`(,@package-archives
("melpa" . "https://melpa.org/packages/")))
;; tr-imeのDLLを自動でダウンロードしてくれる
(tr-ime-advanced-install)
(setq default-input-method "W32-IME")
;; IM のデフォルトを IME に設定
(setq default-input-method "W32-IME")
;; IME のモードライン表示設定
(setq-default w32-ime-mode-line-state-indicator "[--]")
(setq w32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
;; IME 初期化
(w32-ime-initialize)
;; IME 制御(yes/no などの入力の時に IME を off にする)
(wrap-function-to-control-ime 'universal-argument t nil)
(wrap-function-to-control-ime 'read-string nil nil)
(wrap-function-to-control-ime 'read-char nil nil)
(wrap-function-to-control-ime 'read-from-minibuffer nil nil)
(wrap-function-to-control-ime 'y-or-n-p nil nil)
(wrap-function-to-control-ime 'yes-or-no-p nil nil)
(wrap-function-to-control-ime 'map-y-or-n-p nil nil)
;; IME の未確定文字列のフォント設定
(set-frame-font "Meiryo UI-12" nil t)
(modify-all-frames-parameters '((ime-font . "Meiryo UI-12")))
自動的にDLLもダウンロードしてくれて、IMEパッチビルドと同等の使用感になりました。感謝。
これからEmacsを使ってみようと言う方は、こちらのサイトもおすすめです。
2020年代のEmacs入門
今はまったくコードは書かないのだけど、Emacs 以外のエディタはわしは使えないのじゃ。
コメント