Copyright (C) 2000-2012 |
GNU Info (elisp)Keyboard EventsKeyboard Events --------------- 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 Note: 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 2**27 bit in the character code indicates a character typed with the meta key held down. control The 2**26 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 2**26 (assuming the terminal supports non-ASCII control characters). shift The 2**25 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 2**25 bit for those characters. However, ASCII provides no way to distinguish `C-A' from `C-a', so Emacs uses the 2**25 bit in `C-A' and not in `C-a'. hyper The 2**24 bit in the character code indicates a character typed with the hyper key held down. super The 2**23 bit in the character code indicates a character typed with the super key held down. alt The 2**22 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' (Note: 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 (Note: Changing Key Bindings). The function `event-convert-list' converts such a list into an event type (Note: Classifying Events). automatically generated by info2www version 1.2.2.9 |