入力メソッド(input methods)はキーボードから非ASCII文字を簡単に入力する手段を提供します。プログラムが読み取ることを意図して非ASCII文字とエンコーディングを相互に変換するコーディングシステムとは異なり、入力メソッドはヒューマンフレンドリーなコマンドを提供します(テキストを入力するためにユーザーが入力メソッドを使う方法についてはInput Methods in The GNU Emacs Manualを参照)。入力メソッドの定義方法はまだこのマニュアルにはありませんが、ここではそれらの使い方について説明します。
現在のところ入力メソッドは文字列で名前をもっていますが、将来的には入力メソッド名としてシンボルも利用可能になるかもしれません。
この変数はカレントバッファーで現在アクティブな、入力メソッドの名前を保持する(方法に関わらずセット時には各バッファーで自動的にローカルになる)。バッファーで現在アクティブな入力メソッドがなければ値は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
です。単一イベントの読み取りと入力メソッドの呼び出しを参照してください。