diff --git a/README.md b/README.md
index 903f4a3b9..6c18e5c08 100644
--- a/README.md
+++ b/README.md
@@ -4,54 +4,62 @@
> What we do every night, Pinky...
-This is the Emacs configuration for stubborn vimmers and megalomaniacal mice alike. It
+This is an Emacs configuration for stubborn vimmers and megalomaniacal mice alike. It
strives to emulate vim as best it can, and surpass it in any way possible.
-It is tailored to my needs as a software developer, data scientist and writer, running
-OSX and Emacs **25.1+**.
+It is tailored to my needs as an software developer (app, game, and web), data scientist,
+and writer running OSX and Emacs **24.5+**.
## Installation
```
brew install cask
-brew install emacs --devel --with-imagemagick --with-librsvg --with-cocoa
-git clone --recursive https://github.com/hlissner/emacs.d ~/.emacs.d
+brew tap railwaycat/emacsmacport
+brew install emacs-mac --with-imagemagick --with-modern-icon
+git clone --depth 1 https://github.com/hlissner/emacs.d ~/.emacs.d
cd ~/.emacs.d
make # installs plugins via cask and generates autoloads
```
-And to optionally byte-compile everything:
+And to optionally:
-`make compile # optionally byte-compiles everything`
+```
+make compile # optionally byte-compiles everything
+make snippets # install hlissner/emacs-snippets into private/snippets
+```
## Features
To get a picture of what's in here, check out:
-* **[The Caskfile](Cask)**: contains a list of all the installed plugins, and to find where
- they're configured.
-* **[init.el](init.el)**: lists all the 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
+* **[The Caskfile](Cask)**: lists installed plugins and where they're configured.
+* **[init.el](init.el)**: lists all loaded modules
+* **[private/my-bindings.el]**: most of the custom keybinds
+* **[private/my-commands.el]**: available custom ex commands
### Basic
* Modal editing with **evil-mode**
+ * Pretty line numbers with **nlinum** and neckbearded hackery
* Syntax checking with **Flycheck**
* Completion with **company-mode**
* Pretty mode-line with **spaceline**
* Project navigation with **helm** and **neotree**
* Session persistence (and tab emulation) with **workgroups2**
* Run code inline with **quickrun**
+ * On-demand REPLs for many major modes with **repl-toggle**, including Ruby, Python,
+ PHP, JS, Elisp, and Lua.
* 2-char searching with **evil-snipe**
* Display diffs in the margin with **git-gutter**
- * Repeat (most) motions with SPC
- * Snippets with **yasnippet**
+ * Repeat (most) motions with SPC
+ * Snippet expansion with **yasnippet**
* File template support with **auto-insert** and **yasnippet**
- * *writing-mode* for distractions-free typing in any mode
* Code folding with **hideshow**; doesn't allow arbitrary folds though
- * Multiple region editing with **iedit**
+ * Multiple cursors with **[evil-multiedit]**
* 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
### Advanced
@@ -60,12 +68,12 @@ To get a picture of what's in here, check out:
vc-annotate, quickrun, neotree, \*messages\*, org-mode--and others.
* **Ex compatibility**: I've given quite a few plugins an Ex interface. For instance,
`:t [ARGS]` and `:tcd` for tmux, `:ag [KEYWORDS]` for helm-ag, and `:align [REGEXP]`
- for align-regexp.
+ for align-regexp. See [private/my-commands.el] for more.
* **Incremental highlighting for `:g[lobal]`**: evil's stock global command does not
do this (`:align` will also highlight matches).
- * **iedit instead of multiple-cursors**: I've got my eye on
- [evil-mc](https://github.com/gabesoft/evil-mc), but until I jump ship I use
- **evil-iedit**. To use it, hop into visual mode, select a region and press
+ * **A multiple cursor implementation using iedit**: I could never get [evil-mc] working,
+ and [multiple-cursors] doesn't play nice with evil-mode, so I wrote [evil-multiedit].
+ **evil-multiedit**. To use it, hop into visual mode, select a region and press
S-r (shift-R). Your edits will apply to all highlighted regions. To limit
iedit's scope: while in iedit mode go into visual, select a range and press
SPC.
@@ -77,7 +85,7 @@ To get a picture of what's in here, check out:
```
C-x C-l 'narf/company-whole-lines
- C-x C-k 'company-dict
+ C-x C-k 'narf/company-dict-or-keywords
C-x C-f 'company-files
C-x C-] 'company-tags
C-x s 'company-ispell
@@ -90,7 +98,7 @@ To get a picture of what's in here, check out:
(company-select-previous-or-abort))))
```
- * **Popup REPLs**: currently supports python(ipython), ruby (pry), php (boris),
+ * **Popup REPLs**: currently supports python (ipython), ruby (pry), php (boris),
elisp (ielm), lua, js (nodejs), and the shell. More support later, hopefully for go
and rust.
* **Yasnippet + auto-insert = file-templates with editable fields**: _and_ it works with
@@ -108,25 +116,17 @@ To get a picture of what's in here, check out:
brought a little of that to Emacs by defining `map!`, a macro for defining keybindings
in as little space as possible. [See my bindings](private/my-bindings.el) for an
example.
- * **Org-mode**: I use Org for everything; CRM, note-taking, invoicing, prototyping
- code (with org-babel), etc. I've added babel support for Rust and Go. I've written
- #+CALL methods for extracting/compiling information with my CRM org plaintext files.
- It's set up to display equations with LaTeX, sheet music with lilypond, and diagrams
- with ditaa or plantuml. There is too much to cover in only one paragraph, is
- constantly evolving, and isn't entirely included in this repo.
* **Modeline improvements**
- * **evil-search/iedit/evil-substitute mode-line integration**: I like how anzu
- displays state about the current search in the mode-line, so I wrote mode-line
- segments to display matches for evil-search (e.g. `/`/`?` searches), evil-substitute
- (e.g. `%s/foo/bar`) and iedit.
+ * **evil-search/iedit/evil-substitute mode-line integration**: I better integrated
+ Anzu, evil-search, evil-substitute (e.g. `%s/foo/bar`) and
+ [evil-multiedit](https://github.com/hlissner/evil-multiedit) into the mode-line.


- * **Macro-recording indicator**: Displays an indicator that you are recording a macro
- (and what register it's being recorded into).
+ * **Macro-recording indicator**:

- * **Show (py|rb)env version in mode-line**: see `define-env-command` on how to set it up
+ * **Show (py|rb)env version in mode-line**: see `define-env-command!` on how to set it up
for other modes. It only displays in their respective major-modes.

@@ -134,3 +134,10 @@ To get a picture of what's in here, check out:
## What about Windo-

+
+
+ [private/my-bindings.el]: private/my-bindings.el
+ [private/my-commands.el]: private/my-commands.el
+ [evil-mc]: https://github.com/gabesoft/evil-mc
+ [multiple-cursors]: https://github.com/magnars/multiple-cursors.el
+ [evil-multiedit]: https://github.com/hlissner/evil-multiedit