内部的には、Emacsは各キーマップの1つのイベントだけを記録します。複数イベントのキーシーケンスの解釈は、キーマップの連鎖を生じます。最初のイベントにたいして最初のキーマップが定義を与え、シーケンス内の2番目のイベントを探すのに他のキーマップが使用され...と連鎖していきます。したがってC-xやESCなどのプレフィクスキーは独自のキーマップをもち、それらはプレフィクスの直後のイベントにたいする定義を保持します。
プレフィクスキーの定義は通常、それに続くイベントを探すのに使用するキーマップです。プレフィクスキーの定義として、関数定義がキーマップであるようなLispシンボルを指定することもできます。効果は同じですが、そのプレフィクスキーが何のためなのか説明するためのコマンド名を提供します。たとえば、C-xのバインディングはシンボルControl-X-prefix
で、このシンボルの関数定義は、C-xコマンドにたいするキーマップです。プレフィクスキーとしてのC-c、C-x、C-h、ESCは、グローバルキーマップに定義されているので、これらのプレフィクスキーは常に利用できます。
通常のプレフィクスキー以外に、“架空のプレフィクスキー(fictitious prefix key)”もあり、これらはメニューバーを表します。メニューバーのキーバインディングについての特別な情報は、Menu Bar in The Emacs Lisp Reference Manualを参照してください。ポップアップメニューを呼び出すマウスボタンイベントもプレフィクスキーです。詳細については、Menu Keymaps in The Emacs Lisp Reference Manualを参照してください。
いくつかのキーマップは、名前のついた変数に格納されています:
ctl-x-map
は、C-xの後の文字に使用されるマップにたいする変数名です。
help-map
は。C-hの後の文字のためのマップです。
esc-map
は、ESCの後の文字のためのマップです。したがって、すべてのメタ文字がこのマップで定義されています。
ctl-x-4-map
は、C-x 4の後の文字のためのマップです。
mode-specific-map
は、C-cの後の文字のためのマップです。
project-prefix-map
はプロジェクト関連のコマンドに使用される、C-x
pの後の文字のためのマップです(プロジェクトで作業するを参照)。