79988f375d
Evil-snipe takes over the keybinding for s, making it impossible to stage part of a hunk. |
||
---|---|---|
.. | ||
img | ||
config.el | ||
packages.el | ||
README.md |
evil-snipe contribution layer for Spacemacs
Table of Contents
Description
The package evil-snipe
- enables more efficient searches with
f/F/t/T
. - adds a new, more precise search with
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.
Install
Layer
To use this contribution add it to your ~/.spacemacs
(setq-default dotspacemacs-configuration-layers '(evil-snipe))
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 ;
/,
.
This alternate behavior is disabled by default, to enable it set the
layer variable evil-snipe-enable-alternate-f-and-t-behaviors
to t
:
(setq-default dotspacemacs-configuration-layers
'(evil-snipe :variables evil-snipe-enable-alternate-f-and-t-behaviors t ))
Two-character search with s
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
Evil-snipe also adds several scope options for searches (set
evil-snipe-scope
and evil-snipe-repeat-scope
to one of these, the default
value is buffer
):
Value | Description |
---|---|
buffer | search in the rest of the buffer after the cursor (vim-sneak behavior) |
line | search in the current line after the cursor (vim-seek behavior) |
visible | search in the rest of the visible buffer only |
whole-line | same as line , but highlight matches on either side of cursor |
whole-buffer | same as buffer , but highlight all matches in buffer |
whole-visible | same as 'visible, but highlight all visible matches in buffer |
If you do not want to replace the regular f/F/t/T
behavior, just
remove this line from evil-snipe/packages.el
:
(evil-snipe-replace-evil)
Symbol groups
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:
- Here we set the
[
character to meanall characters "[({"
so a search withsa[
would finda[
,a{
ora(
.
;; Alias [ and ] to all types of brackets
(add-to-list 'evil-snipe-symbol-groups '(?\\[ \"[[{(]\"))
- Here we set the char
:
to meana regex matching python function definitions
so by searching withf:fff
you can quickly cycle through all function definitions in a buffer!
;; For python style functions
(add-to-list 'evil-snipe-symbol-groups '(?\\: \"def .+:\"\))
Key bindings
TODO