2019-07-14 18:57:05 +02:00
|
|
|
<a href="http://doomemacs.org">
|
2020-03-27 19:36:43 -04:00
|
|
|
<img src="https://img.shields.io/github/tag/hlissner/doom-emacs.svg?label=release&color=orange&style=for-the-badge" alt="Made with Doom Emacs">
|
2019-07-14 18:57:05 +02:00
|
|
|
</a>
|
|
|
|
<a href="https://emacs.org">
|
2020-03-27 19:36:43 -04:00
|
|
|
<img src="https://img.shields.io/badge/Supports-26.1_--_27.0.50-blueviolet.svg?style=for-the-badge&logo=GNU%20Emacs&logoColor=white" alt="Supports Emacs 26.x - 27.0.50">
|
2019-07-14 18:57:05 +02:00
|
|
|
</a>
|
2019-10-13 00:28:48 -04:00
|
|
|
<a href="https://github.com/hlissner/doom-emacs/actions">
|
2020-04-07 20:24:44 -04:00
|
|
|
<img src="https://github.com/hlissner/doom-emacs/workflows/CI/badge.svg" alt="Build status: develop">
|
2019-07-14 18:57:05 +02:00
|
|
|
</a>
|
2020-01-27 23:58:32 -05:00
|
|
|
<a href="https://discord.gg/qvGgnVx">
|
2020-03-27 19:36:43 -04:00
|
|
|
<img src="https://img.shields.io/badge/Discord-blue.svg?logo=discord&label=join&style=for-the-badge" alt="Join our discord server" align="right">
|
2019-07-14 18:57:05 +02:00
|
|
|
</a>
|
|
|
|
<br><br>
|
2019-07-13 13:50:52 +02:00
|
|
|
|
|
|
|

|
|
|
|
|
2019-10-29 01:40:55 -04:00
|
|
|
<p align="center">
|
2019-07-14 18:57:05 +02:00
|
|
|
<b><a href="/../../tree/screenshots">Screenshots</a></b>
|
|
|
|
|
|
|
|
|
<b><a href="docs/getting_started.org">Get started</a></b>
|
|
|
|
|
|
|
|
|
<b><a href="docs/contributing.org">Contribute</a></b>
|
|
|
|
|
|
|
|
|
<b><a href="docs/index.org">Documentation</a></b>
|
|
|
|
|
|
|
|
|
<b><a href="docs/faq.org">FAQ</a></b>
|
2019-10-29 01:40:55 -04:00
|
|
|
</p>
|
2019-04-29 20:56:06 -04:00
|
|
|
|
2019-10-12 23:04:58 -05:00
|
|
|
---
|
2016-05-30 21:19:10 -04:00
|
|
|
|
2019-07-14 18:57:05 +02:00
|
|
|
**Quick start**
|
2019-10-12 23:04:58 -05:00
|
|
|
|
2020-03-27 17:51:37 -04:00
|
|
|
1. **Install Emacs 26.1+**. 27 is recommended. _28+ is not supported_.
|
|
|
|
2. Install [ripgrep](https://github.com/BurntSushi/ripgrep) 11.0+.
|
|
|
|
3. Windows and BSD users will need GNU Find.
|
|
|
|
4. Clone Doom and run its installer:
|
2017-07-29 00:54:08 +02:00
|
|
|
|
2020-03-27 17:51:37 -04:00
|
|
|
```bash
|
|
|
|
git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
|
|
|
|
~/.emacs.d/bin/doom install
|
|
|
|
```
|
|
|
|
|
|
|
|
Find more detailed install instructions [in the
|
|
|
|
documentation](docs/getting_started.org#install).
|
2020-01-26 01:31:53 -05:00
|
|
|
|
2019-07-14 18:57:05 +02:00
|
|
|
**Table of Contents**
|
2019-10-12 23:04:58 -05:00
|
|
|
|
2019-01-03 01:15:32 -05:00
|
|
|
- [What is Doom Emacs](#what-is-doom-emacs)
|
2019-10-19 22:18:23 -04:00
|
|
|
- [Doom's mantras](#dooms-mantras)
|
|
|
|
- [Features](#features)
|
2019-01-03 01:15:32 -05:00
|
|
|
- [Getting Help](#getting-help)
|
2019-10-19 22:18:23 -04:00
|
|
|
- [Community](#community)
|
|
|
|
- [Troubleshooting](#troubleshooting)
|
|
|
|
- [Contributing](#contributing)
|
2016-05-23 20:56:19 -04:00
|
|
|
|
2019-10-12 23:04:58 -05:00
|
|
|
# What is Doom Emacs
|
2017-05-25 20:08:50 +02:00
|
|
|
|
2019-01-03 01:15:32 -05:00
|
|
|
<a href="http://ultravioletbat.deviantart.com/art/Yay-Evil-111710573">
|
|
|
|
<img src="https://github.com/hlissner/doom-emacs/raw/screenshots/cacochan.png" align="right" />
|
|
|
|
</a>
|
2017-05-25 20:08:50 +02:00
|
|
|
|
2020-04-07 20:24:44 -04:00
|
|
|
It is a story as old as time. A stubborn, shell-dwelling, and melodramatic
|
2019-01-03 01:15:32 -05:00
|
|
|
vimmer -- envious of the features of modern text editors -- spirals into despair
|
2019-01-03 02:05:57 -05:00
|
|
|
before succumbing to the [dark side][url:evil-mode]. This is his config.
|
2019-01-03 01:15:32 -05:00
|
|
|
|
2020-01-26 01:31:53 -05:00
|
|
|
Doom is a configuration framework for [GNU
|
|
|
|
Emacs](https://www.gnu.org/software/emacs/) tailored for Emacs bankruptcy
|
|
|
|
veterans who want less framework in their frameworks 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 OS.
|
2019-01-03 01:15:32 -05:00
|
|
|
|
2019-10-12 23:04:58 -05:00
|
|
|
## Doom's mantras
|
|
|
|
|
2020-01-26 01:31:53 -05:00
|
|
|
- **Gotta go fast.** Startup and run-time performance are priorities. Doom goes
|
|
|
|
beyond lazy loading packages by modifying them to be snappier and load lazier!
|
|
|
|
- **Close to metal.** There's less between you and vanilla Emacs by design.
|
|
|
|
There's less to grok, on top of Emacs.
|
|
|
|
- **Readability counts.** Internals ought to be written as if reading them were
|
|
|
|
part of the user experience, and it is! Modules should be syntactically sweet.
|
|
|
|
Backend logic should be functional (as much as elisp permits), abstraction
|
|
|
|
light and (hopefully) documented.
|
|
|
|
- **Opinionated, but not stubborn.** Doom is a bundle of reasonable defaults and
|
|
|
|
curated opinions, but all of it should be optional. Use as little or as much
|
|
|
|
of it as you like.
|
|
|
|
- **Your system, your rules.** There are more ways to set up your development
|
|
|
|
environment than there are dislikes on Youtube Rewind '18, so Doom leaves it
|
|
|
|
to you. Doom will not *automatically* install system dependencies (and will
|
|
|
|
coerce its plugins not to do so either). Use `doom doctor` to figure out
|
|
|
|
what's missing.
|
2019-10-19 22:18:23 -04:00
|
|
|
|
|
|
|
## Features
|
|
|
|
|
2020-01-26 01:31:53 -05:00
|
|
|
- Minimalistic good looks inspired by modern editors.
|
2020-04-07 20:24:44 -04:00
|
|
|
- A modular architecture that can be extended to your own configs.
|
|
|
|
- A standard library suited to simplifying your config.
|
2020-01-26 01:31:53 -05:00
|
|
|
- A declarative [package management system][doom:packages] (powered by
|
|
|
|
[straight.el][url:straight]) with a command line interface. Install packages
|
|
|
|
from anywhere, not just (M)ELPA.
|
2020-04-07 20:24:44 -04:00
|
|
|
- (Optional) Vim-emulation powered by [evil-mode][url:evil-mode], including
|
|
|
|
ports of popular vim plugins and functionality.
|
|
|
|
- Curated and sane defaults for many packages, (major) OSes, and Emacs itself.
|
|
|
|
- Support for *many* programming languages. Includes syntax highlighting,
|
|
|
|
linters/checker integration, inline code evaluation, code completion (where
|
|
|
|
possible), REPLs, documentation lookups, snippets, and more!
|
2019-10-19 22:18:23 -04:00
|
|
|
- Support for *many* tools, like docker, pass, ansible, terraform, and more.
|
2019-01-03 01:15:32 -05:00
|
|
|
- A Spacemacs-esque [keybinding scheme][doom:bindings], centered around leader
|
|
|
|
and localleader prefix keys (<kbd>SPC</kbd> and <kbd>SPC</kbd><kbd>m</kbd>, by
|
|
|
|
default).
|
2020-04-07 20:24:44 -04:00
|
|
|
- A rule-based [popup management system][doom:popups] to control how temporary
|
|
|
|
or disposable buffers are displayed (and disposed of).
|
2019-10-19 22:18:23 -04:00
|
|
|
- Automatic indentation detection and [editorconfig][url:editorconfig]
|
|
|
|
integration. Let someone else argue about tabs vs **\_\***spaces**\*\_**.
|
|
|
|
- Project-management tools and framework-specific minor modes with their own
|
|
|
|
snippets libraries.
|
2020-01-05 16:06:02 -05:00
|
|
|
- Project search (and replace) utilities, powered by [ripgrep][url:ripgrep].
|
2019-10-19 22:18:23 -04:00
|
|
|
- Isolated and persistent workspaces (also substitutes for vim tabs).
|
2020-01-26 01:31:53 -05:00
|
|
|
- An envvar file generator that captures a snapshot of your shell environment
|
|
|
|
for Doom to load at startup. No more struggling to get Emacs to inherit your
|
|
|
|
`PATH`, among other things.
|
2019-10-30 14:41:10 +00:00
|
|
|
|
2019-10-19 22:18:23 -04:00
|
|
|
# Getting Help
|
2019-10-30 14:41:10 +00:00
|
|
|
|
2019-10-19 22:18:23 -04:00
|
|
|
## Community
|
|
|
|
|
|
|
|
We have [a Discord server][url:discord]! Hop on and say hi!
|
2019-10-30 14:41:10 +00:00
|
|
|
|
2019-10-19 22:18:23 -04:00
|
|
|
## Troubleshooting
|
2019-01-03 01:15:32 -05:00
|
|
|
|
2020-04-07 20:24:44 -04:00
|
|
|
Encountered a problem? Here are some things to try before shooting off that bug
|
|
|
|
report:
|
2019-01-03 01:15:32 -05:00
|
|
|
|
2020-02-19 23:34:16 -05:00
|
|
|
- Run `bin/doom sync`. This ensures Doom is properly set up and its autoloads
|
2019-01-03 01:15:32 -05:00
|
|
|
files are up-to-date.
|
2020-04-07 20:24:44 -04:00
|
|
|
- Folks who have byte-compiled their config (with `bin/doom compile`) should run
|
|
|
|
`bin/doom clean` to rule out stale bytecode. Never debug with a byte-compiled
|
|
|
|
config. It makes your job harder.
|
|
|
|
- Run `bin/doom doctor` to detect common issues in your development environment
|
|
|
|
and missing third party dependencies.
|
|
|
|
- Search [Doom's issue tracker][github:issues] in case your issue was already
|
|
|
|
reported.
|
2019-01-03 01:15:32 -05:00
|
|
|
- [Visit our FAQ][docs:faq] to see if your issue is listed.
|
|
|
|
|
2020-04-07 20:24:44 -04:00
|
|
|
If all else fails, [file that bug report][github:new-issue]! **Please do not
|
|
|
|
ignore the issue template!** It's a great help if you can [include a backtrace
|
|
|
|
with errors][docs:backtrace].
|
2019-01-03 01:15:32 -05:00
|
|
|
|
2019-10-19 22:18:23 -04:00
|
|
|
## Contributing
|
2017-07-29 00:54:08 +02:00
|
|
|
|
2019-01-03 01:15:32 -05:00
|
|
|
Doom (and my Emacs work in general) is a labor of love and incurable madness,
|
2019-10-19 22:18:23 -04:00
|
|
|
done on my spare time. If you'd like to support my work, there are many things
|
2020-04-07 20:24:44 -04:00
|
|
|
you can do to help. I welcome contributions!
|
2019-01-03 01:15:32 -05:00
|
|
|
|
|
|
|
- I love pull requests and bug reports. Check out the [Contributing
|
2019-04-29 20:56:06 -04:00
|
|
|
Guidelines][docs:contributing] to find out how you can help out.
|
2019-01-03 01:15:32 -05:00
|
|
|
- I welcome Elisp pointers! Don't hesitate to [tell me my Elisp-fu
|
|
|
|
sucks][github:new-issue] (but please tell me why).
|
|
|
|
- Hop on [our Discord server][url:discord] and say hi! Help others out, hang out
|
|
|
|
or talk to me about Emacs, or gamedev, or programming, machine learning,
|
|
|
|
physics, pixel art, anime, gaming -- anything you like. Nourish this lonely
|
|
|
|
soul!
|
|
|
|
- If you'd like to support my work financially, consider buying me a drink
|
|
|
|
through [liberapay][url:liberapay] or [paypal][url:paypal]. Donations are a
|
2019-04-29 20:56:06 -04:00
|
|
|
great help. My work here contends with studies, ventures in indie gamedev, and
|
|
|
|
my freelance work.
|
2019-01-03 01:15:32 -05:00
|
|
|
|
2020-04-07 20:24:44 -04:00
|
|
|
|
2019-04-29 20:56:06 -04:00
|
|
|
[docs:wiki]: docs/index.org
|
2019-10-29 01:13:57 -04:00
|
|
|
[docs:wiki-quickstart]: docs/getting_started.org
|
|
|
|
[docs:wiki-modules]: docs/index.org#Module%20List
|
|
|
|
[docs:wiki-customization]: docs/getting_started.org#Customize
|
|
|
|
[docs:contributing]: docs/contributing.org
|
2019-04-29 20:56:06 -04:00
|
|
|
[docs:faq]: docs/faq.org
|
2020-04-07 20:24:44 -04:00
|
|
|
[docs:backtrace]: https://github.com/hlissner/doom-emacs/blob/develop/docs/getting_started.org#how-to-extract-a-backtrace-from-an-error
|
2019-01-03 01:15:32 -05:00
|
|
|
[github:new-issue]: https://github.com/hlissner/doom-emacs/issues/new
|
2020-04-07 20:24:44 -04:00
|
|
|
[github:issues]: https://github.com/hlissner/doom-emacs/issues
|
2019-04-29 20:56:06 -04:00
|
|
|
[doom:bindings]: modules/config/default/+evil-bindings.el
|
2019-01-03 01:15:32 -05:00
|
|
|
[doom:packages]: core/autoload/packages.el
|
2019-04-29 20:56:06 -04:00
|
|
|
[doom:popups]: modules/ui/popup/README.org
|
2020-01-27 23:58:32 -05:00
|
|
|
[url:discord]: https://discord.gg/qvGgnVx
|
2019-01-03 01:15:32 -05:00
|
|
|
[url:liberapay]: https://liberapay.com/hlissner/donate
|
|
|
|
[url:paypal]: https://paypal.me/henriklissner/10
|
|
|
|
[url:editorconfig]: http://editorconfig.org/
|
|
|
|
[url:evil-mode]: https://github.com/emacs-evil/evil
|
|
|
|
[url:ripgrep]: https://github.com/BurntSushi/ripgrep
|
2019-10-19 22:18:23 -04:00
|
|
|
[url:straight]: https://github.com/raxod502/straight.el
|