最終更新日: 2019-01-06 日 20:54
ホーム | 文書トップ | 目次

NTEmacs IMEパッチ

Table of Contents

概要

IMEパッチとは、EmacsのIME使用に挙動の改善を行うパッチ(ソースコード変更を適用するもの)である。

Emacsは多言語対応されているのだが、Windows上でIMEを使用する場合の挙動に難がある。

EmacsのIME使用にまつわる挙動の改善を行うパッチは、Emacsのバージョンアップに追従して識者の方がメンテし続けており、これが通称「IMEパッチ」である。

IMEパッチにはいくつか派生があるが、ここでは、Emacsのソースコードに対する、IMEに関係したパッチを「IMEパッチ」と呼ぶことにする。

本サイトで採用している IMEパッチ

下記の通り、その時点で識者の方が提供されているもの、又は、自前で作成したパッチを採用している。

  • 26.1
    • (自前の)簡易IME対応
    • (自前の)最小限IME対応1

「簡易IME対応」とは「未確定文字のインライン表示」の対応(これ)を指していて、 「最小限IME対応1」とは「未確定文字のインライン表示」+「最低限 w32-ime.el が使える」という対応(これ)を指している。

  • 25.1、25.2、25.3
    • (自前の)簡易IME対応
  • 24.4、24.5
    • (自前の)簡易IME対応
    • rzl24ozi氏のIMEパッチ
  • 23.2、23.3、23.4、24.2、24.3
    • gnupackのIMEパッチ対応版
  • 23.1
    • NTEmacs JP ProjectのIMEパッチ

IMEパッチの代表的な機能

未確定文字のインライン表示

通常の日本語対応のアプリケーションでは、意識することは無いのだが、「未確定文字のインライン表示」というのは下記のような挙動のことを指している。

IMEを有効にして文字を入力したときに、(変換するしないを判断して)確定する前の文字列が、カーソル位置にそのまま表示されるのが、使いやすい。

ime_unfixed_literal.png

IME状態のmodeline表示

Meadow由来の lisp/international/w32-ime.el で実現されている機能。

OSのIMEの状態表示にて代用はできる。

w32-ime-mode-line-state-indicator、w32-ime-mode-line-state-indicator-list 等の設定をしない場合

  • IME無効時

ime_invalid_default.png

  • IME有効時

ime_valid_default.png

後述の設定をすれば、下記のような表示にすることができる

  • IME無効時

ime_invalid.png

  • IME有効時

ime_valid.png

IME有効時のコマンド入力を可能にする

IMEの使用にあたって、Emacsとしてのコマンド入力に関しても課題がある。

例えば、IME有効の状態で、C-x 2 で split-window-below を行おうとすると、C-x まではいいのだが、2が未確定文字として入力されてしまい、コマンドとして認識されない。 いわゆるIMEパッチではこの部分の対応がされている。 (ソースは未確認)

ctrl_x_2_ng.png

IMEパッチの設定

Meadow由来の lisp/international/w32-ime.el を有効にし、必要な設定をする

設定例

(when (locate-library "w32-ime")
    (progn
      (w32-ime-initialize)
      (setq default-input-method "W32-IME")
      (setq-default w32-ime-mode-line-state-indicator "[--]")
      (setq w32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
))

IMEパッチの歴史

IMEパッチは、これまで有志の方々が公開されてきた。

技術情報

w32-ime.el

現在のIMEパッチのキモとなっているもの。

IMEパッチ解析

参考

Win32API IME関連

設定関連

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)