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


21.1 Key Sequences

キーシーケンス(key sequence)、短くはキー(key)とは、1つの単位を形成する1つ以上の入力イベントのシーケンスです。入力イベントには文字、ファンクションキー、マウスアクション、またはiconify-frameのようなEmacs外部のシステムイベントが含まれます(Input Eventsを参照)。キーシーケンスにたいするEmacs Lispの表現は文字列かベクターです。特に明記しない限り、引数としてキーシーケンスを受け取るEmacs Lisp関数は両方の表現を処理することができます。

文字列表現では、たとえば、"a"a"2"2を表すといったように、英数字はその文字自身を意味します。コントロール文字イベントは部分文字列"\C-"、メタ文字は"\M-"によりプレフィクスされます。たとえば"\C-x"はキーC-xを表します。それらに加えて、TABRETESCDELなどのイベントはそれぞれ"\t""\r""\e""\d"で表されます。複雑なキーシーケンスの文字列表現は、イベント成分の文字列表現を結合したものです。したがって"\C-xl"はキーシーケンスC-x lを表します。

キーシーケンスにはファンクションキー、マウスボタンイベント、システムイベント、またはC-=H-aのような文字列で表現できない非ASCII文字が含まれます。これらはベクターとして表現される必要があります。

ベクター表現ではベクターの各要素は1つの入力イベントをイベントのLisp形式で表します。Input Eventsを参照してください。たとえば、ベクター[?\C-x ?l]はキーシーケンスC-x lを表します。

キーシーケンスを文字列やベクターによる表現で記述する例は、Init Rebinding in The GNU Emacs Manualを参照してください。

Function: kbd keyseq-text

この関数はテキストkeyseq-text(文字列定数)をキーシーケンス(文字列かベクターの定数)に変換する。keyseq-textの内容はC-x C-k RET(kmacro-edit-macro) コマンドにより呼び出されたバッファー内と同じ構文を使用するべきであ特にファンクションキーの名前は‘<…>’で囲まなければならない。Edit Keyboard Macro in The GNU Emacs Manualを参照のこと。

(kbd "C-x") ⇒ "\C-x"
(kbd "C-x C-f") ⇒ "\C-x\C-f"
(kbd "C-x 4 C-f") ⇒ "\C-x4\C-f"
(kbd "X") ⇒ "X"
(kbd "RET") ⇒ "\^M"
(kbd "C-c SPC") ⇒ "\C-c "
(kbd "<f1> SPC") ⇒ [f1 32]
(kbd "C-M-<down>") ⇒ [C-M-down]