doomemacs/README.md

103 lines
4.1 KiB
Markdown
Raw Normal View History

2016-05-23 20:56:19 -04:00
[![MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
2015-06-14 17:26:03 +02:00
2016-05-20 22:49:24 -04:00
This is an Emacs configuration for stubborn vimmers and silent demon
annihilating protagonists alike. It strives to emulate vim as best it can, and
surpass it in any way possible.
2015-06-14 17:26:03 +02:00
2016-05-30 21:19:10 -04:00
<center>
[![Yay! Evil!](https://raw.githubusercontent.com/hlissner/.emacs.d/screenshots/cacochan.png)](http://ultravioletbat.deviantart.com/art/Yay-Evil-111710573)
</center>
<br />
2016-06-07 00:56:33 -04:00
It is tailored to OSX 10.11+, Emacs 25+ and my needs as a software developer,
designer, scientist and doom enthusiast.
2016-05-30 21:19:10 -04:00
2016-05-24 22:28:37 -04:00
![Splash page screenshot](https://raw.githubusercontent.com/hlissner/.emacs.d/screenshots/scratch.png?raw=true)
![Main screenshots](https://raw.githubusercontent.com/hlissner/.emacs.d/screenshots/main.png?raw=true)
2016-05-23 20:56:19 -04:00
2015-06-14 17:26:03 +02:00
## Installation
```
2015-09-30 13:52:30 -04:00
brew install cask
2016-04-23 22:55:23 -04:00
brew install emacs --with-cocoa --with-imagemagick
2016-04-05 23:53:38 -04:00
git clone https://github.com/hlissner/.emacs.d ~/.emacs.d
2015-06-14 17:26:03 +02:00
cd ~/.emacs.d
make # installs plugins via cask and generates autoloads
2016-01-23 20:38:12 -05:00
2016-05-24 23:38:19 -04:00
# Optional
2016-05-30 21:19:10 -04:00
make compile # compiles core and autoloaded files
2016-02-26 09:30:41 -05:00
make snippets # install hlissner/emacs-snippets into private/snippets
```
2016-01-23 20:38:12 -05:00
2016-05-30 21:19:10 -04:00
For a more comprehensive byte compile, run `:bc!` (`:bc` will compile the
current *.el file).
2015-06-14 17:26:03 +02:00
## Features
2016-01-23 20:38:12 -05:00
To get a picture of what's in here, check out:
2015-12-12 03:18:14 -05:00
2016-05-20 22:37:30 -04:00
* **[The Caskfile](Cask)**: lists installed plugins and where they're configured.
* **[init.el](init.el)**: lists all loaded modules
* **[private/my-bindings.el](private/my-bindings.el)**: most of the custom keybinds
* **[private/my-commands.el](private/my-commands.el)**: available custom ex commands
* **[ext/Makefile](ext/Makefile)**: lists external dependencies
2015-12-12 03:18:14 -05:00
2016-04-05 23:53:38 -04:00
### Highlights
2015-12-12 03:18:14 -05:00
* Line numbers + highlight with **[nlinum]** <br />
* Syntax checking with **[flycheck]** <br />
* Completion with **[company-mode]** <br />
* Nigh-universal code debugging interface with **[realgud]**
* Project navigation with **[ivy]** and **[neotree]**
* Project search with **[counsel-ag]**
* Buffer search with **evil-search** and **[swiper]**
* Session persistence (and tab emulation) with **[workgroups2]**
* Run code inline with **[quickrun]**
* REPLs for many major modes with **[repl-toggle]**, including Ruby, Python, PHP,
JS, Elisp, Haskell and Lua.
* Minimalistic diffs in the margin with **[git-gutter-fringe]**
* Snippet expansion with **[yasnippet]** and **[auto-yasnippet]**
* File template support with **auto-insert** and **[yasnippet]**
2016-04-05 23:53:38 -04:00
* Code folding with **hideshow**
* Custom O/S interaction commands, like **os-reveal** and **os-open-in-browser**
2016-03-30 00:51:12 -04:00
* Custom TODO, FIXME and NOTE highlighting
* **big-mode** for presentations and demonstrations
* Tmux integration with `:t` and `:tcd` ex commands
* Tamed popup windows with **[shackle]**
* emacs for modern note-taking/LaTeX/writing with **org-mode** or **rst-mode**
* Vim-esque Emacs with **[evil-mode]**, plus:
* 2-char motions with **[evil-snipe]**
* Repeat (most) motions with <kbd>SPC</kbd>
* Multiple cursors with **[evil-multiedit]**
* Quick keybindings with `:[nviom]map`
* Vim-esque omnicompletion. e.g. `C-x C-f` for files
* Pretty mode-line with **[spaceline]**, plus:
* evil-search/iedit/evil-substitute mode-line integration
* Indicator when macro is recording<br/>
* Show python/ruby version in mode-line (with rbenv/pyenv)
[nlinum]: http://elpa.gnu.org/packages/nlinum.html
[flycheck]: https://melpa.org/#/flycheck
[company-mode]: https://melpa.org/#/company
[realgud]: https://melpa.org/#/realgud
[ivy]: https://melpa.org/#/ivy
[git-gutter-fringe]: https://melpa.org/#/git-gutter-fringe
[neotree]: https://melpa.org/#/neotree
[counsel-ag]: https://melpa.org/#/counsel
[swiper]: https://melpa.org/#/swiper
[evil-mode]: https://melpa.org/#/evil
[workgroups2]: https://melpa.org/#/workgroups2
[quickrun]: https://melpa.org/#/quickrun
[repl-toggle]: https://melpa.org/#/repl-toggle
[yasnippet]: https://melpa.org/#/yasnippet
[auto-yasnippet]: https://melpa.org/#/auto-yasnippet
[shackle]: https://melpa.org/#/shackle
[evil-snipe]: https://melpa.org/#/evil-snipe
[evil-multiedit]: https://melpa.org/#/evil-multiedit
[spaceline]: https://melpa.org/#/spaceline
2016-06-07 02:21:50 -04:00
## More screenshots
In the [screenshots branch](https://github.com/hlissner/.emacs.d/tree/screenshots).