hlissner / evil-snipe

2-char searching ala vim-sneak & vim-seek, for evil-mode
MIT License
340 stars 25 forks source link

evil-snipe-repeat-keys nil should work with override mode #35

Closed sooheon closed 8 years ago

sooheon commented 8 years ago

First, thanks for the essential package. It's even better than the vim inspiration.

What is especially nice is the transient mappings to ; and , while sniping. This allows , for example, to be bound to something else normally, and still be used for search repeat. I also want this behaviour for f/t, so I set (evil-snipe-override-mode 1). However, I want s/f/t to always start a new search, rather than repeating the search (I already have ; and , for that). (setq evil-snipe-repeat-keys nil) seems to be the right setting, but with override-mode enabled, s/f/t are bound to repeat the search.

So to reproduce: (setq evil-snipe-repeat-keys nil) (evil-snipe-override-mode 1), try a search with s, then press s again. The desired behaviour is that you will be prompted for 2 new letters to snipe to, not that the search will be repeated. Currently, you need to exit the transient state with esc then search again, adding an unnecessary step.

hlissner commented 8 years ago

Thank you, and you're very welcome!

What you're asking for is already implemented, however, I realize the problem. The transient keymaps are initialized on load (once), and thus the evil-snipe-repeat-key check is only done once. A glaring oversight on my part!

The workaround: you have to do (setq evil-snipe-repeat-keys nil) before you enable evil-snipe-mode.

Sorry about that! I will fix this as soon as I have time (until then, I'll leave this issue open).