![Release tag](https://img.shields.io/github/tag/hlissner/doom-emacs.svg?label=release&style=flat-square) [![Master Build Status](https://img.shields.io/travis/hlissner/doom-emacs/master.svg?label=master&style=flat-square)](https://travis-ci.org/hlissner/doom-emacs) [![Develop Build Status](https://img.shields.io/travis/hlissner/doom-emacs/develop.svg?label=develop&style=flat-square)](https://travis-ci.org/hlissner/doom-emacs) [![MIT](https://img.shields.io/badge/license-MIT-green.svg?style=flat-square)](./LICENSE) [![Main screenshot](/../screenshots/main.png)](/../../tree/screenshots) - - -

Wiki | Screenshots | Troubleshooting | FAQ | Changelog

- - - 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 he finally succumbs to the [dark side][evil-mode]. This is his config. DOOM's philosophy is simple: be **fast**, be **readable**, and be **pretty**. It is tailored for neckbeards with a blue-belt or better in command-line-fu who don't shy away from dabbling with Elisp. Rip and tear. Until it compiles. > **Important:** Doom **only** supports Emacs >= 25.1, and is tested on Arch > Linux 4.7+ and Mac OS 10.11+. YMMV on other OSes and distros. - - - ## Quick start ```bash git clone https://github.com/hlissner/doom-emacs ~/.emacs.d cd ~/.emacs.d cp init.example.el init.el # maybe edit init.el make install ``` 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 package.el, [use-package] and [quelpa]. This lets you install packages from sources other than ELPA, as well as manage packages from the command line. + 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 plugins, C-x omnicompletion and a slew of [custom ex commands][doom-my-commands]. + Integration with [editorconfig]. Let someone else argue about tabs and spaces (spaces, duh). + Code completion for a variety of languages, powered by [company-mode] (there may be other dependencies for certain languages). + Project-awareness powered by [projectile], with tools to navigate and manage projects and project files. + Fast project search (and replace) utilities, powered by [the_silver_searcher], [ripgrep] and [wgrep], with [ivy] (the default), [helm] and ido integration. + Isolated and persistent workspaces powered by [persp-mode]. This can substitute for vim tabs. + Inline/live code evaluation (using [quickrun]), including REPLs for a variety of languages. ## Troubleshooting Found a problem? Here are some things to try: + Make sure all plugins are installed with `make install`. + A `void-function` or `void-variable` might signal an out-of-date autoloads file. Update it with `make autoloads`. + Diagnose common OS/environment issues that could interfere with Emacs with `make doctor`. + If you byte-compiled Doom, run `make clean` or `M-x doom/clean-compiled-files` and restart Emacs. Never debug byte-compiled code, it will interfere with your efforts in subtle (and not-so-subtle) ways. + Check [the FAQ][wiki-troubleshooting] to see if your issue is mentioned. + If your issue is associated with a particular module, like code-completion, check the module's README.org, if any. If all else fails, [file a bug report][doom-new-issue]. ## Contribute Doom (and my Emacs work in general) is a labor of love and incurable madness, done on my free time. It wasn't intended for public use, but I enjoy making Doom a resource for others. If you'd like to support my efforts, I welcome contributions of any kind: + I love pull requests and bug reports, and elisp pointers are especially welcome. Seriously, don't hesitate to [tell me my Elisp-fu sucks][doom-new-issue]! + I'm happy to discuss Emacs workflow, ideas or tooling. If you think I, Doom or other Emacs users could benefit from them (or you just want to chat), drop me a line at henrik@lissner.net. I'm eager to learn. [wiki]: /../../wiki [wiki-conventions]: /../../wiki/Conventions [wiki-modules]: /../../wiki/Modules [wiki-customization]: /../../wiki/Customization [wiki-troubleshooting]: /../../wiki/FAQ#troubleshooting [doom-my-bindings]: modules/private/hlissner/+bindings.el [doom-my-commands]: modules/private/hlissner/+commands.el [doom-new-issue]: https://github.com/hlissner/doom-emacs/issues/new [doom-packages]: core/autoload/packages.el [doom-popups]: core/core-popups.el [doom-theme]: https://github.com/hlissner/emacs-doom-theme [company-mode]: https://github.com/company-mode/company-mode [editorconfig]: http://editorconfig.org/ [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 [vim]: https://github.com/hlissner/.vim [wgrep]: https://github.com/mhayashi1120/Emacs-wgrep