emacs · interactive guide
gnu emacs 29

Learn Emacs by pressing the keys.

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.

step 1 / 6 every binding verified against a live Emacs 29.3

Read the notation first

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.

WrittenMeans
C-fHold Ctrl, press f."Control f"
M-fHold Alt (or press Esc first, then release), press f."Meta f"
C-M-fHold Ctrl+Alt together, press f.both modifiers
C-x C-sTwo chords in sequence: Ctrl-x, then Ctrl-s.a "prefix key"
C-x 2Ctrl-x, release, then plain 2.sequence
RET / SPC / DELEnter / Space / Backspace.named keys
Meta is Alt on virtually every modern keyboard. If Alt is swallowed by your terminal or window manager, press Esc and release it, then the key — Esc f is identical to M-f.

The two you need before anything else

C-g

keyboard-quit — cancels whatever you started. Lost? Stuck in a half-typed chord? Press it. Press it twice. Nothing bad happens.

C-x C-c

save-buffers-kill-terminal — quits Emacs. The famous "how do I exit" answer. It offers to save first.

The vocabulary is deliberate. Emacs calls things by its own names, and the docs never translate: a buffer is the text in memory, a file is what's on disk, a window is a pane inside the app, a frame is what your OS calls a window, point is the cursor, and the mark is the other end of a selection. Killing is cutting, yanking is pasting.

Six ideas that make the rest obvious

Click any rung. These aren't trivia — each one explains why a whole family of keys is shaped the way it is.

01Buffer
Text held in memory — usually, but not always, a file.
Scratch pads, directory listings, shell sessions and help output are all buffers. C-x b switches, C-x C-b lists, C-x k kills one. Closing a buffer never touches the file unless you save.
02Point & mark
The cursor, and the anchor you set to define a region.
Set the mark with 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.
03Kill ring
Not a clipboard — a stack of everything you've cut.
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.
04Prefix keys
C-x and C-h open whole keymaps.
This is why Emacs has room for thousands of commands. 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.
05Modes
One major mode per buffer, any number of minor modes.
The major mode is the language/task (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.
06M-x
Every command has a name, and you can always just type it.
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.

What the frame is telling you

The quick brown fox jumps over the lazy dog. Point is the block cursor. Text between mark and point is the region.
-UUU:----F1notes.txtAll L2 (Text)
echo area — messages, prompts, and half-finished key sequences appear here

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.

The survival set

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.

Arrow keys, Home, End, PageUp and Backspace all work normally. Nothing here is mandatory. The chords exist because they're faster once learned — your hands never leave the home row — but Emacs is perfectly usable while you're still learning them.

Emacs documents itself

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.

AskKeyCommand
"What does this key do?"C-h kdescribe-key
"What does this function do?"C-h fdescribe-function
"Which commands mention word?"C-h aapropos-command
"What can I do in this buffer?"C-h mdescribe-mode
"Show me every active binding"C-h bdescribe-bindings
"Run the built-in tutorial"C-h thelp-with-tutorial
Do the built-in 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.

Getting unstuck

C-g

Cancel the current command or a partly-typed chord. The universal escape hatch.

C-x u  ·  C-/

undo. Both work. Keep pressing to go further back.

M-x recover-this-file

Emacs auto-saves to #file#. If it or the machine died, this restores your work.

C-x C-c won't quit

It's asking about unsaved buffers in the echo area. Answer it, or C-g to cancel.

Chord Trainer

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.

emacs-trainer ready
score 0 streak 0 best 0 lvl 1

Press Start to begin.

real bindings only · C-g resets a half-typed sequence, exactly like Emacs
— — —
-UUU:----F1notes.txtAll L1
 
trainer ready — 46 bindings, all verified against Emacs 29.3.
Your browser vs Emacs: a few chords are owned by the browser and can't be intercepted — C-w closes a tab, C-n opens a window, C-t reopens a tab. Those tasks are marked type it: click the key display and type the chord as text instead. Everything else is captured live.

After the basics

Configuration

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:

(global-display-line-numbers-mode 1)
(setq make-backup-files nil)

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.

Worth learning next, in order

keyboard macros

C-x ( record, C-x ) stop, C-x e replay. Repetitive edits become one keystroke. Wildly underused.

dired

C-x d — a file manager in a buffer. Rename, delete and operate on many files with the same editing keys you already know.

rectangles

C-x r k / C-x r y — column-wise cut and paste. The tool for editing aligned data.

registers

C-x r s save text, C-x r i insert, C-x r SPC store a position to jump back to.

query-replace

M-% — replace with a yes/no prompt per hit. C-M-% does the same with regexps.

org-mode

Built in. Outlines, agendas, literate code. Many people's entire reason for using Emacs.

Packages

Emacs ships with a package manager. M-x package-list-packages browses; M-x package-install installs. Add MELPA for the wider ecosystem:

(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
Official sources. The GNU Emacs Manual is the complete reference, 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.

Bindings extracted from the reference card shipped with GNU Emacs 29.3 (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.