2016-05-23 20:56:19 -04:00
|
|
|
[](./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>
|
|
|
|
[](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
|
|
|

|
|
|
|

|
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
|
|
|
|
2016-06-07 02:20:50 -04: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**
|
2016-06-07 02:20:50 -04:00
|
|
|
* 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
|
2016-06-07 02:20:50 -04:00
|
|
|
* 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).
|