Next: Keymap Basics, Up: Keymaps [Contents][Index]
キーシーケンス(key
sequence)、短くはキー(key)とは、1つの単位を形成する1つ以上の入力イベントのシーケンスです。入力イベントには文字、ファンクションキー、マウスアクション、またはiconify-frame
のようなEmacs外部のシステムイベントが含まれます(Input Eventsを参照)。キーシーケンスにたいするEmacs
Lispの表現は文字列かベクターです。特に明記しない限り、引数としてキーシーケンスを受け取るEmacs
Lisp関数は両方の表現を処理することができます。
文字列表現では、たとえば、"a"
はa、"2"
は2を表すといったように、英数字はその文字自身を意味します。コントロール文字イベントは部分文字列"\C-"
、メタ文字は"\M-"
によりプレフィクスされます。たとえば"\C-x"
はキーC-xを表します。それらに加えて、TAB、RET、ESC、DELなどのイベントはそれぞれ"\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を参照してください。
この関数はテキスト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]