キーマップにおける有効なエントリーには、いくつかのタイプが存在します。あるキー シーケンスに対し、 (キーマップでのエントリー検索には)そのキーの最後の文字を用 います。
keymap
(この)キーはプレフィックスで、 (実際のコマンドに達するため) 残りの文字 をシーケンス(部分)として keymap を検索します。
nil
(この)キーは、このマップでは定義されません。
string
string を(あたかも)キーボードマクロであるかのように用います。 string 中の文字をあたかもそれが(もとのキーのかわりに)タイプされたかのように用 います。
list
list が (keymap . char) の場合、マップ keymap 中の char の定義を用いま す。 list の car が lambda の場合、(それが interactive である場合) そ の lambda 式を評価します。
symbol
symbol の関数セルを調べ、それが関数の場合 (それが interactive である場 合) その関数を評価します。 (特別な目的で)2種類の関数 ingore と
undefined を利用することができます。 symbol の関数セルがキーマップを持つ場合、もとのキーマップのエントリー がそのキーマップを持っていたものとして考えます。このため、このキーはプ レフィックスキーであることになります。 symbol の関数セルはまた(別の symbol であることも含み) 上記のもののいずれかを持つことがあり、(この場 合)上記の分析を行ないます。 symbol は(void 関数セルを持ち)バインドされてないことがあります。 (キー マップで)バインドされてないことを見い出すとエラーを出します。これは、 あるキーをプレフィックスキーとしてバインドするのを防ぐのに用いることが できます。
Function: lookpu-key keymap keys
この関数は、 keymap 中の keys の定義を返します。数を返す場合、これは keys が "長すぎる" こと(この(諸)文字が keymap における有効なシーケンスではない ということ)を示します。この数は、"keys のプレフィックスでないコマンドの前 に (訳注:プレフィックスが)何文字存在するか" を示します。
(lookup-key (current-global-map) "\C-x\C-f") => find-file (lookup-key (current-global-map) "\C-x\C-f12345") => 2
Function: ignore &rest args
アーギュメントを無視し、nil を返します。 (キーマップで)キーを無視するのに 用います。
Command: undefined
SourceFile subr.el (キーマップで)キーを未定義にするのに用います。呼ばれる とエラーを出します。