No description
Find a file
Henrik Lissner 7f79eb4579
Major redesign of emacs/eshell
+ :sh can now be fed commands to run immediately, e.g. :sh cd %:P to
  start from the current project root.
+ Eshell will spawn a new eshell on every split. This can be controlled
  via `+eshell-enable-new-shell-on-split'
+ Eshell can be configured to kill the window when you kill the eshell
  process. This is disabled by default. See
  `+eshell-kill-window-on-exit'. Some commands ignore this, like the
  quit-and-close command (I alias this to "q").
+ eshell-directory-name has been moved to doom-etc-dir/eshell. It will
  seem like eshell has forgotten all your history, but you can move
  ~/.eshell (or ~/.doom.d/eshell) to ~/.emacs.d/.local/etc/eshell and
  you'll be fine.
+ eshell-aliases-file has been moved to ~/.doom.d/eshell_aliases by
  default.
+ Automatic writing to eshell-aliases-file has been disabled. No shell
  so aggressively persists aliases. You may maintain it yourself, or use
  the new +eshell-aliases variable to customize eshell from Doom.
+ C-s now invokes a history search with ivy/helm.
+ C-c s and C-c v split horizontally and vertically. Inspired by tmux.
+ C-c x kill the current eshell and its window. Inspired by tmux.j
+ New set-eshell-alias! autodef for defining your own aliases.
+ +eshell/open-workspace has been replaced with +eshell/open-fullscreen.
+ Added the "cd-to-project" command. I suggest you alias it.
2018-06-18 22:31:27 +02:00
.github Update issue/pr templates 2018-01-02 14:41:10 -05:00
bin Improve bin/org-tangle #691 2018-06-17 14:22:29 +02:00
core Fix disabled autodefs defined with cl-lib 2018-06-18 17:30:33 +02:00
modules Major redesign of emacs/eshell 2018-06-18 22:31:27 +02:00
.gitignore Remove main init.el from gitignore 2018-04-03 19:48:11 -04:00
.travis.yml travis: disable debug output while installing 2018-06-15 04:33:41 +02:00
early-init.el Move startup optimization to early-init 2018-06-16 11:38:19 +02:00
init.el Move startup optimization to early-init 2018-06-16 11:38:19 +02:00
init.example.el Enable +irony +rtags by default in init.example.el 2018-06-17 14:45:07 +02:00
init.test.el Update init.{example,test}.el & travis for new config policy 2018-04-03 23:33:23 -04:00
LICENSE Update license year 2018-02-01 01:49:13 -05:00
Makefile Clean up makefile & update it to match bin/doom 2018-05-24 16:05:52 +02:00
README.md Update README with new make quickstart workflow 2018-04-04 06:17:56 -04:00

Current release build status (master) build status (develop) Chat on discord 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 finally succumbing to the dark side. This is his config.

Doom strives to be fast, fabulous and hacker friendly. It is tailored for neckbeards with blue belts or better in command-line-fu, Elisp and git.

Doom only supports Emacs >= 25.1, and is tested on Arch Linux 4.7+ and MacOS 10.11. YMMV on other platforms.


Quick start

git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
cd ~/.emacs.d
make quickstart

Don't forget to run make each time you modify init.el or update Doom!

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, allowing you to manage packages from the command line and install packages from sources other than ELPA.
  • 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 many languages, powered by company-mode (some languages may have external dependencies).
  • Project-awareness powered by projectile, with tools and an API to navigate and manage projects and their files.
  • Fast project search (and replace) utilities, powered by the_silver_searcher, ripgrep and wgrep, with integration for ivy (the default), helm and ido.
  • Isolated and persistent workspaces powered by persp-mode. Also substitutes 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:

  • Run make install to ensure all plugins are installed.
  • void-function or void-variable errors could signal an out-of-date autoloads file. Run make autoloads or M-x doom//reload-autoloads to update it.
  • Scan for common OS/environment issues with make doctor.
  • Never debug byte-compiled code. It will interfere in subtle ways. Clean up *.elc files with make clean or M-x doom//clean-byte-compiled-files.
  • Check the FAQ to see if your issue is mentioned.
  • Check the relevant module's README.org, if one exists. There may be extra steps to getting certain features to work.

If all else has failed, file a bug report.

Contribute

Doom (and my Emacs work in general) is a labor of love and incurable madness, done on my spare 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. Elisp pointers are especially welcome. Seriously, don't hesitate to tell me my Elisp-fu sucks!
  • Talk to me about Emacs workflow, ideas or tooling. Or talk to me about gamedev, or pixel art, or anime, or programming, or the weather, or band camp. Whatever. I don't mind. Holler at henrik@lissner.net.