GNU Emacs Manual - Init Rebinding

Go to the first, previous, next, last section, table of contents.

### Rebinding Keys in Your Init File

If you have a set of key bindings that you like to use all the time, you can specify them in your ``.emacs'` file by using their Lisp syntax.

The simplest method for doing this works for ASCII characters and Meta-modified ASCII characters only. This method uses a string to represent the key sequence you want to rebind. For example, here's how to bind `C-z` to `shell`:

    (global-set-key "\C-z" 'shell)

This example uses a string constant containing one character, `C-z`. The single-quote before the command name, `shell`, marks it as a constant symbol rather than a variable. If you omit the quote, Emacs would try to evaluate `shell` immediately as a variable. This probably causes an error; it certainly isn't what you want.

Here is another example that binds a key sequence two characters long:

    (global-set-key "\C-xl" 'make-symbolic-link)

When the key sequence includes function keys or mouse button events, or non-ASCII characters such as `C-=` or `H-a`, you must use the more general method of rebinding, which uses a vector to specify the key sequence.

The way to write a vector in Emacs Lisp is with square brackets around the vector elements. Use spaces to separate the elements. If an element is a symbol, simply write the symbol's name--no other delimiters or punctuation are needed. If a vector element is a character, write it as a Lisp character constant: ``?'` followed by the character as it would appear in a string.

Here are examples of using vectors to rebind `C-=` (a control character outside of ASCII), `H-a` (a Hyper character; ASCII doesn't have Hyper at all), `F7` (a function key), and `C-Mouse-1` (a keyboard-modified mouse button):

    (global-set-key [?\C-=] 'make-symbolic-link)
    (global-set-key [?\H-a] 'make-symbolic-link)
    (global-set-key [f7] 'make-symbolic-link)
    (global-set-key [C-mouse-1] 'make-symbolic-link)

You can use a vector for the simple cases too. Here's how to rewrite the first two examples, above, to use vectors:

    (global-set-key [?\C-z] 'shell)

    (global-set-key [?\C-x ?l] 'make-symbolic-link)

Go to the first, previous, next, last section, table of contents.