github.com/hlissner/doom-emacs ↗
An Emacs framework for the stubborn martian hacker
Open this visualization on its own page →
Contributors
472
Lines of Code
26,831
From
2014-07-12
To
2021-02-17
About hlissner/doom-emacs
Doom Emacs is a configuration framework for GNU Emacs designed specifically for users transitioning from Vim who want the features of modern editors without unnecessary bloat. It combines strong opinions about sensible defaults with flexibility, allowing users to adopt as much or as little of the framework as they need. The project prioritizes performance through lazy loading and package optimizations, aiming to startup and run as fast as a hand-rolled configuration.
The framework provides approximately 150 optional modules covering language support, development tools, UI enhancements, and workflow features. It includes vim emulation through evil-mode with ports of popular vim plugins like vim-sneak and vim-easymotion, LSP integration for multiple languages, support for numerous programming languages with syntax highlighting and linters, project management tools, and a declarative package management system powered by straight.el that allows pinning packages to specific commits. Additional features include popup window management, workspace isolation, editorconfig integration, and support for Chinese and Japanese input methods.
Doom targets experienced Emacs users and Vim refugees who appreciate explicit system control and reproducible configurations. It requires GNU Emacs 27.1 or later, Git, and ripgrep, with optional dependencies like fd for enhanced performance. The project includes command-line utilities such as `doom doctor` for diagnosing configuration issues, `doom sync` for maintaining package state, and `doom upgrade` for updating the framework and packages.