GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Sequences.html ・ emacs-doc.conao3.com

23.12 キーシーケンス

キーシーケンス(略してキー)とは、一つの単位を構成する1つ以上の入力イベントの並びのことです。入力イベントには、文字、ファンクションキー、マウス操作、あるいはiconify-frameのようなEmacs外部のシステムイベントが含まれます(入力イベントを参照)。キーシーケンスの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文字を含むキーシーケンスは、文字列として表現できず、ベクトルとして表現する必要があります。

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

文字列およびベクトル表現で記述されたキーシーケンスの例については、The GNU Emacs ManualのInit Rebindingを参照してください。

関数: kbd keyseq-text

この関数は、テキスト keyseq-text(文字列定数)をキーシーケンス(文字列またはベクトル定数)に変換します。keyseq-text の内容は、C-x C-k RET (kmacro-edit-macro) コマンドによって呼び出されるバッファと同じ構文を用いる必要があります。特に、関数キー名は ‘<…>’ で囲む必要があります。The GNU Emacs Manual の Edit Keyboard Macro を参照してください。

(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]

kbd 関数は非常に寛容で、使用されている構文が完全に準拠していなくても、妥当な値を返そうとします。構文が実際に有効かどうかを確認するには、key-valid-p 関数を使用してください。