入力メソッドは、キーボードからASCII以外の文字を便利に入力するための手段を提供します。プログラムが読み取ることを想定したエンコーディングとの間でASCII以外の文字を変換するコーディングシステムとは異なり、入力メソッドは人間にとって使いやすいコマンドを提供します。(ユーザーが入力メソッドを用いてテキストを入力する方法については、The GNU Emacs ManualのInput Methodsを参照してください。)入力メソッドの定義方法については、本マニュアルではまだ解説していませんが、ここではその使用方法について説明します。
各入力メソッドには名前があり、現在は文字列となっています。将来的には、シンボルも入力メソッド名として利用可能になるかもしれません。
この変数には、現在のバッファで有効になっている入力メソッドの名前が格納されます。(どのような方法で設定しても、各バッファ内で自動的にローカル変数となります。)現在、バッファ内で有効な入力メソッドがない場合は
nil となります。
この変数には、入力メソッドを選択するコマンドのデフォルトの入力メソッドが格納されます。current-input-methodとは異なり、この変数は通常グローバルです。
このコマンドは、現在のバッファに対して入力メソッド input-method
を有効にします。また、default-input-method を input-method に設定します。input-method が
nil である場合、このコマンドは現在のバッファのすべての入力メソッドを無効にします。
この関数は、ミニバッファを用いて入力メソッド名を読み込み、prompt
でプロンプトを表示します。ユーザーが空の入力を入力した場合、default が nil 以外であれば、デフォルトでその値が返されます。ただし、inhibit-null が nil
以外である場合、空の入力はエラーを示します。
戻り値は文字列です。
この変数は、サポートされているすべての入力メソッドを定義します。各要素は1つの入力メソッドを定義し、以下の形式である必要があります:
(input-method language-env activate-func title description args...)
ここで input-method は入力メソッド名(文字列)であり、language-env は別の文字列で、この入力メソッドが推奨される言語環境の名称です。(これはあくまでドキュメント上の表記です。)
activate-funcは、このメソッドを有効にするために呼び出す関数です。argsがある場合は、activate-funcの引数として渡されます。まとめると、activate-funcの引数はinput-methodとargsとなります。
title は、このメソッドが有効な間にモードラインに表示される文字列です。 description は、このメソッドの内容と用途を説明する文字列です。
入力メソッドの基本的なインターフェースは、変数 input-method-function
を介して提供されます。単一イベントの読み取りおよび入力メソッドの呼び出しを参照してください。