README: general revision

This commit is contained in:
Henrik Lissner 2019-10-19 22:18:23 -04:00
parent b45a9c5e03
commit fb692a843f
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 66 additions and 72 deletions

136
README.md
View file

@ -1,14 +1,14 @@
<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">
<img src="https://img.shields.io/github/tag/hlissner/doom-emacs.svg?label=release&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+">
<img src="https://img.shields.io/badge/Made_for-Emacs_25.3+-blueviolet.svg" alt="Made for Emacs 25.3+">
</a>
<a href="https://github.com/hlissner/doom-emacs/actions">
<img src="https://github.com/hlissner/doom-emacs/workflows/CI/badge.svg" 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">
<img src="https://img.shields.io/badge/Discord-blue.svg?logo=discord&label=join" alt="Join our discord server" align="right">
</a>
<br><br>
@ -38,10 +38,12 @@ git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
**Table of Contents**
- [What is Doom Emacs](#what-is-doom-emacs)
- [Doom's mantras](#dooms-mantras)
- [Feature highlights](#feature-highlights)
- [Doom's mantras](#dooms-mantras)
- [Features](#features)
- [Getting Help](#getting-help)
- [Contributing](#contributing)
- [Community](#community)
- [Troubleshooting](#troubleshooting)
- [Contributing](#contributing)
# What is Doom Emacs
@ -53,62 +55,64 @@ 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
before succumbing to the [dark side][url:evil-mode]. This is his config.
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 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.
## Doom's mantras
- **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.
- **Gotta go fast.** Startup and run-time performance are high priorities.
Expensive plugins and functionality is modified and optimized toward this end,
otherwise, they must be opt-in.
- **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
reading it were part of the user experience; and it is!
- **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.
## Feature Highlights
## Features
- 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.
- A [popup management system][doom:popups] with customizable rules to dictate
how temporary/disposable buffers are displayed.
- 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].
- 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.
- 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).
- Indentation detection and [editorconfig][url:editorconfig] integration. Let
someone else argue about tabs vs **\_\***spaces**\*\_**.
- 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).
- 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.
- Project search (and replace) utilities, powered by
[the_silver_searcher][url:the_silver_searcher], [ripgrep][url:ripgrep], git-grep and
[wgrep][url:wgrep], with integration for [ivy][url:ivy] (the default) and
[helm][url:helm].
- 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
[dumb-jump][url:dumb-jump].
[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
# Troubleshooting
We have [a Discord server][url:discord]! Hop on and say hi!
## Troubleshooting
Encountered strange behavior or an error? Here are some things to try before you
shoot off that bug report:
@ -123,19 +127,18 @@ shoot off that bug report:
- [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
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
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
e</kbd> or `M-x view-echo-area-messages`).
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).
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).
We've also got [a Discord server][url:discord]. Hop on! We can help!
# Contributing
## Contributing
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:
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!
- I love pull requests and bug reports. Check out the [Contributing
Guidelines][docs:contributing] to find out how you can help out.
@ -158,24 +161,13 @@ contributions:
[docs:faq]: docs/faq.org
[github:new-issue]: https://github.com/hlissner/doom-emacs/issues/new
[doom:bindings]: modules/config/default/+evil-bindings.el
[doom:commands]: modules/editor/evil/+commands.el
[doom:packages]: core/autoload/packages.el
[doom:popups]: modules/ui/popup/README.org
[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
[url:dumb-jump]: https://github.com/jacktasia/dumb-jump
[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
[url:straight]: https://github.com/raxod502/straight.el

View file

@ -69,6 +69,8 @@ The following vim plugins have been ported to evil:
| vim-seek or vim-sneak | evil-snipe | mmap =s=/=S=, omap =z=/=Z= & =x=/=x= |
| vim-surround | evil-embrace and evil-surround | vmap =S=, omap =ys= |
This module has also ported vim-unimpaired keybinds to Emacs.
In other modules:
+ The tools/neotree & tools/treemacs modules provide a =NERDTree= equivalent.
+ The editor/multiple-cursors module contains functionality equal to the