2019-07-14 18:57:05 +02:00
|
|
|
<a href="http://doomemacs.org">
|
2019-10-19 22:18:23 -04:00
|
|
|
<img src="https://img.shields.io/github/tag/hlissner/doom-emacs.svg?label=release&color=orange" alt="Made with Doom Emacs">
|
2019-07-14 18:57:05 +02:00
|
|
|
</a>
|
|
|
|
<a href="https://emacs.org">
|
2019-10-19 22:18:23 -04:00
|
|
|
<img src="https://img.shields.io/badge/Made_for-Emacs_25.3+-blueviolet.svg" alt="Made for Emacs 25.3+">
|
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">
|
2019-10-12 23:04:58 -05: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>
|
|
|
|
<a href="https://discord.gg/bcZ6P3y">
|
2019-10-19 22:18:23 -04:00
|
|
|
<img src="https://img.shields.io/badge/Discord-blue.svg?logo=discord&label=join" 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-07-14 18:57:05 +02:00
|
|
|
<!--p align="center">
|
|
|
|
<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>
|
|
|
|
</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
|
|
|
|
2019-01-03 01:15:32 -05:00
|
|
|
```bash
|
|
|
|
git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
|
2019-07-21 15:39:45 +02:00
|
|
|
~/.emacs.d/bin/doom install
|
2019-01-03 01:15:32 -05:00
|
|
|
```
|
2017-07-29 00:54:08 +02: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
|
|
|
|
2019-01-03 01:15:32 -05:00
|
|
|
It is a story as old as time. A stubborn, shell-dwelling, and melodramatic
|
|
|
|
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
|
|
|
|
2019-10-19 22:18:23 -04:00
|
|
|
Doom is a configuration for [GNU Emacs](https://www.gnu.org/software/emacs/)
|
|
|
|
designed to make Emacs faster and easier to customize. It can serve as framework
|
|
|
|
for your own configuration or a resource for fellow Emacs enthusiasts who want
|
|
|
|
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
|
|
|
|
|
2019-10-19 22:18:23 -04:00
|
|
|
- **Gotta go fast.** Startup and run-time performance are high priorities.
|
2019-10-24 14:20:48 -04:00
|
|
|
Expensive functionality (built-in or in plugins) is modified and optimized
|
|
|
|
toward this end, otherwise, they must be opt-in.
|
2019-10-19 22:18:23 -04:00
|
|
|
- **Close to metal.** There's less between you and vanilla Emacs, by design.
|
|
|
|
There's less to grok. Modules should be syntactically sweet and backend logic
|
|
|
|
explicit and abstraction-light. The code itself ought to be designed as if
|
2019-10-24 14:20:48 -04:00
|
|
|
grokking it were part of the user experience; and it is!
|
2019-10-19 22:18:23 -04:00
|
|
|
- **Opinionated, but not stubborn.** Doom is a bundle of reasonable defaults
|
|
|
|
and curated opinions, but you aren't stuck with it. Use as little or as much
|
|
|
|
of it as you like. Use it as-is as a complete Emacs distribution; disable
|
|
|
|
everything and use it as a baseline for your own; or anywhere in between.
|
2019-10-24 14:20:48 -04:00
|
|
|
- **Your system, your rules.** There are more ways to set up your programming
|
|
|
|
environment than there are dislikes on Youtube Rewind '18, so Doom and its
|
|
|
|
plugins promise not to *automatically* (and definitely not *silently*) install
|
|
|
|
system dependencies. This means fonts, packages and programs. `doom doctor`
|
|
|
|
will tell you what's missing though!
|
2019-10-19 22:18:23 -04:00
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
- A curated set of sane defaults for all packages, all (major) OSes, and Emacs
|
|
|
|
itself.
|
|
|
|
- Support for *many* programming languages. Too many to list. Includes syntax
|
|
|
|
highlighting, linters/checker integration, inline code evaluation, code
|
|
|
|
completion (where possible), REPLs, documentation lookups, snippets, and more!
|
|
|
|
- Support for *many* tools, like docker, pass, ansible, terraform, and more.
|
|
|
|
- Minimalistic good looks inspired by modern editors.
|
|
|
|
- A modular architecture for a more organized Emacs configuration.
|
|
|
|
- A custom elisp library to help you simplify your config.
|
|
|
|
- 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.
|
|
|
|
- Vim-emulation powered by [evil-mode][url:evil-mode], including ports of
|
|
|
|
popular vim plugins and functionality.
|
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).
|
2019-10-19 22:18:23 -04:00
|
|
|
- A rule-based [popup management system][doom:popups] that dictates how
|
|
|
|
temporary or disposable buffers are displayed (and disposed of).
|
|
|
|
- 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.
|
2019-01-03 01:15:32 -05:00
|
|
|
- Project search (and replace) utilities, powered by
|
2019-10-19 22:18:23 -04:00
|
|
|
[the_silver_searcher][url:the_silver_searcher] or [ripgrep][url:ripgrep].
|
|
|
|
- Isolated and persistent workspaces (also substitutes for vim tabs).
|
|
|
|
- An environment variables file generator and loader, so that Emacs can
|
|
|
|
perfeclty inherit your shell configuration.
|
|
|
|
- Everything is optional!
|
|
|
|
|
|
|
|
# Getting Help
|
|
|
|
|
|
|
|
## Community
|
|
|
|
|
|
|
|
We have [a Discord server][url:discord]! Hop on and say hi!
|
|
|
|
|
|
|
|
## Troubleshooting
|
2019-01-03 01:15:32 -05:00
|
|
|
|
|
|
|
Encountered strange behavior or an error? Here are some things to try before you
|
|
|
|
shoot off that bug report:
|
|
|
|
|
|
|
|
- Run `bin/doom refresh`. This ensures Doom is properly set up and its autoloads
|
|
|
|
files are up-to-date.
|
|
|
|
- If you have byte-compiled your config (with `bin/doom compile`), see if
|
2019-04-29 20:56:06 -04:00
|
|
|
`bin/doom clean` makes the issue go away. Never debug issues with a
|
|
|
|
byte-compiled config, it will make your job harder.
|
2019-01-03 01:15:32 -05:00
|
|
|
- Run `bin/doom doctor` to detect common issues in your development environment.
|
|
|
|
- Search Doom's issue tracker for mention of any error messages you've received.
|
|
|
|
- [Visit our FAQ][docs:faq] to see if your issue is listed.
|
|
|
|
|
|
|
|
If all else fails, [file that bug report][github:new-issue]! Please include the
|
2019-10-19 22:18:23 -04:00
|
|
|
behavior you've observed, the behavior you expected, and any error messages or
|
|
|
|
warnings logged to the \*Messages\* buffer (can be opened with <kbd>SPC h
|
2019-05-04 21:01:34 +02:00
|
|
|
e</kbd> or `M-x view-echo-area-messages`).
|
2019-04-29 20:56:06 -04:00
|
|
|
|
2019-10-19 22:18:23 -04:00
|
|
|
It's a great help if you included a backtrace with errors, i.e. `M-x
|
|
|
|
toggle-debug-on-error` then recreating the error(s).
|
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
|
|
|
|
you can do to help; I welcome any contribution!
|
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
|
|
|
|
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
|
2019-01-03 01:15:32 -05:00
|
|
|
[github:new-issue]: https://github.com/hlissner/doom-emacs/issues/new
|
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
|
2019-01-03 01:15:32 -05:00
|
|
|
[url:discord]: https://discord.gg/bcZ6P3y
|
|
|
|
[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
|
|
|
|
[url:the_silver_searcher]: https://github.com/ggreer/the_silver_searcher
|
2019-10-19 22:18:23 -04:00
|
|
|
[url:straight]: https://github.com/raxod502/straight.el
|