Getting Started with Doom Emacs
Everything you need to go from zero to productive.
What is Doom Emacs
Doom Emacs is a configuration framework that sits on top of GNU Emacs. It bundles curated defaults,
a declarative module system, and a command-line interface (doom) so you spend less time
configuring and more time coding.
Doom is not a fork — it is GNU Emacs, enhanced with lazy loading, opinionated keybindings, and a community-maintained collection of over 150 modules. Whether you are coming from Vim, VS Code, or vanilla Emacs, Doom gives you a head start without locking you in.
Doom stands out because of its speed. Cold startup is roughly 0.4 s — often three times faster than a hand-rolled config with the same features.
Basic Config — Understand the Three Files
Doom keeps your personal configuration inside ~/.doom.d/ (or ~/.config/doom/).
There are three files you will touch daily:
init.el Core
This is where you toggle modules on and off. Doom reads this file to decide which features to load.
Open it with SPC f p inside Doom, or directly in your terminal.
packages.el Packages
Declare extra packages here using (package! name). Doom installs them the next time
you run doom sync. You can pin packages to specific commits for reproducibility.
config.el Custom Your personal Elisp goes here — keybindings, theme selection, hooks, and function overrides. This file is evaluated after all modules load.
Enable Your First Module
Doom ships with everything disabled by default. You pick exactly what you need.
Open ~/.doom.d/init.el and uncomment the modules you want.
After saving changes, run doom sync in your terminal. Doom will install the language
server, treesitter grammar, and any companion packages automatically.
Basic Keybindings You Will Use Every Day
Doom uses SPC (Space) as the leader key in evil-mode. Every command is a short, memorable sequence:
SPC f f Find and open any file SPC b b Switch between open buffers SPC s p Search entire project with ripgrep SPC p p Switch to a different project SPC h f Look up documentation for any function
Press SPC and wait — Doom will show a popup with all available keys.
This works at every level, so you never need to memorise everything upfront.
Doom Commands You Should Know
Doom includes a CLI that lives at ~/.config/emacs/bin/doom. Add it to your PATH and run these whenever needed:
doom sync Run after every change to init.el or packages.el. Installs missing packages, removes orphans, and rebuilds caches.
doom doctor Diagnoses your environment. Checks for missing dependencies, misconfigured tools, and common mistakes. Run this first when something feels wrong.
doom upgrade Updates Doom itself and all installed packages in a single atomic operation. Safe to run at any time.