Commands for Binding Keys
=========================
This section describes some convenient interactive interfaces for
changing key bindings. They work by calling `define-key'.
People often use `global-set-key' in their init files (Note:Init
File) for simple customization. For example,
(global-set-key "\C-x\C-\\" 'next-line)
or
(global-set-key [?\C-x ?\C-\\] 'next-line)
or
(global-set-key [(control ?x) (control ?\\)] 'next-line)
redefines `C-x C-\' to move down a line.
(global-set-key [M-mouse-1] 'mouse-set-point)
redefines the first (leftmost) mouse button, typed with the Meta key, to
set point where you click.
Be careful when using non-ASCII text characters in Lisp
specifications of keys to bind. If these are read as multibyte text, as
they usually will be in a Lisp file (Note:Loading Non-ASCII), you
must type the keys as multibyte too. For instance, if you use this:
(global-set-key "o"" 'my-function) ; bind o-umlaut
or
(global-set-key ?o" 'my-function) ; bind o-umlaut
and your language environment is multibyte Latin-1, these commands
actually bind the multibyte character with code 2294, not the unibyte
Latin-1 character with code 246 (`M-v'). In order to use this binding,
you need to enter the multibyte Latin-1 character as keyboard input.
One way to do this is by using an appropriate input method (Note:Input
Methods.).
If you want to use a unibyte character in the key binding, you can
construct the key sequence string using `multibyte-char-to-unibyte' or
`string-make-unibyte' (Note:Converting Representations).
- Command: global-set-key key definition
This function sets the binding of KEY in the current global map to
DEFINITION.
(global-set-key KEY DEFINITION)
==
(define-key (current-global-map) KEY DEFINITION)
- Command: global-unset-key key
This function removes the binding of KEY from the current global
map.
One use of this function is in preparation for defining a longer
key that uses KEY as a prefix--which would not be allowed if KEY
has a non-prefix binding. For example:
(global-unset-key "\C-l")
=> nil
(global-set-key "\C-l\C-l" 'redraw-display)
=> nil
This function is implemented simply using `define-key':
(global-unset-key KEY)
==
(define-key (current-global-map) KEY nil)
- Command: local-set-key key definition
This function sets the binding of KEY in the current local keymap
to DEFINITION.
(local-set-key KEY DEFINITION)
==
(define-key (current-local-map) KEY DEFINITION)
- Command: local-unset-key key
This function removes the binding of KEY from the current local
map.
(local-unset-key KEY)
==
(define-key (current-local-map) KEY nil)