Next: , Previous: , Up: Keymaps   [Contents][Index]


21.9 Controlling the Active Keymaps

Variable: global-map

この変数は、Emacsキーボード入力をコマンドにマップするデフォルトのグローバルキーマップを含む。通常は、このキーマップがグローバルキーマップである。デフォルトグローバルキーマップは、self-insert-commandをすべてのプリント文字にバインドするfullキーマップである。

これはグローバルキーマップ内のバインディングを変更する通常の手段だが、この変数に開始時のキーマップ以外の値を割り当てるべきではない。

Function: current-global-map

この関数は、カレントのグローバルキーマップをリターンする。デフォルトグローバルキーマップとカレントグローバルキーマップのいずれも変更していない場合は、global-mapと同じ値になる。リターン値はコピーではなく参照である。これにdefine-keyなどの関数を使用すると、グローバルバインディングが変更されるだろう。

(current-global-map)
⇒ (keymap [set-mark-command beginning-of-line …
            delete-backward-char])
Function: current-local-map

この関数はカレントバッファーのローカルキーマップをリターンする。ローカルキーマップがない場合はnilをリターンする。以下の例では、(Lisp Interactionモードを使用する)*scratch*バッファーにたいするキーマップは、ESC(ASCIIコード27)にたいするエントリーが別のsparseキーマップであるようなsparseキーマップである。

(current-local-map)
⇒ (keymap
    (10 . eval-print-last-sexp)
    (9 . lisp-indent-line)
    (127 . backward-delete-char-untabify)
    (27 keymap
        (24 . eval-defun)
        (17 . indent-sexp)))

current-local-mapはローカルキーマップのコピーではなく参照をリターンする。これにdefine-keyなどの関数を使用すると、ローカルバインディングが変更されるだろう。

Function: current-minor-mode-maps

この関数は、カレントで有効なメジャーモードのキーマップリストをリターンする。

Function: use-global-map keymap

この関数は、keymapを新たなカレントグローバルキーマップにする。これはnilをリターンする。

グローバルキーマップの変更は、異例である。

Function: use-local-map keymap

この関数は、keymapをカレントバッファーの新たなローカルキーマップにする。keymapnilの場合、そのバッファーはローカルキーマップをもたない。use-local-mapnilをリターンする。ほとんどのメジャーモードコマンドは、この関数を使用する。

Variable: minor-mode-map-alist

この変数は、アクティブかどうかに関わらず、特定の変数の値にたいするキーマップを示すalistである。要素は、以下のようになる:

(variable . keymap)

キーマップkeymapは、 variableが非nil値をもつときはアクティブである。通常、variableはメジャーモードを有効、または無効にする変数である。Keymaps and Minor Modesを参照のこと。

minor-mode-map-alistの要素が、minor-mode-alistの要素と異なる構造をもつことに注意されたい。マップは要素のCDRでなければならず、そうでなければ2つ目の要素にマップリストは用いられないだろう。CDRはキーマップ(リスト)、または関数定義がキーマップであるようなシンボルである。

1つ以上のマイナーモードキーマップがアクティブなとき、minor-mode-map-alist内で前のキーマップが優先される。しかし、互いが干渉しないようにマイナーモードをデザインすべきである。これを正しく行えば、順序は問題にならない。

マイナーモードについての詳細な情報は、Keymaps and Minor Modesを参照のこと。minor-mode-key-binding(see Functions for Key Lookupを参照)も確認されたい。

Variable: minor-mode-overriding-map-alist

この変数は、メジャーモードによる特定のマイナーモードにたいするキーバインディングのオーバーライドを可能にする。このalistの要素は、minor-mode-map-alistの要素のように、(variable . keymap)のような形式である。

ある変数がminor-mode-overriding-map-alistの要素として出現する場合、その要素により指定されるマップは、minor-mode-map-alist内の同じ変数にたいして指定される任意のマップを完全に置き換える。

すべてのバッファーにおいて、minor-mode-overriding-map-alistは自動的にバッファーローカルである。

Variable: overriding-local-map

この変数が非nilの場合は、バッファーのローカルキーマップ、テキストプロパティまたはoverlayによるキーマップ、マイナーモードキーマップのかわりに使用されるするキーマップを保持する。このキーマップが指定された場合、カレントグローバルキーマップ以外のアクティブだった他のすべてのマップがオーバーライドされる。

Variable: overriding-terminal-local-map

この変数が非nilの場合は、overriding-local-map、バッファーのローカルキーマップ、テキストプロパティまたはoverlayによるキーマップ、およびすべてのマイナーモードキーマップのかわりに使用されるキーマップを保持する。

この変数は、カレント端末にたいして常にローカルであり、バッファーローカルにできない。Multiple Terminalsを参照のこと。これはインクリメンタル検索モードの実装に使用される。

Variable: overriding-local-map-menu-flag

この変数が非nilの場合は、overriding-local-mapまたはoverriding-terminal-local-mapの値がメニューバーの表示に影響し得る。デフォルト値はnilなので、これらのマップ変数なメニューバーに影響をもたない。

これら2つのマップ変数は、たとえこれらの変数がメニューバー表示に影響し得るを与えない場合でも、メニューバーを使用してエンターされたキーシーケンスの実行には影響を与えることに注意されたい。したがって、もしメニューバーキーシーケンスが到着したら、そのキーシーケンスをルックアップ・実行する前に変数をクリアーすべきである。この変数を使用するモードは通常、何らかの方法でこれを行っている。これらのモードは通常“読み戻し(unread)”とexitにより処理されないイベントに応答する。

Variable: special-event-map

この変数は、スペシャルイベントにたいするキーマップを保持する。あるイベント型がこのキーマップ内でバインディングをもつ場合、それはスペシャルであり、そのイベントにたいするバインディングはread-eventにより直接実行される。Special Eventsを参照のこと。

Variable: emulation-mode-map-alists

この変数は、エミュレーションモードにたいして使用するキーマップalistのリストを保持する。この変数は、複数マイナーモードキーマップを使用するモードとパッケージを意図している。リストの各要素はminor-mode-map-alistと同じフォーマットと意味をもつキーマップalistか、そのようなalist形式の変数バインディングをもつシンボルである。それぞれのalist内の“アクティブ”なキーマップは、minor-mode-map-alistminor-mode-overriding-map-alistの前に使用される。

Function: set-transient-map keymap &optional keep

この関数は一時的(transient)なキーマップとしてkeymapを追加する。一時的なキーマップは1つ以上の後続するキーにたいして、他のキーマップより優先される。

通常、keymapは直後のキーをルックアップするために、1回だけ使用される。しかし、オプション引数predtの場合、そのマップはユーザーがkeymap内で定義されたキーをタイプするまでアクのままとなる。keymap内にないキーをユーザーがタイプしたとき、一時的キーマップは非アクティブとなり、そのキーにたいして通常のキールックアップが継続される。

predには関数も指定できる。。この場合、keymapがアクティブの間は、各コマンドの実行に優先して、その関数が引数なしで呼び出される。keymapがアクティブの間、関数は非nilをリターンすべきである。

この関数は、他のすべてのアクティブなキーマップに優先される変数overriding-terminal-local-mapにたいして、keymapを追加、または削除することにより機能する(Searching Keymapsを参照)。