doomemacs/README.md

80 lines
3.1 KiB
Markdown
Raw Normal View History

2016-05-21 10:49:24 +08:00
![DOOM Emacs](/../screenshots/scratch.png?raw=true)
2016-01-24 10:10:40 +08:00
![Screenshot](/../screenshots/main.png?raw=true)
2015-06-14 23:26:03 +08:00
2016-05-21 10:49:24 +08: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 23:26:03 +08:00
## Installation
```
2015-10-01 01:52:30 +08:00
brew install cask
2016-04-24 10:55:23 +08:00
brew install emacs --with-cocoa --with-imagemagick
2016-04-06 11:53:38 +08:00
git clone https://github.com/hlissner/.emacs.d ~/.emacs.d
2015-06-14 23:26:03 +08:00
cd ~/.emacs.d
make # installs plugins via cask and generates autoloads
```
2016-02-26 22:30:41 +08:00
And to optionally:
2016-01-24 09:38:12 +08:00
2016-02-26 22:30:41 +08:00
```
make compile # optionally byte-compiles everything
make snippets # install hlissner/emacs-snippets into private/snippets
```
2016-01-24 09:38:12 +08:00
2015-06-14 23:26:03 +08:00
## Features
2016-01-24 09:38:12 +08:00
To get a picture of what's in here, check out:
2015-12-12 16:18:14 +08:00
2016-05-21 10:37:30 +08: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 16:18:14 +08:00
2016-04-06 11:53:38 +08:00
### Highlights
2015-12-12 16:18:14 +08:00
2016-03-30 12:51:12 +08:00
* Pretty line numbers with **nlinum** and neckbearded hackery
* Syntax checking with **Flycheck**
* Completion with **company-mode**
2016-04-24 10:11:14 +08:00
* Nigh-universal code debugging interface with **realgud**
2016-03-30 12:51:12 +08:00
* Pretty mode-line with **spaceline**
* Project navigation with **helm** and **neotree**
* Project search with **ag** and file search with **evil-search** or **helm-swoop**
* Project-wide search and replace with **helm-ag** (press shift-Tab while in results
buffer)
* Session persistence (and tab emulation) with **workgroups2**
2016-04-06 11:53:38 +08:00
![Workgroups2 tabs emulation](/../screenshots/tabs.png?raw=true)
2016-03-30 12:51:12 +08:00
* Run code inline with **quickrun**
2016-04-06 11:53:38 +08:00
* REPLs for many major modes with **repl-toggle**, including Ruby, Python,
2016-03-30 12:51:12 +08:00
PHP, JS, Elisp, Haskell and Lua.
2016-04-06 11:53:38 +08:00
* 2-char motions with **evil-snipe**
* Diffs in the margin with **git-gutter**
2016-03-30 12:51:12 +08:00
* Repeat (most) motions with <kbd>SPC</kbd>
2016-04-06 11:53:38 +08:00
* Snippet expansion with **yasnippet** and **auto-yasnippet**
2016-03-30 12:51:12 +08:00
* File template support with **auto-insert** and **yasnippet**
2016-04-06 11:53:38 +08:00
* Code folding with **hideshow**
2016-05-20 21:24:52 +08:00
* Multiple cursors with **[evil-multiedit](https://github.com/hlissner/evil-multiedit)**
2016-03-30 12:51:12 +08:00
* O/S interaction functions, like **os-reveal** and **os-open-in-browser**
* Custom TODO, FIXME and NOTE highlighting
* **big-mode** for presentations and demonstrations
* Tmux integration with `:t` and `:tcd` ex commands
2016-04-06 11:53:38 +08:00
* Tamed popup windows with **shackle**
* Vim-esque omnicompletion. e.g. `C-x C-f` for files
* Quick keybindings with `:[nviom]map`
* Emacs for modern note-taking/LaTeX/writing with **org-mode** or **rst-mode**
2016-03-30 12:51:12 +08:00
* **Modeline improvements**
2016-04-06 11:53:38 +08:00
* evil-search/iedit/evil-substitute mode-line integration:
2016-03-30 12:51:12 +08:00
![matches count in mode-line](/../screenshots/search.png?raw=true)
![substitutions count in mode-line](/../screenshots/subst.png?raw=true)
2016-04-06 11:53:38 +08:00
* Macro-recording indicator:
2016-03-30 12:51:12 +08:00
![macro indicator in modeline](/../screenshots/macro.png?raw=true)
2016-04-06 11:53:38 +08:00
* Show (py|rb)env version in mode-line
2016-03-30 12:51:12 +08:00
![py/rb version in modeline](/../screenshots/version.png?raw=true)
2015-06-14 23:26:03 +08:00
2016-05-21 10:49:24 +08:00
---
![Yay! Evil!](/../screenshots/cacochan.png)