Emacsは内部的に、各キーマップに単一のイベントのみを記録しています。複数のイベントからなるキーシーケンスを解釈するには、キーマップの連鎖を辿ります。まず最初のキーマップが第1イベントの定義を提供し、それがまた別のキーマップとなり、そのキーマップを用いてシーケンス内の第2イベントをルックアップする、という具合に続きます。したがって、C-xやESCのようなプレフィックスキーには専用のキーマップがあり、そのプレフィックスの直後に続くイベントの定義が格納されています。
プレフィックスキーの定義は、通常、後続のイベントを検索するために使用するキーマップを指します。また、その定義を、関数定義が後続のキーマップとなっているLispシンボルとすることも可能です。効果は同じですが、これによりプレフィックスキーにコマンド名が付与され、そのキーが何のためのものであるかの説明として利用できます。したがって、C-x のバインディングはシンボル Control-X-prefix であり、その関数定義は C-x
コマンド用のキーマップとなっています。プレフィックスキーとしての C-c、C-x、C-h、および ESC の定義はグローバルマップに存在するため、これらのプレフィックスキーは常に利用可能です。
通常のプレフィックスキーとは別に、メニューバーを表す仮想的な「プレフィックスキー」が存在します。メニューバーのキーバインドに関する詳細な情報については、The Emacs Lisp Reference ManualのMenu Barを参照してください。ポップアップメニューを呼び出すマウスボタンイベントもプレフィックスキーです。詳細については、The Emacs Lisp Reference ManualのMenu Keymapsを参照してください。
一部のプレフィックスキーマップは、以下のような名前の変数に格納されています:
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
に続く文字用で、プロジェクト関連のコマンドに使用されます(プロジェクトの操作 を参照)。