2019-07-14 18:57:05 +02:00
|
|
|
<a href="http://doomemacs.org">
|
|
|
|
<img src="https://img.shields.io/github/tag/hlissner/doom-emacs.svg?label=release&style=for-the-badge&color=orange" alt="Made with Doom Emacs">
|
|
|
|
</a>
|
|
|
|
<a href="https://emacs.org">
|
|
|
|
<img src="https://img.shields.io/badge/Made_for-Emacs_25.3+-blueviolet.svg?style=for-the-badge" alt="Made for Emacs 25.3+">
|
|
|
|
</a>
|
|
|
|
<a href="https://travis-ci.org/hlissner/doom-emacs">
|
|
|
|
<img src="https://img.shields.io/travis/hlissner/doom-emacs/master.svg?label=master&style=flat-square" alt="Build status: master">
|
|
|
|
</a>
|
|
|
|
<a href="https://travis-ci.org/hlissner/doom-emacs">
|
|
|
|
<img src="https://img.shields.io/travis/hlissner/doom-emacs/develop.svg?label=develop&style=flat-square" alt="Build status: develop">
|
|
|
|
</a>
|
|
|
|
<a href="https://discord.gg/bcZ6P3y">
|
|
|
|
<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">
|
|
|
|
</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
|
|
|
|
2017-07-29 00:54:08 +02:00
|
|
|
- - -
|
2016-05-30 21:19:10 -04:00
|
|
|
|
2019-07-14 18:57:05 +02:00
|
|
|
**Quick start**
|
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-01-03 01:15:32 -05:00
|
|
|
- [What is Doom Emacs](#what-is-doom-emacs)
|
|
|
|
- [Doom's mantras](#dooms-mantras)
|
|
|
|
- [Feature highlights](#feature-highlights)
|
|
|
|
- [Getting Help](#getting-help)
|
|
|
|
- [Contributing](#contributing)
|
2016-05-23 20:56:19 -04:00
|
|
|
|
2015-06-14 17:26:03 +02:00
|
|
|
|
2019-01-03 01:15:32 -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
|
|
|
|
|
|
|
Doom is a configuration for [GNU Emacs](https://www.gnu.org/software/emacs/). It
|
|
|
|
can be used as framework for your own configuration, or as a resource for fellow
|
|
|
|
Emacs enthusiasts who want to learn more about our favorite OS.
|
|
|
|
|
|
|
|
Doom's mantras
|
|
|
|
--------------
|
2019-04-29 20:56:06 -04:00
|
|
|
- **Gotta go fast.** Startup and runtime speed are priorities; many expensive,
|
|
|
|
heavy-handed packages have been modified to allow lazy loading or exploit
|
|
|
|
caching.
|
|
|
|
- **Close to metal.** There's less between you and vanilla Emacs, by design;
|
|
|
|
that means less to grok. Modules should be syntactically sweet and backend
|
|
|
|
logic explicit and abstraction-light.
|
|
|
|
- **Assembly required.** Doom trusts you, for better or worse. It inherits your
|
|
|
|
shell configuration, warts et all. If your system is misconfigured, Doom is
|
|
|
|
misconfigured.
|
|
|
|
- **Opinionated, but not stubborn.** Doom Emacs is a bundle of reasonable
|
|
|
|
defaults and curated opinions, catered particularly to vimmers, but that's no
|
|
|
|
reason you should be stuck with it. Use as little or as much of Doom as you
|
|
|
|
like. Use it as a complete Emacs distribution, a baseline for your own, or
|
|
|
|
anywhere in between.
|
2019-01-03 01:15:32 -05:00
|
|
|
|
|
|
|
Feature Highlights
|
|
|
|
------------------
|
2019-04-29 20:56:06 -04:00
|
|
|
- A fabulous, minimalistic interface and theme inspired by modern editors
|
|
|
|
(particularly Atom and sublime text).
|
|
|
|
- A modular architecture for your Emacs configuration with sane defaults.
|
|
|
|
- A declarative [package management system][doom:packages] managed from the
|
|
|
|
command line, which allows you to install packages from anywhere.
|
2019-01-03 01:15:32 -05:00
|
|
|
- A [popup management system][doom:popups] with customizable rules to dictate
|
|
|
|
how temporary/disposable buffers are displayed.
|
2019-01-03 02:05:57 -05:00
|
|
|
- A vim-centric (and optional) experience with [evil-mode][url:evil-mode],
|
|
|
|
including ports of several popular vim plugins, <kbd>C-x</kbd> omnicompletion
|
|
|
|
and a slew of [custom ex commands][doom:commands].
|
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-04-29 20:56:06 -04:00
|
|
|
- Indentation detection and [editorconfig][url:editorconfig] integration. Let
|
|
|
|
someone else argue about tabs vs ___***spaces***___.
|
2019-01-03 01:15:32 -05:00
|
|
|
- Code completion for many languages, powered by
|
|
|
|
[company-mode][url:company-mode] (some may have external dependencies).
|
|
|
|
- Project-awareness powered by [projectile][url:projectile], with tools and an
|
|
|
|
API to navigate and manage projects, as well as project/framework-specific
|
|
|
|
minor modes and snippets libraries (and the ability to define your own).
|
|
|
|
- Project search (and replace) utilities, powered by
|
2019-05-04 11:40:46 +02:00
|
|
|
[the_silver_searcher][url:the_silver_searcher], [ripgrep][url:ripgrep], git-grep and
|
2019-01-03 01:15:32 -05:00
|
|
|
[wgrep][url:wgrep], with integration for [ivy][url:ivy] (the default) and
|
2019-01-03 02:04:49 -05:00
|
|
|
[helm][url:helm].
|
2019-01-03 01:15:32 -05:00
|
|
|
- Isolated and persistent workspaces powered by [persp-mode][url:persp-mode].
|
|
|
|
Also substitutes as vim tabs.
|
|
|
|
- Inline/live code evaluation (using [quickrun][url:quickrun]), with REPL
|
|
|
|
support for a variety of languages.
|
|
|
|
- A jump-to-definition/references implementation for all languages that tries to
|
|
|
|
"just work," resorting to mode-specific functionality, before falling back on
|
2019-07-31 12:42:58 -07:00
|
|
|
[dumb-jump][url:dumb-jump].
|
2019-01-03 01:15:32 -05:00
|
|
|
|
|
|
|
|
|
|
|
Troubleshooting
|
|
|
|
===============
|
|
|
|
|
|
|
|
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-04-29 20:56:06 -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
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
We've also got [a Discord server][url:discord]. Hop on! We can help!
|
|
|
|
|
|
|
|
|
|
|
|
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,
|
|
|
|
done on my spare time. If you'd like to support my work, I welcome
|
|
|
|
contributions:
|
|
|
|
|
|
|
|
- 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
|
|
|
|
[docs:wiki-quickstart]: docs/getting-started.org
|
|
|
|
[docs:wiki-modules]: docs/modules.org
|
|
|
|
[docs:wiki-customization]: docs/customize.org
|
|
|
|
[docs:contributing]: docs/contribute.org
|
|
|
|
[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
|
|
|
|
[doom:commands]: modules/editor/evil/+commands.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:company-mode]: https://github.com/company-mode/company-mode
|
|
|
|
[url:doom-themes]: https://github.com/hlissner/emacs-doom-themes
|
2019-07-31 12:42:58 -07:00
|
|
|
[url:dumb-jump]: https://github.com/jacktasia/dumb-jump
|
2019-01-03 01:15:32 -05:00
|
|
|
[url:editorconfig]: http://editorconfig.org/
|
|
|
|
[url:evil-mode]: https://github.com/emacs-evil/evil
|
|
|
|
[url:helm]: https://github.com/emacs-helm/helm
|
|
|
|
[url:ivy]: https://github.com/abo-abo/swiper
|
|
|
|
[url:persp-mode]: https://github.com/Bad-ptr/persp-mode.el
|
|
|
|
[url:projectile]: https://github.com/bbatsov/projectile
|
|
|
|
[url:quelpa]: https://github.com/quelpa/quelpa
|
|
|
|
[url:quickrun]: https://github.com/syohex/emacs-quickrun
|
|
|
|
[url:ripgrep]: https://github.com/BurntSushi/ripgrep
|
|
|
|
[url:the_silver_searcher]: https://github.com/ggreer/the_silver_searcher
|
|
|
|
[url:use-package]: https://github.com/jwiegley/use-package
|
|
|
|
[url:wgrep]: https://github.com/mhayashi1120/Emacs-wgrep
|