Update README
This commit is contained in:
parent
591ed6e7a3
commit
d2b721445a
1 changed files with 42 additions and 35 deletions
77
README.md
77
README.md
|
@ -4,54 +4,62 @@
|
||||||
|
|
||||||
> What we do every night, Pinky...
|
> 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.
|
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
|
It is tailored to my needs as an software developer (app, game, and web), data scientist,
|
||||||
OSX and Emacs **25.1+**.
|
and writer running OSX and Emacs **24.5+**.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```
|
```
|
||||||
brew install cask
|
brew install cask
|
||||||
brew install emacs --devel --with-imagemagick --with-librsvg --with-cocoa
|
brew tap railwaycat/emacsmacport
|
||||||
git clone --recursive https://github.com/hlissner/emacs.d ~/.emacs.d
|
brew install emacs-mac --with-imagemagick --with-modern-icon
|
||||||
|
git clone --depth 1 https://github.com/hlissner/emacs.d ~/.emacs.d
|
||||||
cd ~/.emacs.d
|
cd ~/.emacs.d
|
||||||
make # installs plugins via cask and generates autoloads
|
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
|
## Features
|
||||||
|
|
||||||
To get a picture of what's in here, check out:
|
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
|
* **[The Caskfile](Cask)**: lists installed plugins and where they're configured.
|
||||||
they're configured.
|
* **[init.el](init.el)**: lists all loaded modules
|
||||||
* **[init.el](init.el)**: lists all the loaded modules
|
* **[private/my-bindings.el]**: most of the custom keybinds
|
||||||
* **[private/my-bindings.el](private/my-bindings.el)**: most of the custom keybinds
|
* **[private/my-commands.el]**: available custom ex commands
|
||||||
* **[private/my-commands.el](private/my-commands.el)**: available custom ex commands
|
|
||||||
|
|
||||||
### Basic
|
### Basic
|
||||||
|
|
||||||
* Modal editing with **evil-mode**
|
* Modal editing with **evil-mode**
|
||||||
|
* Pretty line numbers with **nlinum** and neckbearded hackery
|
||||||
* Syntax checking with **Flycheck**
|
* Syntax checking with **Flycheck**
|
||||||
* Completion with **company-mode**
|
* Completion with **company-mode**
|
||||||
* Pretty mode-line with **spaceline**
|
* Pretty mode-line with **spaceline**
|
||||||
* Project navigation with **helm** and **neotree**
|
* Project navigation with **helm** and **neotree**
|
||||||
* Session persistence (and tab emulation) with **workgroups2**
|
* Session persistence (and tab emulation) with **workgroups2**
|
||||||
* Run code inline with **quickrun**
|
* 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**
|
* 2-char searching with **evil-snipe**
|
||||||
* Display diffs in the margin with **git-gutter**
|
* Display diffs in the margin with **git-gutter**
|
||||||
* Repeat (most) motions with SPC
|
* Repeat (most) motions with <kbd>SPC</kbd>
|
||||||
* Snippets with **yasnippet**
|
* Snippet expansion with **yasnippet**
|
||||||
* File template support with **auto-insert** and **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
|
* 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**
|
* 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
|
### 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.
|
vc-annotate, quickrun, neotree, \*messages\*, org-mode--and others.
|
||||||
* **Ex compatibility**: I've given quite a few plugins an Ex interface. For instance,
|
* **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]`
|
`: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
|
* **Incremental highlighting for `:g[lobal]`**: evil's stock global command does not
|
||||||
do this (`:align` will also highlight matches).
|
do this (`:align` will also highlight matches).
|
||||||
* **iedit instead of multiple-cursors**: I've got my eye on
|
* **A multiple cursor implementation using iedit**: I could never get [evil-mc] working,
|
||||||
[evil-mc](https://github.com/gabesoft/evil-mc), but until I jump ship I use
|
and [multiple-cursors] doesn't play nice with evil-mode, so I wrote [evil-multiedit].
|
||||||
**evil-iedit**. To use it, hop into visual mode, select a region and press
|
**evil-multiedit**. To use it, hop into visual mode, select a region and press
|
||||||
<kbd>S-r</kbd> (shift-R). Your edits will apply to all highlighted regions. To limit
|
<kbd>S-r</kbd> (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
|
iedit's scope: while in iedit mode go into visual, select a range and press
|
||||||
<kbd>SPC</kbd>.
|
<kbd>SPC</kbd>.
|
||||||
|
@ -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-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-f 'company-files
|
||||||
C-x C-] 'company-tags
|
C-x C-] 'company-tags
|
||||||
C-x s 'company-ispell
|
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))))
|
(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
|
elisp (ielm), lua, js (nodejs), and the shell. More support later, hopefully for go
|
||||||
and rust.
|
and rust.
|
||||||
* **Yasnippet + auto-insert = file-templates with editable fields**: _and_ it works with
|
* **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
|
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
|
in as little space as possible. [See my bindings](private/my-bindings.el) for an
|
||||||
example.
|
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**
|
* **Modeline improvements**
|
||||||
* **evil-search/iedit/evil-substitute mode-line integration**: I like how anzu
|
* **evil-search/iedit/evil-substitute mode-line integration**: I better integrated
|
||||||
displays state about the current search in the mode-line, so I wrote mode-line
|
Anzu, evil-search, evil-substitute (e.g. `%s/foo/bar`) and
|
||||||
segments to display matches for evil-search (e.g. `/`/`?` searches), evil-substitute
|
[evil-multiedit](https://github.com/hlissner/evil-multiedit) into the mode-line.
|
||||||
(e.g. `%s/foo/bar`) and iedit.
|
|
||||||
|
|
||||||

|

|
||||||

|

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

|

|
||||||
* **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.
|
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-
|
## 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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue