Go to file
2017-08-21 20:13:30 +02:00
bin bin/doom-doctor: refactor + speed up tls checks 2017-08-05 13:19:51 +02:00
core Ensure module state is initialized on make test 2017-08-09 15:30:42 +02:00
modules Remove modules/README.org (replaced by wiki) 2017-08-21 20:13:30 +02:00
.gitignore
.travis.yml Remove DEBUG=1 from travis build 2017-06-28 18:02:15 +02:00
CHANGELOG.org Update changelog 2017-08-11 19:57:57 +02:00
init.example.el Merge pull request #150 from bandresen/feature_hydra 2017-07-17 12:41:08 +02:00
init.test.el feature/workspaces: add some unit tests 2017-07-08 21:10:39 +02:00
LICENSE
Makefile Add doom/recompile-packages (make compile:elpa) 2017-07-28 19:21:00 +02:00
README.md Rewrite README 2017-08-21 20:13:30 +02:00

Release tag Master Build Status Develop Build Status MIT

Main screenshot


Documentation | 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 pretty, and be vim (or better). 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 is done.

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/.emacs.d ~/.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.

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 (read the contribution guidelines first though!), 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.