/evil-easymotion

A port of vim easymotion to evil

Primary LanguageEmacs Lisp

evil-easymotion

MELPA

In which we give Lokaltog/vim-easymotion a streak of malevolence.

Obligatory screencast

screencast

Usage

Currently most motions are supported, and it's easy to define your own easymotions.

(evilem-define (kbd "SPC w") 'evil-forward-word-begin)

To define easymotions for all motions that evil defines by default, add

(evilem-default-keybindings "SPC")

This binds all motions under the prefix SPC in evil-motion-state-map. This is not done by default for motions defined manually. You will need to supply the prefix.

Not all motions can be made easy (evil-goto-line for example).

If you want to access the motions in other evil states, you can easily use a redirection keybind

(define-key evil-insert-state-map (kbd "M-SPC") (lookup-key evil-motion-state-map (kbd "SPC")))

Contributing

I invite you to open issues about whatever you find lacking in evil-easymotion! I will try to get to you in a timely fasion (probably only good until 2016).

Pull requests are welcome as well!

Credits

I'm deeply indebted to:

  • abo-abo for authoring ace-link, which inspired this package. In particular, the function ali-generic which allows ace-jump-mode to jump to arbitrary points.
  • winterTTR for authoring ace-jump-mode, on which this package depends.
  • Lokaltog for authoring vim-easymotion and creating the paradigm which this package emulates.