hlissner / evil-snipe

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

disabling evil-snipe-override-mode #53

Closed CeleritasCelery closed 6 years ago

CeleritasCelery commented 6 years ago

Thanks for evil-snipe! if using evil-snipe-override-mode disabling hooks don't work.

In particular the following code does NOT disable evil-snipe mode in ranger

(evil-snipe-override-mode 1)
(add-hook 'ranger-mode-hook 'turn-off-evil-snipe-override-mode)

but using "normal" evil-snipe DOES

(evil-snipe-mode 1)
(add-hook 'ranger-mode-hook 'turn-off-evil-snipe-mode)

evil snipe conflicts with several ranger-mode keybindings, particularly ; which is bound to the ranger-dired-map. How do I disable evil-snipe-override-mode in ranger?

hlissner commented 6 years ago

You should add ranger-mode to evil-snipe-disabled-modes:

(push 'ranger-mode evil-snipe-disabled-modes)

To explain your particular problem: if you are using both evil-snipe-mode and evil-snipe-override-mode, you'd need to use both turn-off-* hooks to turn evil-snipe off completely:

(evil-snipe-mode 1)
(evil-snipe-override-mode 1)
(add-hook 'ranger-mode-hook 'turn-off-evil-snipe-mode)
(add-hook 'ranger-mode-hook 'turn-off-evil-snipe-override-mode)

I realize that's inconvenient, so evil-snipe-disabled-modes is the better option here. It will ensure neither mode is activated in ranger-mode.

CeleritasCelery commented 6 years ago

Thank you. I am not sure if it is problem with ranger of with evil-snipe, but adding ranger-mode to evil-snipe-disabled-modes does not disable evil-snipe-override-mode.

Here is my minimal config with stock Emacs

(evil-mode 1)
(setq evil-snipe-disabled-modes '(ranger-mode))
(add-hook 'ranger-mode-hook 'turn-off-evil-snipe-override-mode)
(evil-snipe-override-mode 1)

then open ranger and see that evil-snipe-override-mode is still enabled.

As I mentioned above this doesn't happen with evil-snipe-mode, only evil-snipe-override-mode.

CeleritasCelery commented 6 years ago

Turns out that you need add both turn-off-evil-snipe-override-mode AND turn-off-evil-snipe-mode to the ranger hook to get it to work correctly.