A key sequence, or key for short, is a sequence of one
or more input events that form a unit. Input events include
characters, function keys, mouse actions, or system events external to
Emacs, such as
iconify-frame (see Input Events).
The Emacs Lisp representation for a key sequence is a string or
vector. Unless otherwise stated, any Emacs Lisp function that accepts
a key sequence as an argument can handle both representations.
In the string representation, alphanumeric characters ordinarily
stand for themselves; for example,
'a' represents a
'2' represents 2. Control character events are
prefixed by the substring
'\C-', and meta characters by
'\M-'; for example,
'\C-x' represents the key C-x.
In addition, the TAB, RET, ESC, and DEL events
are represented by
'\d' respectively. The string representation of a complete key
sequence is the concatenation of the string representations of the
constituent events; thus,
'\C-xl' represents the key sequence
Key sequences containing function keys, mouse button events, system events, or non-ASCII characters such as C-= or H-a cannot be represented as strings; they have to be represented as vectors.
In the vector representation, each element of the vector represents
an input event, in its Lisp form. See Input Events. For example,
[?\C-x ?l] represents the key sequence C-x l.
For examples of key sequences written in string and vector representations, Init Rebinding in The GNU Emacs Manual.
This function converts the text keyseq-text (a string constant)
into a key sequence (a string or vector constant). The contents of
keyseq-text should use the same syntax as in the buffer invoked
by the C-x C-k RET (
kmacro-edit-macro) command; in
particular, you must surround function key names with
‘<…>’. See Edit Keyboard Macro in The GNU Emacs
(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]