Go to file
Henrik Lissner 4bb4b5ebb9 lang/org: better font-lock reconfig
+ TODO/DONE tags now respect underlying faces
+ ...but still fontify a complete heading properly
+ Statistics cookies (e.g. [3/14]) now respect their underlying faces
+ ...but respect org-headlined-one more
+ Refactor other font-lock rules
2017-05-19 13:21:39 +02:00
bin
core Fix whitespacing-eating in org-tables on SPC/DEL 2017-05-19 13:20:50 +02:00
modules lang/org: better font-lock reconfig 2017-05-19 13:21:39 +02:00
test
.gitignore
.travis.yml
init.example.el Update init.example.el 2017-05-16 00:48:06 +02:00
LICENSE
Makefile Involve autoremove in make default task 2017-05-16 22:25:51 +02:00
README.md Fix README ripgrep link 2017-05-18 22:59:57 +03:00
TODO.org General refactor & cleanup + update TODO 2017-05-17 18:27:02 +02:00

Main screenshot

MIT DOOM v2.0.2 Build Status

This is an Emacs configuration for a stubborn, melodramatic and shell-dwelling vimmer disappointed with the text-editor status quo.

Doom tries to: look and act like modern editors (whatever that means to me on any given day), espouse vim's modal philosophy as best it can and strive to surpass vim in any way possible. It fits my needs as a software developer, indie game developer, scientist and doom enthusiast.

It was tailored for Emacs 25.1+ on MacOS 10.11+ and Arch Linux 4.7+. I use vim everywhere else.

Installation

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
make compile       # optional, may take a while
make compile-lite  # optional (lighter alternative to compile)

Run make after making changes to modules (like adding packages or autoloaded functions). This is the equivalent of:

make install       # or (doom/packages-install)
make autoloads     # or (doom/reload-autoloads)

You can run any Make command with DEBUG=1 for added logging verbosity, and YES=1 to auto-accept any confirmation prompts.

Deciphering my emacs.d

So you want to grok some of this madness. Here are a few suggestions:

Highlights

  • A popup window management system using shackle to minimize mental context switching while dealing with temporary or disposable buffers.
  • Per-project code-style settings with editorconfig. Let someone else argue about tabs versus spaces (spaces > tabs, btw).
  • Workspaces & session persistence with persp-mode. This provides tab emulation that vaguely resembles vim tabs.
  • Project & workspace-aware buffer navigation and functions.
  • A vim-centric environment with evil-mode
  • Fast search utilities:
  • REPLs & inline/live code evaluation (using quickrun) with languages support for Ruby, Python, PHP, JS, Elisp, Haskell, Lua and more.
  • Minimalistic diffs in the fringe with git-gutter-fringe.
  • A do-what-I-mean jump-to-definition implementation that tries its darnest to find the definition of what you're looking at. It tries major-mode commands, xref (experimental Emacs library) dumb-jump, ctags (WIP), then counsel-ag.
  • Snippets and file-templates with yasnippet.
  • A smarter, perdier, Atom-inspired mode-line that includes:
    • evil-search/iedit/evil-substitute mode-line integration
    • Macro-recording indicator
    • Python/ruby version in mode-line (for rbenv/pyenv)
  • Emacs as an:
    • Email client (using mu4e & offlineimap)
    • Presentation app (using org-tree-slides, ox-reveal, +present/big-mode & impatient-mode)
    • RSS feed reader (using elfeed)
    • Word Processor (using LaTeX, Org and Markdown)

Contributing or troubleshooting

My config wasn't intended for public use, but I'm happy to help you use or crib from my config. I welcome contributions of any kind; documentation, bug fixes/reports, even elisp tips.

Don't hesitate to tell me my Elisp-fu sucks!