次: Prefix Keys, 前: Creating Keymaps, 上: Keymaps
キーマップでは、親キーマップ(parent keymap)と呼ぶ別のキーマップの バインディングを継承できます。 そのようなキーマップはつぎのようになります。
(keymap bindings... . parent-keymap)
このキーマップは、キーを探索する時点において parent-keymapが有するすべてのバインディングを継承しますが、 それらにはbindingsが追加されたり優先します。
define-keyや他のキーバインディング関数でparent-keymapの
バインディングを変更すると、それらの変更は、
bindingsで隠されない限り継承側のキーマップからも見えます。
その逆は真ではありません。
define-keyで継承側のキーマップを修正すると、
それはbindingsに影響するだけでparent-keymapには影響しません。
親キーマップを用いたキーマップを作成する正しい方法は、
set-keymap-parentを使うことです。
親キーマップを用いたキーマップを直接作成するようなコードがある場合には、
set-keymap-parentを用いるようにプログラムを変更してください。
キーマップkeymapの親キーマップとしてparentを設定し、 parentを返す。 parentが
nilであると、 この関数はkeymapに親キーマップをいっさい与えない。keymapに(プレフィックスキー用のバインディングである) サブマップがあれば、それらもparentが指定するプレフィックスキーを 反映する新たな親マップを受け取る。
text-mode-mapからキーマップを継承する方法を示します。
(let ((map (make-sparse-keymap)))
(set-keymap-parent map text-mode-map)
map)