Go to the first, previous, next, last section, table of contents.
There are two kinds of input you can get from the keyboard: ordinary
keys, and function keys. Ordinary keys correspond to characters; the
events they generate are represented in Lisp as characters. The event
type of a character event is the character itself (an integer); see
section Classifying Events.
An input character event consists of a basic code between 0 and
524287, plus any or all of these modifier bits:
- meta
-
The
bit in the character code indicates a character
typed with the meta key held down.
- control
-
The
bit in the character code indicates a non-ASCII
control character.
ASCII control characters such as C-a have special basic
codes of their own, so Emacs needs no special bit to indicate them.
Thus, the code for C-a is just 1.
But if you type a control combination not in ASCII, such as
% with the control key, the numeric value you get is the code
for % plus
(assuming the terminal supports non-ASCII
control characters).
- shift
-
The
bit in the character code indicates an ASCII control
character typed with the shift key held down.
For letters, the basic code itself indicates upper versus lower case;
for digits and punctuation, the shift key selects an entirely different
character with a different basic code. In order to keep within the
ASCII character set whenever possible, Emacs avoids using the
bit for those characters.
However, ASCII provides no way to distinguish C-A from
C-a, so Emacs uses the
bit in C-A and not in
C-a.
- hyper
-
The
bit in the character code indicates a character
typed with the hyper key held down.
- super
-
The
bit in the character code indicates a character
typed with the super key held down.
- alt
-
The
bit in the character code indicates a character typed with
the alt key held down. (On some terminals, the key labeled ALT
is actually the meta key.)
It is best to avoid mentioning specific bit numbers in your program.
To test the modifier bits of a character, use the function
event-modifiers
(see section Classifying Events). When making key
bindings, you can use the read syntax for characters with modifier bits
(`\C-', `\M-', and so on). For making key bindings with
define-key
, you can use lists such as (control hyper ?x)
to
specify the characters (see section Changing Key Bindings). The function
event-convert-list
converts such a list into an event type
(see section Classifying Events).
Go to the first, previous, next, last section, table of contents.