core README

The project's README from github.com/doomemacs/core. As one markdown file: README.md.

[!CAUTION] doomemacs.com is not associated with nor endorsed by this project! doomemacs.org is our one and only domain. Read our announcement about it here.


Doom Emacs

Install • Documentation • FAQ • Screenshots • Contribute

Made with Doom Emacs Supports Emacs 27.1–31.1 Latest commit

Discord Server Github Discussions

Doom Emacs Screenshot


Table of Contents

Introduction

It is a story as old as time. A stubborn, shell-dwelling, and melodramatic vimmer—envious of the features of modern text editors—spirals into despair before he succumbs to the dark side. This is his config.

Doom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their frameworks, a modicum of stability (and reproducibility) from their package manager, and the performance of a hand rolled config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more about our favorite operating system.

Its design is guided by these mantras:

Check out the FAQ for answers to common questions about the project.

Features

Prerequisites

[!WARNING] Avoid unstable and pre-release builds of Emacs. These end in .50, .60, or .9X (e.g. 28.1.91). Doom should generally work on Emacs HEAD (the maintainer dogfoods it), but support lags behind the bleeding edge by at least a month or so.

[!IMPORTANT] Doom is comprised of ~150 optional modules, some of which may have additional dependencies. Visit their documentation or run bin/doom doctor to check for any that you may have missed.

Install

git clone --depth 1 https://github.com/doomemacs/core ~/.config/emacs
~/.config/emacs/bin/doom install

Then read our Getting Started guide to be walked through installing, configuring and maintaining Doom Emacs.

It's a good idea to add ~/.config/emacs/bin to your PATH! Other bin/doom commands you should know about:

Roadmap

Doom is an active and ongoing project. To make that development more transparent, its roadmap (and other concerns) are published across three github project boards and a newsletter:

Getting help

Emacs is no journey of a mere thousand miles. You will run into problems and mysterious errors. When you do, here are some places you can look for help:

Contribute

PRs Welcome Elisp styleguide Donate on liberapay Donate on paypal

Doom is a labor of love and incurable madness, but I'm only one guy. Doom wouldn't be where it is today without your help. I welcome contributions of any kind!

LLM Policy

Generative AI is not used in the development of this project (except to test, debug, and improve LLM modules). LLM-generated (or assisted) contributions are highly discouraged, but tolerated so long as they meet the following criteria:

  1. LLM-generated contributions are small,
  2. LLM-use is disclosed,
  3. Issue and pull request templates are followed (it is disruptive when LLMs omit key information and AI disclosures, or follow arbitrary heading structures),
  4. Your M-x doom/info must be uploaded as a file, not published as text in the issue/PR.[^1]
  5. A human responds to reviews and questions.

Failing that, related issues/PRs will be immediately closed and refused with notice. Repeat offenders will be banned.

[^1]: A file-upload is used because doom-infos are filled with keywords that pollute search engine results and make issues harder for users/maintainers to find.

core (doomemacs/core)

Searching Database…

22.8K ·GitHub
What is this?Doom Emacs is a configuration framework for GNU Emacs — fast, opinionated and modular, built to feel as snappy as a hand-rolled config. You can run it as-is or use it as the foundation for your own setup.
Is Doom an editor I install, or a config that goes on top of Emacs?It is not a standalone editor: it is a configuration framework installed on top of GNU Emacs. Use as much or as little of it as you like — it can be the base for your own private config.
What do I need installed before it will run?GNU Emacs 27.1–31.1 (31.1 recommended), Git 2.23+, and ripgrep 11.0+. The CLI alone needs Emacs 27.1+; using Doom as a starter kit needs 29.1+. fd is optional but improves file indexing.
Which Emacs builds should I avoid?Unstable and pre-release Emacs builds — versions ending in .50, .60 or .9X (like 28.1.91); support lags the bleeding edge by about a month. Run 'doom doctor' to find anything missing on your system.
I'm a Vim user — will my muscle memory survive?Yes — optional vim emulation via evil-mode, including ports of popular plugins like vim-sneak, vim-easymotion and vim-unimpaired, plus a Spacemacs-style leader-key scheme centered on SPC.
Does it turn Emacs into a proper IDE?Opt-in LSP integration using lsp-mode or eglot, plus syntax highlighting, linters, code completion, REPLs, snippets, documentation lookups and ripgrep-powered project search across many languages.
Can I pin package versions or roll back an update?Package management is declarative (powered by straight.el) with a CLI: install packages from anywhere, not just (M)ELPA, and pin them to any commit. Rolling back releases and updates is still a work in progress.
Is doomemacs.com the official website?No — doomemacs.com is not associated with nor endorsed by the project. doomemacs.org is the one and only official domain.
Creator
doomemacs
Size
35.3 MB
Stars
22.8K
Updated
CommitOct 02
Age
12y
Commits · 90 Days