This section describes some convenient interactive interfaces for
changing key bindings. They work by calling
People often use
global-set-key in their init files
(see Init File) for simple customization. For example,
(global-set-key (kbd "C-x C-\\") 'next-line)
(global-set-key [?\C-x ?\C-\\] 'next-line)
(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, entered 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 (see Loading Non-ASCII), you must type the keys as multibyte too. For instance, if you use this:
(global-set-key "ö" 'my-function) ; bind o-umlaut
(global-set-key ?ö 'my-function) ; bind o-umlaut
and your language environment is multibyte Latin-1, these commands actually bind the multibyte character with code 246, not the byte code 246 (M-v) sent by a Latin-1 terminal. In order to use this binding, you need to teach Emacs how to decode the keyboard by using an appropriate input method (see Input Methods in The GNU Emacs Manual).
This function sets the binding of key in the current global map to binding.
(global-set-key key binding) ≡ (define-key (current-global-map) key binding)
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 equivalent to using
define-key as follows:
(global-unset-key key) ≡ (define-key (current-global-map) key nil)
This function sets the binding of key in the current local keymap to binding.
(local-set-key key binding) ≡ (define-key (current-local-map) key binding)
This function removes the binding of key from the current local map.
(local-unset-key key) ≡ (define-key (current-local-map) key nil)