The Basic Key Bindings Of Emacs
Table of Contents
This is a summary of most of the Emacs key bindings that can be found
in the Emacs tutorial. You can start the tutorial inside Emacs with
C-h t. The tutorial covers the basics of movement, editing, window
and buffer management and much more. The most important key binding to
remember is M-x; to get access to all of Emacs' commands.
1 Buffer movement
| Key binding | Function | Notes |
|---|---|---|
| C-v | scroll-up-command | Scroll the window up a full screen |
| M-v | scroll-down-command | Scroll the window down a full window |
| C-l | recenter-top-bottom | Center the buffer around the cursor |
2 Cursor movement
| Key binding | Function | Notes |
|---|---|---|
| C-f | forward-char | Move the cursor forward one character |
| C-b | backward-char | Move the cursor backward one character |
| C-p | previous-line | Move the cursor to the previous line |
| C-n | next-line | Move the cursor to the next line |
| M-f | forward-word | Move the cursor forward one word |
| M-b | backward-word | Move the cursor backward one word |
| C-a | move-beginning-of-line | Move the cursor to the beginning of the line |
| C-e | move-end-of-line | Move the cursor to the end of the line |
| M-a | backward-sentence | Move the cursor backwards one sentence |
| M-e | forward-sentence | Move the cursor forwards one sentence |
| M-< | beginning-of-buffer | Move to the beginning of the buffer |
| M-> | end-of-buffer | Move to the end of the buffer |
3 Universal argument
To supply an emacs command a numeric argument, the repeat count or
prefix argument, prefix it with C-u and then the digits before you
type the command. Alternatively hold Meta will typing the digits. For
example C-u 15 C-f moves the cursor 15 characters forward. Negative
are also possible e.g. C-u -15 C-f to move backwards 15 characters.
The universal argument also work on regular characters, e.g. C-u 8 *
results in ********.
4 Quit
To quit in the middle of typing a key cord use C-g. It can also be
used when Emacs stops responding.
5 Windows
Windows are where 8 are shown. You can have multiple windows in a single frame (see 10 for more information) and you can also have the same buffer open in multiple windows.
| Key binding | Function | Notes |
|---|---|---|
| C-x 1 | delete-other-windows | delete all windows except the focussed window |
| C-x 2 | split-window-below | create a new window below |
| C-x 3 | split-window-right | create a new window to the right |
| C-x o | other-window | change focus to another window |
| C-M-v | scroll-other-window | a negative prefix scrolls the other way C-u - |
6 Editing
6.1 Killing, Deleting and Yanking
| Key binding | Function | Notes |
|---|---|---|
| <DEL> | kill-backward-char | <DEL> := backspace |
| C-d | delete-char | delete character under the cursor |
| M-<DEL> | backward-kill-word | kill the word before the cursor |
| M-d | kill-word | kill the word after the cursor |
| C-k | kill-line | kill the line after the cursor |
| M-k | kill-sentence | kill the sentence after the cursor |
| C-w | kill-region | |
| C-y | yank | 'paste' text from the kill ring |
| M-y | yank-pop | search the kill ring by repeatedly pressing M-y |
6.2 Undo-ing
C-/, C-_ and C-x u can be used to undo. In order to redo
(i.e. undo your undos) you must 'push' your undos to the
undo-ring. You do this by pressing C-g (or any movement such as
C-f) and then use C-/ (or one of the other undo commands) to undo
your undos.
| Key binding | Function | Notes |
|---|---|---|
| C-/, C-_, C-x u | undo | undo any edit |
7 Files
| Key binding | Function | Notes |
|---|---|---|
| C-x C-f | find-file | open a file for editing |
| C-x C-s | save-buffer | save the file |
Note that the file (and the directory it lives in) opened with C-x
C-f does not need to exist. Once you save the file, C-x C-s Emacs
will create the file and directories if necessary.
8 Buffers
A buffer is where Emacs stores the text contained in a file or the
messages shown in the minibuffer (called the *Messages*) or any
other piece of text. A buffer will remain accessible within Emacs
until you M-x kill-emacs or you M-x kill-buffer the buffer.
| Key binding | Function | Notes |
|---|---|---|
| C-x C-b | list-buffers | open a buffer listing all buffers |
| C-x b | switch-to-buffer | switch to a buffer |
| C-x s | save-some-buffers | interactively save open buffers |
9 Searching
| Key binding | Function | Notes |
|---|---|---|
| C-s | isearch-forward | incrementally search forward |
| C-r | isearch-backward | incrementally search backward |
10 Frames
An Emacs frame is what most people would call a window.
| Key binding | Function | Notes |
|---|---|---|
| C-x 5 2 | make-frame-command | creates a new frame |
| C-x 5 0 | delete-frame |
11 Recursive Editing
Recursive editing is a topic in itself but recursive editing is
indicated by the [] around the major mode on the mode line e.g.
[(Fundamental)] instead of (Fundamental).
| Key binding | Function | Notes |
|---|---|---|
| <ESC> <ESC> <ESC> | keyboard-escape-quit | leave recursive editing level |
12 Getting Help From Emacs
The describe-* functions are really useful when you are hacking on
your emacs.
| Key binding | Function | Notes |
|---|---|---|
| C-h c | describe-key-briefly | Show the function ran by a keybinding in the message buffer |
| C-h k | describe-key | Display more info on a keybinding |
| C-h x | describe-command | Display help buffer for a command |
| C-h a | apropos-command | List all command containing a KEY word |
| C-h v | describe-variable | |
| C-h f | describe-function |