hlissner/evil-snipe

disabling evil-snipe-override-mode

CeleritasCelery opened this issue · 3 comments

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?

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.

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.

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.