Edit evil-snipe README

This commit is contained in:
syl20bnr 2015-03-07 00:07:18 -05:00
parent 3ee86b1183
commit c826380ca7

View file

@ -19,9 +19,9 @@ The package [evil-snipe](https://github.com/hlissner/evil-snipe)
- enables more efficient searches with `f/F/t/T`.
- adds a new, more precise search with `s/S`
Evil-snipe enables you to search more quickly and precisely in the buffer.
It does so by improving on the built in `f`/`F`/`t`/`T` searches and adding another search command, namely
`s`/`S`.
Evil-snipe allows you to search more quickly and precisely in the buffer.
It does so by improving on the built in `f`/`F`/`t`/`T` searches and
adding another search command, namely `s`/`S`.
`evil-snipe` changes `s/S` behavior in order to search forward/backwards in the
buffer with two chars.
@ -38,9 +38,10 @@ To use this contribution add it to your `~/.spacemacs`
### Improved f and t search behavior
With evil-snipe you can define your own search scope for `f` and `t` searches which means that you won't have to jump to the correct line
before searching with `f`/`t`/`F`/`T`. And after you have found a match, you can just press `f` or `t` again afterwards to continue the search. No need to use `;`/`,`.
With evil-snipe you can define your own search scope for `f` and `t` searches
which means that you won't have to jump to the correct line before searching
with `f`/`t`/`F`/`T`. And after you have found a match, you can just press `f`
or `t` again afterwards to continue the search. No need to use `;`/`,`.
This alternate behavior is disabled by default, to enable it set the
layer variable `evil-snipe-enable-alternate-f-and-t-behaviors` to `t`:
@ -50,9 +51,14 @@ layer variable `evil-snipe-enable-alternate-f-and-t-behaviors` to `t`:
'(evil-snipe :variables evil-snipe-enable-alternate-f-and-t-behaviors t ))
```
### New two-character search with s
### Two-character search with s
With the buttons `s`/`S` you can do a simple search like `f`/`t`, but instead of searching for one character, you search for two. This makes the search about 50 times more precise than regular `f`/`t` searches. While you can search forward or backwards in the buffer with `/` and `?`, `s`/`S` are much easier to reach, does not require you to press enter and is precise enough for very many common purposes.
With the `s`/`S` keys you can do a simple search like `f`/`t`, but instead
of searching for one character, you search for two. This makes the search a lot
more precise than regular `f`/`t` searches. While you can search
forward or backwards in the buffer with `/` and `?`, `s`/`S` are much easier
to reach, don't require you to press enter and they are precise enough for
many common purposes.
### More scopes
@ -75,17 +81,25 @@ remove this line from `evil-snipe/packages.el`:
### Symbol groups
With symbol groups you can let a char stand for a regex, for example a group of characters.
By adding a pair of `'(CHAR REGEX)` to the list `'evil-snipe-symbol-groups` you can search for a regex very simply.
With symbol groups you can let a character stand for a regex, for example a
group of characters. By adding a pair of `'(CHAR REGEX)` to the list
`'evil-snipe-symbol-groups` you can search for a regex very simply:
In the first example below we set `[` to mean all characters `[({` so a search `sa[` would find both `a[`, `a{` and `a(`.
In the second example, we set the char `:` to mean a regex matching python function definitions so searching `f:fff` you can quickly cycle through all function definitions in a buffer!
- Here we set the `[` character to mean `all characters "[({"` so a search
with `sa[` would find `a[`, `a{` or `a(`.
```elisp
;; Alias [ and ] to all types of brackets
(add-to-list 'evil-snipe-symbol-groups '(?\\[ \"[[{(]\"))
```
- Here we set the char `:` to mean `a regex matching python function
definitions` so by searching with `f:fff` you can quickly cycle through
all function definitions in a buffer!
```elisp
;; For python style functions
(add-to-list 'evil-snipe-symbol-groups '(?\\: \"def .+:\"\))"
(add-to-list 'evil-snipe-symbol-groups '(?\\: \"def .+:\"\))
```
## Key bindings