Emacs isn't hard because the commands are complex — it's hard because nothing is where your muscle memory expects it. There's no Ctrl-S to save, no Ctrl-Z to undo. This guide teaches the notation, the handful of chords that carry 90% of a session, and then drills them until your fingers know them.
Emacs docs are unreadable until you know this, and it takes about a minute. Every binding you'll ever see is built from these pieces.
| Written | Means | |
|---|---|---|
| C-f | Hold Ctrl, press f. | "Control f" |
| M-f | Hold Alt (or press Esc first, then release), press f. | "Meta f" |
| C-M-f | Hold Ctrl+Alt together, press f. | both modifiers |
| C-x C-s | Two chords in sequence: Ctrl-x, then Ctrl-s. | a "prefix key" |
| C-x 2 | Ctrl-x, release, then plain 2. | sequence |
| RET / SPC / DEL | Enter / Space / Backspace. | named keys |
Esc f is identical to M-f.keyboard-quit — cancels whatever you started. Lost? Stuck in a half-typed chord? Press it. Press it twice. Nothing bad happens.
save-buffers-kill-terminal — quits Emacs. The famous "how do I exit" answer. It offers to save first.
Click any rung. These aren't trivia — each one explains why a whole family of keys is shaped the way it is.
C-x b switches, C-x C-b lists, C-x k kills one. Closing a buffer never touches the file unless you save.C-SPC, move point, and the text between them is the region — Emacs's selection. C-x C-x jumps between the two ends so you can adjust either. Verified: set-mark-command / exchange-point-and-mark.C-w kills the region, M-w copies it, C-y yanks the most recent. The trick: M-y immediately after C-y cycles backwards through older kills. Consecutive C-ks append into one entry.C-x and C-h open whole keymaps.
C-x is the general prefix (files, buffers, windows), C-h is help. Start one and pause — Emacs shows the options in the echo area.python-mode, dired-mode) and it rebinds keys to fit. Minor modes layer extras on top. C-h m describes everything active in the current buffer — the fastest way to learn a mode you've landed in.M-x runs execute-extended-command. Keybindings are shortcuts to named functions — nothing more. If you don't know a binding, type the name; Emacs completes it and then tells you the binding so you learn it for next time.The mode line is the status bar: modified flag, buffer name, position, and active modes. The echo area is the single line below it — it's where Emacs talks to you, and where M-x prompts appear.
If you learn only this screen you can edit real files productively. Every command name below was resolved from a live Emacs 29.3 — none are from memory.
This is the single most valuable habit, and the reason you never need to memorise everything. The help system knows the current state of your Emacs — including your own config and any package you installed.
| Ask | Key | Command |
|---|---|---|
| "What does this key do?" | C-h k | describe-key |
| "What does this function do?" | C-h f | describe-function |
| "Which commands mention word?" | C-h a | apropos-command |
| "What can I do in this buffer?" | C-h m | describe-mode |
| "Show me every active binding" | C-h b | describe-bindings |
| "Run the built-in tutorial" | C-h t | help-with-tutorial |
C-h t opens a hands-on walkthrough written by the Emacs maintainers that makes you practise in a live buffer. It's about 30 minutes and it's still the best introduction that exists — this page is a companion to it, not a replacement.Cancel the current command or a partly-typed chord. The universal escape hatch.
undo. Both work. Keep pressing to go further back.
Emacs auto-saves to #file#. If it or the machine died, this restores your work.
It's asking about unsaved buffers in the echo area. Answer it, or C-g to cancel.
You're given a task; press the real chord. Multi-key sequences like C-x C-s must be typed in order, exactly as Emacs expects — the display shows your progress through the sequence. The buffer below reacts so you can see what each command does.
Press Start to begin.
Your config lives in ~/.emacs.d/init.el (or ~/.config/emacs/init.el). It's Emacs Lisp, and it's evaluated at startup. Two lines worth having on day one:
Evaluate a line without restarting by putting point after it and pressing C-x C-e. M-x customize gives a menu-driven alternative if you'd rather not write Lisp yet.
C-x ( record, C-x ) stop, C-x e replay. Repetitive edits become one keystroke. Wildly underused.
C-x d — a file manager in a buffer. Rename, delete and operate on many files with the same editing keys you already know.
C-x r k / C-x r y — column-wise cut and paste. The tool for editing aligned data.
C-x r s save text, C-x r i insert, C-x r SPC store a position to jump back to.
M-% — replace with a yes/no prompt per hit. C-M-% does the same with regexps.
Built in. Outlines, agendas, literate code. Many people's entire reason for using Emacs.
Emacs ships with a package manager. M-x package-list-packages browses; M-x package-install installs. Add MELPA for the wider ecosystem:
C-h t is the hands-on tutorial, and C-h r opens the manual inside Emacs itself. The reference card this guide was built from ships with your install at etc/refcards/refcard.tex.etc/refcards/refcard.tex) and each one verified with
key-binding against a live emacs -Q — so every command name here is real.
Canonical docs: GNU Emacs Manual.