For looking up words in dictionaries and thesauruses. Requires internet connection (for now).
12 KiB
Doom Emacs Documentation
Doom Emacs is a configuration for GNU Emacs written by a stubborn, shell-dwelling, and melodramatic ex-vimmer. It is designed to be a foundation for your own Emacs configuration or a resource for enthusiasts to learn more about our favorite OS.
Github fails to render org links to sub-sections, so it is recommended that you view the documentation from within Doom Emacs by pressing
<help> d h
(<help>
isSPC h
for evil users andC-h
for vanilla users) or searching it with<help> d /
.
Table of Contents TOC
TODO Release Notes
Documentation
Getting Started
- Install - How to install Emacs, Doom and its plugins
- Update - Keep Doom and its packages up-to-date
- Customize - A primer on customizing and reconfiguring Doom
- Troubleshoot - How to debug Emacs & Doom, find help or look up documentation
Frequently Asked Questions
- General
- Configuration
- Defaults
- Common Issues
- Contributing
TODO Contributing
- Where to get help
- Writing an effective bug report
- Suggesting features, keybinds or enhancements
- Contributing code
- Contributing documentation
- Other ways to support Doom Emacs
- Special thanks
Community Resources
Asking for help
Project roadmap
- Development roadmap - A timeline outlining what's being worked on and when it is expected to be done.
- Plugins under review - A sitrep on third party plugins that we've considered, rejected, or awaiting integration into Doom.
- Upstream bugs - Tracks issues originating from plugins and external programs that Doom relies on.
Tutorials & guides
-
Doom Emacs
-
Emacs & Emacs Lisp
- The Official Emacs manual
- A variety of Emacs resources - https://github.com/ema2159/awesome-emacs
-
Quick crash courses on Emacs Lisp's syntax for programmers:
-
Workflows for customizing Emacs and its packages (and its C/C++ modes):
-
Tools in Emacs
-
Vim & Evil
Module list
:app
Application modules are complex and opinionated modules that transform Emacs
toward a specific purpose. They may have additional dependencies and should be
loaded last, before :config
modules.
:completion
Modules that provide new interfaces or frameworks for completion, including code completion.
:config
Modules that configure Emacs one way or another, or focus on making it easier for you to customize it yourself. It is best to load these last.
- literate - For users with literate configs. This will tangle+compile a
config.org in your
doom-private-dir
when it changes. - default
+bindings +smartparens
- The default module sets reasonable defaults for Emacs. It also provides a Spacemacs-inspired keybinding scheme and a smartparens config. Use it as a reference for your own modules.
:editor
Modules that affect and augment your ability to manipulate or insert text.
- evil
+everywhere
- transforms Emacs into Vim - file-templates - Auto-inserted templates in blank new files
- fold - universal code folding
- format
+onsave
- TODO - god - run Emacs commands without modifier keys
- lispy - TODO
- multiple-cursors - TODO
- objed - TODO
- parinfer - TODO
- rotate-text - TODO
- snippets - Snippet expansion for lazy typists
- word-wrap - soft wrapping with language-aware indent
:emacs
- mu4e
+gmail
- TODO - notmuch - TODO
- wanderlust
+gmail
- TODO
:lang
Modules that bring support for a language or group of languages to Emacs.
- agda - TODO
- assembly - TODO
- cc
+lsp
- TODO - clojure - TODO
- common-lisp - TODO
- coq - TODO
- crystal - TODO
- csharp - TODO
- data - TODO
- elixir
+lsp
- TODO - elm - TODO
- emacs-lisp - TODO
- erlang - TODO
- ess - TODO
- faust - TODO
- fsharp - TODO
- go
+lsp
- TODO - haskell
+dante +intero +lsp
- TODO - hy - TODO
- idris - TODO
- java
+meghanada +lsp
- TODO - javascript
+lsp
- JavaScript, TypeScript, and CoffeeScript support - julia - TODO
- kotlin
+lsp+
- TODO - latex - TODO
- lean - TODO
- ledger - TODO
- lua
+moonscript
- TODO - markdown
+grip
- TODO - nim - TODO
- nix - TODO
- ocaml
+lsp
- TODO - org
+brain +dragndrop +gnuplot +hugo +ipython +journal +jupyter +pandoc +pomodoro +present
- TODO - perl - TODO
- php
+lsp
- TODO - plantuml - TODO
- purescript - TODO
- python
+lsp +pyenv +conda
- TODO - qt - TODO
- racket - TODO
- rest - TODO
- ruby
+lsp +rvm +rbenv
- TODO - rust
+lsp
- TODO - scala
+lsp
- TODO - scheme - TODO
- sh
+fish +lsp
- TODO - solidity - TODO
- swift
+lsp
- TODO - terra - TODO
- web
+lsp
- HTML and CSS (SCSS/SASS/LESS/Stylus) support.
:term
Modules that offer terminal emulation.
- eshell - TODO
- shell - TODO
- term - TODO
- vterm - TODO
:tools
Small modules that give Emacs access to external tools & services.
- ansible - TODO
- debugger - A (nigh-)universal debugger in Emacs
- direnv - TODO
- docker - TODO
- editorconfig - TODO
- ein - TODO
- eval
+overlay
- REPL & code evaluation support for a variety of languages - flycheck - Live error/warning highlights
- flyspell - Spell checking
- gist - TODO
- lookup
+dictionary +docsets
- Universal jump-to & documentation lookup backend - lsp - TODO
- macos - TODO
- magit - TODO
- make - TODO
- pass - TODO
- pdf - TODO
- prodigy - TODO
- rgb - TODO
- terraform
- tmux - TODO
- upload - TODO
:ui
Aesthetic modules that affect the Emacs interface or user experience.
- deft - TODO
- doom - TODO
- doom-dashboard - TODO
- doom-quit - TODO
- fill-column - TODO
- hl-todo - TODO
- hydra - TODO
- indent-guides - TODO
- modeline - TODO
- nav-flash - TODO
- neotree - TODO
- ophints - TODO
- popup
+all +defaults
- Makes temporary/disposable windows less intrusive - pretty-code - TODO
- tabs - TODO
- treemacs - TODO
- unicode - TODO
- vc-gutter - TODO
- vi-tilde-fringe - TODO
- window-select
+switch-window +numbers
- TODO - workspaces - Isolated workspaces