diff --git a/README.md b/README.md index cbd436050..d43326a7e 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ - Made with Doom Emacs + Made with Doom Emacs - Made for Emacs 25.3+ + Made for Emacs 25.3+ Build status: develop - Join our discord server + Join our discord server

@@ -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, C-x 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 (SPC and SPCm, 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 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 SPC h e 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 diff --git a/modules/editor/evil/README.org b/modules/editor/evil/README.org index a8209cb27..71421299a 100644 --- a/modules/editor/evil/README.org +++ b/modules/editor/evil/README.org @@ -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