Doom Emacs: Configuration framework for GNU Emacs
Modular framework with lazy loading and vim keybindings.
Learn more about Doom Emacs
Doom Emacs is a configuration framework built on top of GNU Emacs that provides an opinionated, performance-oriented foundation for text editing and development. It implements a modular architecture where functionality is organized into discrete modules that can be selectively enabled, with package dependencies automatically resolved through a declarative configuration system. The framework employs aggressive lazy-loading strategies and deferred initialization techniques to minimize startup time, loading most packages and their configurations only when explicitly needed rather than at launch. It integrates evil-mode as its default modal editing layer to provide Vim-style keybindings and motion commands, while maintaining compatibility with traditional Emacs workflows. The system uses a custom package management layer that wraps the native package.el and extends it with additional caching, compilation optimizations, and reproducible build capabilities.
Declarative package management
Uses straight.el to manage packages declaratively with support for pinning to specific commits and installing from non-ELPA sources. Configuration can be rolled back to previous releases and is designed to be reproducible across systems.
Modular organizational structure
Separates configuration concerns into modules that can be independently enabled or disabled. Includes a standard library of elisp utilities to reduce boilerplate in custom configurations.
Evil-mode integration
Provides optional vim emulation with ports of popular vim plugins including vim-sneak, vim-easymotion, and vim-unimpaired. Uses a Spacemacs-style leader key keybinding scheme adaptable to both vim and vanilla Emacs users.
;; ~/.doom.d/init.el
(doom! :input
:completion
(company +childframe)
(vertico +icons)
:lang
(javascript +lsp)
(python +lsp +pyright)
json
markdown
:tools
magit
lookup)Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
Go
Statically typed, compiled language by Google focused on simplicity, concurrency, and fast compilation.
Dear ImGui
Immediate mode GUI library for 3D applications.
asdf
Unified CLI for managing multiple language runtime versions, replacing nvm, rbenv, pyenv with one tool.
yay
Go-based AUR helper for Arch Linux that manages packages with dependency resolution and PKGBUILD support.
n
A command-line utility for installing, switching between, and managing multiple Node.js versions on Unix-like systems.