doomemacs/README.md

139 lines
6.0 KiB
Markdown
Raw Normal View History

<p align="center">
<img src="https://img.shields.io/github/tag/hlissner/doom-emacs.svg?label=release&style=flat-square" alt="Current release" />
<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-chat-blue.svg?style=flat-square&logo=discord&colorB=%237289DA" alt="Chat on discord" /></a>
<img src="https://github.com/hlissner/doom-emacs/raw/screenshots/main.png" alt="Main screenshot" />
</p>
2017-07-29 06:54:08 +08:00
- - -
<p align="center">
<a href="/../../wiki">Wiki</a> |
<a href="/../../tree/screenshots">Screenshots</a> |
2017-09-02 22:28:53 +08:00
<a href="/../../wiki/FAQ#troubleshooting">Troubleshooting</a> |
2017-08-22 07:16:33 +08:00
<a href="/../../wiki/FAQ">FAQ</a> |
<a href="/../develop/CHANGELOG.org">Changelog</a>
2017-07-29 06:54:08 +08:00
</p>
- - -
2016-05-31 09:19:10 +08:00
2016-10-06 03:50:34 +08:00
<a href="http://ultravioletbat.deviantart.com/art/Yay-Evil-111710573">
2017-07-29 06:54:08 +08:00
<img src="/../screenshots/cacochan.png" align="right" />
2016-10-06 03:50:34 +08:00
</a>
2016-08-21 23:23:11 +08:00
2017-07-29 06:54:08 +08: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
2017-11-09 05:44:08 +08:00
before finally succumbing to the [dark side][evil-mode]. This is his config.
2017-07-29 06:54:08 +08:00
2017-11-09 05:44:08 +08:00
Doom strives to be fast, fabulous and hacker friendly. It is tailored for
neckbeards with blue belts or better in command-line-fu, Elisp and git.
2017-07-29 06:54:08 +08:00
2017-11-09 05:44:08 +08:00
> Doom **only** supports Emacs >= 25.1, and is tested on Arch Linux 4.7+ and
> MacOS 10.11. YMMV on other platforms.
2016-08-21 23:23:11 +08:00
2017-07-29 06:54:08 +08:00
- - -
2016-05-24 08:56:19 +08:00
2017-07-29 06:54:08 +08:00
## Quick start
2015-06-14 23:26:03 +08:00
2016-10-06 03:50:34 +08:00
```bash
2017-09-07 19:24:14 +08:00
git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
2015-06-14 23:26:03 +08:00
cd ~/.emacs.d
2017-02-20 13:19:12 +08:00
cp init.example.el init.el # maybe edit init.el
make install
2017-05-26 07:56:57 +08:00
```
2017-05-26 02:08:50 +08:00
2017-11-09 05:44:08 +08:00
Don't forget to run `make` every time you modify init.el!
2017-07-29 06:54:08 +08:00
Visit the wiki for [a more detailed guide on installing, customizing and
grokking Doom][wiki].
## Feature highlights
+ A fast, organized and opinionated Emacs configuration with a command line
interface.
+ A custom, declarative [package management system][doom-packages] that combines
2017-11-09 05:44:08 +08:00
package.el, [use-package] and [quelpa], allowing you to manage packages from
the command line and install packages from sources other than ELPA.
2017-07-29 06:54:08 +08:00
+ A [popup management system][doom-popups] (powered by [shackle]) that minimizes
the presence and footprint of temporary and/or disposable buffers.
+ A vim-like experience with [evil-mode], including ports for several vim
2017-11-09 05:44:08 +08:00
plugins, <kbd>C-x</kbd> omnicompletion and a slew of [custom ex
commands][doom-my-commands].
+ Integration with [editorconfig]. Let someone else argue about tabs and spaces.
2017-07-29 06:54:08 +08:00
(spaces, duh).
2017-11-09 05:44:08 +08:00
+ Code completion for many languages, powered by [company-mode] (some languages
may have external dependencies).
+ Project-awareness powered by [projectile], with tools and an API to navigate
and manage projects and their files.
2017-07-29 06:54:08 +08:00
+ Fast project search (and replace) utilities, powered by [the_silver_searcher],
2017-11-09 05:44:08 +08:00
[ripgrep] and [wgrep], with integration for [ivy] (the default), [helm] and
ido.
+ Isolated and persistent workspaces powered by [persp-mode]. Also substitutes
for vim tabs.
2017-07-29 06:54:08 +08:00
+ Inline/live code evaluation (using [quickrun]), including REPLs for a variety
of languages.
2017-05-26 02:08:50 +08:00
2017-07-29 06:54:08 +08:00
## Troubleshooting
2017-05-26 07:56:57 +08:00
2017-07-29 06:54:08 +08:00
Found a problem? Here are some things to try:
2016-05-31 09:19:10 +08:00
2017-11-09 05:44:08 +08:00
+ Run `make install` to ensure all plugins are installed.
+ `void-function` or `void-variable` errors could signal an out-of-date
autoloads file. Run `make autoloads` or `M-x doom//reload-autoloads` to update
it.
+ Scan for common OS/environment issues with `make doctor`.
+ **Never debug byte-compiled code. It will interfere in subtle ways.** Clean up
\*.elc files with `make clean` or `M-x doom//clean-byte-compiled-files`.
2017-08-23 04:16:55 +08:00
+ Check [the FAQ][wiki-troubleshooting] to see if your issue is mentioned.
2017-11-09 05:44:08 +08:00
+ Check the relevant module's README.org, if one exists. There may be extra
steps to getting certain features to work.
2017-11-09 05:44:08 +08:00
If all else has failed, [file a bug report][doom-new-issue].
2017-07-29 06:54:08 +08:00
## Contribute
2017-05-26 02:08:50 +08:00
2017-07-29 06:54:08 +08:00
Doom (and my Emacs work in general) is a labor of love and incurable madness,
2017-11-09 05:44:08 +08:00
done on my spare time. It wasn't intended for public use, but I enjoy making
Doom a resource for others.
2017-05-26 02:08:50 +08:00
2017-07-29 06:54:08 +08:00
If you'd like to support my efforts, I welcome contributions of any kind:
2017-05-26 02:08:50 +08:00
2017-11-09 05:44:08 +08:00
+ I love pull requests and bug reports. Elisp pointers are especially welcome.
Seriously, don't hesitate to [tell me my Elisp-fu sucks][doom-new-issue]!
+ Talk to me about Emacs workflow, ideas or tooling. Or talk to me about
gamedev, or pixel art, or anime, or programming, or the weather, or band camp.
Whatever. I don't mind. Holler at henrik@lissner.net.
2016-09-09 15:00:34 +08:00
2017-08-22 07:16:33 +08:00
[wiki]: /../../wiki
[wiki-conventions]: /../../wiki/Conventions
[wiki-modules]: /../../wiki/Modules
[wiki-customization]: /../../wiki/Customization
2017-08-23 04:16:55 +08:00
[wiki-troubleshooting]: /../../wiki/FAQ#troubleshooting
2016-09-09 15:00:34 +08:00
2017-07-29 06:54:08 +08:00
[doom-my-bindings]: modules/private/hlissner/+bindings.el
[doom-my-commands]: modules/private/hlissner/+commands.el
2017-09-07 19:24:14 +08:00
[doom-new-issue]: https://github.com/hlissner/doom-emacs/issues/new
2017-07-29 06:54:08 +08:00
[doom-packages]: core/autoload/packages.el
[doom-popups]: core/core-popups.el
2017-05-04 16:57:03 +08:00
[doom-theme]: https://github.com/hlissner/emacs-doom-theme
2017-07-29 06:54:08 +08:00
[company-mode]: https://github.com/company-mode/company-mode
2017-05-04 16:57:03 +08:00
[editorconfig]: http://editorconfig.org/
2017-07-29 06:54:08 +08:00
[evil-mode]: https://github.com/emacs-evil/evil
[git-gutter-fringe]: https://github.com/syohex/emacs-git-gutter-fringe
[helm]: https://github.com/emacs-helm/helm
[ivy]: https://github.com/abo-abo/swiper
[persp-mode]: https://github.com/Bad-ptr/persp-mode.el
[projectile]: https://github.com/bbatsov/projectile
[quelpa]: https://github.com/quelpa/quelpa
[quickrun]: https://github.com/syohex/emacs-quickrun
[ripgrep]: https://github.com/BurntSushi/ripgrep
[shackle]: https://github.com/wasamasa/shackle
[the_silver_searcher]: https://github.com/ggreer/the_silver_searcher
[use-package]: https://github.com/jwiegley/use-package
2017-05-04 16:57:03 +08:00
[vim]: https://github.com/hlissner/.vim
2017-07-29 06:54:08 +08:00
[wgrep]: https://github.com/mhayashi1120/Emacs-wgrep