前: Coding Systems, 上: Non-ASCII Characters


32.11 入力方式

入力方式(input method)は、 キーボードから非ASCII文字を入力する簡便な方法を提供します。 プログラムが読み取るための非ASCII文字の符号変換を行う コーディングシステムと異なり、 入力方式は人間向けのコマンドを提供します。 (テキストを入力するための入力方式の使い方については、 see 入力方式。) 入力方式の定義方法については本書ではまだ明文化してありませんが、 ここではそれらの使い方について述べます。

各入力方式には名前があります。 それは現在のところ文字列ですが、 将来は入力方式名としてシンボルも使えるようになります。

— 変数: current-input-method

この変数は、カレントバッファで現在活性な入力方式の名前を保持する。 (この変数に設定すると自動的にバッファローカルになる。) nilであると、バッファでは入力方式が活性ではない。

— 変数: default-input-method

この変数は、入力方式を選ぶコマンド向けのデフォルトの入力方式を保持する。 current-input-methodと異なり、この変数は通常はグローバルである。

— 機能: set-input-method input-method

この関数は、カレントバッファにおいて 入力方式input-methodを活性にする。 default-input-methodにもinput-methodを設定する。 input-methodnilであると、 この関数はカレントバッファの入力方式を不活性にする。

— 機能: read-input-method-name prompt &optional default inhibit-null

この関数は、プロンプトpromptを用いてミニバッファで入力方式名を読む。 defaultnil以外であると、 ユーザーが空の入力をするとデフォルトでこれを返す。 しかし、inhibit-nullnil以外であると、 空の入力はエラーを通知する。

戻り値は文字列である。

— 変数: input-method-alist

この変数は、使用可能なすべての入力方式を定義する。 各要素は1つの入力方式を定義し、つぎの形であること。

          (input-method language-env activate-func
           title description args...)
     

ここで、input-methodは入力方式名であり文字列である。 language-envも別の文字列であり当該入力方式を 推奨する言語環境の名前である。 (これは説明文目的のためだけである。)

titleは、この入力方式が活性である場合に モード行に表示される文字列である。 descriptionはこの入力方式と何向きであるかを 説明する文字列である。

activate-funcは、この入力方式を活性にするために呼び出す関数である。 argsがあればactivate-funcへの引数として渡される。 つまり、activate-funcの引数はinput-methodargsである。

入力方式に対する基本的なインターフェイスは 変数input-method-functionを介して行います。 See Reading One Event