git clone 'git://github.com/PythonNut/evil-easymotion.git'



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

Suppose you're a proud user of evil, but you have a nasty habit: when you want to move ten lines down, you spam j ten times instead of using the ergonomically superior 10j. With evil-easymotion you can invoke SPCj, and this plugin will put a target character on every possible position. Type the character on the target and wham! you have teleported there.

Obligatory screencast


Currently most motions are supported, and it's easy to define your own easymotions. Easymotions can also be composed with operators e.g. dSPCj to delete a bunch of lines.


evil-easymotion has recently replaced its ace-jump-mode backend with avy. Avy has several advantages, including:

  1. Multiple character target display
  2. More customization options
  3. A cleaner codebase
  4. More sophisticated algorithms (coming!)

(1) is of course, the most important because it paves the way for implementing the features of EasyMotion 2.0. I hope the transition hasn't been too rough. If you encounter any problems, please tell.


To define easymotions for all motions that evil defines by default, add emacs (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.

Or, if you prefer more granular control: emacs (evilem-define (kbd "SPC w") 'evil-forward-word-begin)

You can always drop by the wiki for more tips.


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!


I'm deeply indebted to: * abo-abo for authoring avy, on which this package depends. * Lokaltog for authoring vim-easymotion and creating the paradigm which this package emulates.