# hlissner/doom-emacs

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/hlissner-doom-emacs).**

22,267 stars · 3,155 forks · Emacs Lisp · MIT

## Links

- GitHub: https://github.com/hlissner/doom-emacs
- awesome-repositories: https://awesome-repositories.com/repository/hlissner-doom-emacs.md

## Description

This project is an Emacs configuration framework that provides a curated distribution of the editor. It focuses on a modular editor environment and a declarative package management system to ensure reproducible installations and optimized defaults.

The framework distinguishes itself through a performance-optimized editor setup that uses lazy loading to reduce startup times. It implements a Vim-emulation layer, providing a modal editing interface with Vim keybindings and a leader-key command hierarchy for efficient navigation.

The system covers a broad range of capabilities, including IDE language support via language server integration, project workspace organization, and automated configuration management. It also includes tools for auditing system dependencies, diagnosing configuration issues, and synchronizing shell environments.

## Tags

### Development Tools & Productivity

- [Editor Configuration Frameworks](https://awesome-repositories.com/f/development-tools-productivity/code-editors-ides/extension-ecosystems-management/editor-extensions/editor-integrations/editor-configuration-frameworks.md) — Provides a modular framework for organizing Emacs environments with declarative package management for reproducibility.
- [Text Editor Configurations](https://awesome-repositories.com/f/development-tools-productivity/text-editor-configurations.md) — Provides a curated distribution and framework for managing comprehensive text editor configurations. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Emacs Editor Configurations](https://awesome-repositories.com/f/development-tools-productivity/code-editors-ides/extension-ecosystems-management/editor-extensions/editor-integrations/emacs-editor-configurations.md) — Specifically optimizes and manages the Emacs editor through curated modules and default settings. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Language Server Clients](https://awesome-repositories.com/f/development-tools-productivity/code-editors-ides/extension-ecosystems-management/editor-extensions/editor-integrations/language-server-clients.md) — Integrates as a Language Server Client to provide autocompletion and diagnostics across multiple programming languages. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Editor Configurations](https://awesome-repositories.com/f/development-tools-productivity/editor-configurations.md) — Provides modular structures to separate concerns and apply curated defaults for editor behavior. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Editor Modules](https://awesome-repositories.com/f/development-tools-productivity/editor-modules.md) — Implements a modular plugin architecture allowing users to extend editor capabilities via curated modules. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Modal Editing Layers](https://awesome-repositories.com/f/development-tools-productivity/keybinding-configurations/keybinding-presets/modal-editing-layers.md) — Provides a modal editing layer that replicates Vim keybindings and state-based input behavior within Emacs.
- [Keybinding Emulators](https://awesome-repositories.com/f/development-tools-productivity/text-editors/keybinding-emulators.md) — Implements modal editing and Vim-like keybindings to provide a familiar navigation experience within Emacs. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Leader Key Sequences](https://awesome-repositories.com/f/development-tools-productivity/input-binding-libraries/multi-key-bindings/leader-key-sequences.md) — Organizes editor commands using a leader-key hierarchy for efficient, structured access to functionality.
- [Language Server Clients](https://awesome-repositories.com/f/development-tools-productivity/language-server-clients.md) — Implements a client for the Language Server Protocol to provide autocomplete and intelligent code navigation.
- [Package Upgraders](https://awesome-repositories.com/f/development-tools-productivity/package-upgraders.md) — Includes utilities for performing bulk upgrades of the core framework and all installed third-party packages. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Project Search Tools](https://awesome-repositories.com/f/development-tools-productivity/project-search-tools.md) — Enables project-wide search and replace operations using external indexing tools for fast content discovery. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Project Workspaces](https://awesome-repositories.com/f/development-tools-productivity/workspace-management/project-workspaces.md) — Provides isolated workspaces as an alternative to tabs for organizing different project contexts. ([source](https://github.com/hlissner/doom-emacs#readme))

### DevOps & Infrastructure

- [Package Manager Configurations](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/configuration-declaration-formats/package-manager-configurations.md) — Provides a declarative system for defining and managing editor packages and dependencies to ensure reproducible installations.
- [Configuration Modules](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/environment-scoping-controls/linked-dependency-management/module-based-dependency-managers/configuration-modules.md) — Uses a modular configuration system to organize optional functionality into discrete, toggleable units.

### Software Engineering & Architecture

- [Declarative Configuration Managers](https://awesome-repositories.com/f/software-engineering-architecture/declarative-configuration-managers.md) — Employs a declarative configuration manager to ensure reproducible installations and stable package versions. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Editor Startup Optimizers](https://awesome-repositories.com/f/software-engineering-architecture/function-execution-engines/just-in-time-compilers/editor-startup-optimizers.md) — Implements lazy-loading and optimized package initialization to significantly reduce editor startup time. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Lazy Loading](https://awesome-repositories.com/f/software-engineering-architecture/plugin-architectures/programmatic-plugin-loading/lazy-loading.md) — Implements lazy loading of packages and functions to significantly reduce initial editor startup time.
- [Configuration State Managers](https://awesome-repositories.com/f/software-engineering-architecture/configuration-state-managers.md) — Manages the lifecycle of configuration states by synchronizing packages and regenerating caches. ([source](https://github.com/hlissner/doom-emacs#readme))

### Part of an Awesome List

- [Language Support](https://awesome-repositories.com/f/awesome-lists/devtools/language-support.md) — Provides integrated support for syntax highlighting, linting, and interactive shells across many programming languages. ([source](https://github.com/hlissner/doom-emacs#readme))
- [Development Environments](https://awesome-repositories.com/f/awesome-lists/devtools/development-environments.md) — Configuration framework for the Emacs text editor.

### User Interface & Experience

- [Buffer Lifecycle Rules](https://awesome-repositories.com/f/user-interface-experience/styled-properties/popup-styling/contextual-popups/buffer-lifecycle-rules.md) — Implements a centralized rule-based system to manage temporary buffers and prevent visual clutter.
