Update readme
This commit is contained in:
parent
0296a63c55
commit
af8b575808
1 changed files with 25 additions and 33 deletions
58
README.md
58
README.md
|
@ -4,15 +4,11 @@
|
||||||
|
|
||||||
> What we do every night, Pinky...
|
> What we do every night, Pinky...
|
||||||
|
|
||||||
This is Emacs for stubborn vimmers and megalomaniacal mice alike. Its goals are:
|
This is the Emacs configuration for stubborn vimmers and megalomaniacal mice alike. It
|
||||||
first, to emulate vim as best it can, and second, surpass it in any possible
|
strives to emulate vim as best it can, and surpass it in any way possible.
|
||||||
way. Narf uses [Evil-mode](https://gitorious.org/evil/pages/Home) to emulate
|
|
||||||
vim, Cask to manage plugins, and a slew of jury-rigged neckbeard shenanigans to
|
|
||||||
keep my mountain dew cool.
|
|
||||||
|
|
||||||
It is tailored for OSX users running Emacs **24.5+**
|
It is tailored to my needs as a software developer, data scientist and writer, running
|
||||||
|
OSX and Emacs **25.1+**.
|
||||||
Any contributions or suggestions are welcome. The world won't take over itself.
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
@ -22,12 +18,15 @@ brew install emacs --devel --with-imagemagick --with-librsvg --with-cocoa
|
||||||
git clone --recursive https://github.com/hlissner/emacs.d ~/.emacs.d
|
git clone --recursive 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
|
||||||
make compile # optionally byte-compiles everything
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
And to optionally byte-compile everything:
|
||||||
|
|
||||||
|
`make compile # optionally byte-compiles everything`
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
To get a picture of what's in NARF 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)**: contains a list of all the installed plugins, and to find where
|
||||||
they're configured.
|
they're configured.
|
||||||
|
@ -35,9 +34,6 @@ To get a picture of what's in NARF check out:
|
||||||
* **[private/my-bindings.el](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](private/my-commands.el)**: available custom ex commands
|
* **[private/my-commands.el](private/my-commands.el)**: available custom ex commands
|
||||||
|
|
||||||
It's true, I've spent _too much time_ fighting Emacs, trying to make it more vim-like. I'm
|
|
||||||
just stubborn. Here is a little of what to expect from NARF:
|
|
||||||
|
|
||||||
### Basic
|
### Basic
|
||||||
|
|
||||||
* Modal editing with **evil-mode**
|
* Modal editing with **evil-mode**
|
||||||
|
@ -59,20 +55,17 @@ just stubborn. Here is a little of what to expect from NARF:
|
||||||
|
|
||||||
### Advanced
|
### Advanced
|
||||||
|
|
||||||
* **Popup control with Shackle**: I've gone through lengths to tame popups in Emacs with
|
* **Popup control with Shackle**: I've (mostly) tamed window popups in Emacs with
|
||||||
Shackle (popwin was unstable and slow), that includes popups made by: Helm,
|
Shackle (popwin was unstable and slow), that includes those made by: Helm,
|
||||||
vc-annotate, quickrun, neotree, \*messages\*, org-mode--and more! It works well. It's
|
vc-annotate, quickrun, neotree, \*messages\*, org-mode--and others.
|
||||||
not perfect, but it's getting there.
|
|
||||||
* **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,
|
||||||
`helm-ag` can be used via `:ag [KEYWORDS]`, or `align-regexp` via `:align [regexp]`.
|
`:t [ARGS]` and `:tcd` for tmux, `:ag [KEYWORDS]` for helm-ag, and `:align [REGEXP]`
|
||||||
See [my-commands.el](private/my-commands.el) for others.
|
for align-regexp.
|
||||||
* **Communicating with Tmux**: using `:t [CMD]` (sends to tmux) and `:tcd` (cd's to
|
* **Incremental highlighting for `:g[lobal]`**: evil's stock global command does not
|
||||||
default-directory)
|
do this (`:align` will also highlight matches).
|
||||||
* **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
|
* **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-mc](https://github.com/gabesoft/evil-mc), but until I jump ship I use
|
||||||
**evil-iedit**. To invoke it, hop into visual mode, select a region and press
|
**evil-iedit**. 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>.
|
||||||
|
@ -97,7 +90,7 @@ just stubborn. Here is a little of what to expect from NARF:
|
||||||
(company-select-previous-or-abort))))
|
(company-select-previous-or-abort))))
|
||||||
```
|
```
|
||||||
|
|
||||||
* **REPLs via popwin**: 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
|
||||||
|
@ -109,19 +102,18 @@ just stubborn. Here is a little of what to expect from NARF:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Also, switch between them with ⌘-1 through ⌘-9.
|
⌘-1 - ⌘-9 keybindings work as well.
|
||||||
|
|
||||||
* **Minimalistic mapping macro**: I liked how concise mapping keys in viml was. I
|
* **Minimalistic mapping macro**: I liked how concise mapping keys in viml was. I
|
||||||
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**: this is an altogether different beast. I've use Org for everything, from
|
* **Org-mode**: I use Org for everything; CRM, note-taking, invoicing, prototyping
|
||||||
CRM, to GTD/note-taking, to invoicing, to prototyping code (with org-babel). I've
|
code (with org-babel), etc. I've added babel support for Rust and Go. I've written
|
||||||
installed babel plugins for Rust and Go. I've written #+CALL methods for
|
#+CALL methods for extracting/compiling information with my CRM org plaintext files.
|
||||||
extracting/compiling information with my CRM org plaintext files. It's set up to
|
It's set up to display equations with LaTeX, sheet music with lilypond, and diagrams
|
||||||
display equations with LaTeX, sheet music with lilypond, and diagrams with ditaa or
|
with ditaa or plantuml. There is too much to cover in only one paragraph, is
|
||||||
plantuml. There is too much to cover in only one paragraph, and it's constantly
|
constantly evolving, and isn't entirely included in this repo.
|
||||||
evolving.
|
|
||||||
* **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 like how anzu
|
||||||
displays state about the current search in the mode-line, so I wrote mode-line
|
displays state about the current search in the mode-line, so I wrote mode-line
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue