No description
Find a file
Brandon Orther dd97e10aa0 Remove flycheck js2 errors if eslint available.
Flycheck has it's own trailing command and semicolon warning that was
conflicting with the eslint settings. Now it disables those warnings if
eslint.js is setup for flycheck.
2017-09-30 02:20:25 -07:00
bin Add GNUTLS feature detection to doom doctor #175 2017-09-13 00:11:02 +02:00
core Silently autokill processes in closed popups 2017-09-27 14:48:23 +02:00
modules Remove flycheck js2 errors if eslint available. 2017-09-30 02:20:25 -07:00
.gitignore Ignore only root init.el 2017-06-13 11:38:02 +03:00
.travis.yml Remove git snapshot from travis.yml 2017-09-24 17:15:38 +02:00
CHANGELOG.org Change doom-popup-buffer & doom-popup-file signature 2017-09-24 20:41:14 +02:00
init.example.el Update init.example.el 2017-09-24 17:10:48 +02:00
init.test.el feature/workspaces: add some unit tests 2017-07-08 21:10:39 +02:00
LICENSE Update license 2017-01-06 17:33:43 -05:00
Makefile Removed colon from makefile task names 2017-09-23 13:48:07 +02:00
README.md Remove dead wiki link from README 2017-09-11 23:15:12 +02:00

Release tag Master Build Status Develop Build Status MIT

Main screenshot


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. 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 tailored for Arch Linux 4.7+ and Mac OS 10.11+.


Quick start

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.

Feature highlights

  • A fast, organized and opinionated Emacs configuration with a command line interface.
  • A custom, declarative package management system 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 (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.
  • 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 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.

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!
  • 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.