krisajenkins / evil-tabs

Integrating Vim-style tabs for Evil mode users.
MIT License
66 stars 11 forks source link

evil-tabs breaks initial evil states for some modes #12

Open mkomitee opened 9 years ago

mkomitee commented 9 years ago

I noticed a while ago that when first entering certain modes, the evil-state is unset and evil keybindings aren't available. If I exited those modes and then re-entered, evil keybindings would start working.

I eliminated everything in my emacs configuration, and was able to reproduce the issue with just evil-tabs. I'm not very familiar with elisp, so I'm not sure what is causing the issue.

Here's the minimum configuration that reproduces the issue:

(require 'package)
(package-initialize)
(require 'evil)
(evil-mode 1)
(require 'evil-tabs)
(global-evil-tabs-mode)

All packages have been installed using package.el using melpa, and they're all up to date as of now.

Once emacs launches, if I use C-h f to describe any function, and then C-w C-w to switch to the help window, evil keybindings are unavailable.

If I C-h v to check he value of evil-state I get:

evil-state is a variable defined in `evil-vars.el'.
Its value is nil
Local in buffer *Help*; global value is the same.

At that point, after executing C-h v to check the value of evil-state, evil keybindings start working and if I check evil-state's value again I get:

evil-state is a variable defined in `evil-vars.el'.
Its value is normal
Local in buffer *GNU Emacs*; global value is nil

If I comment out (global-evil-tabs-mode) in my configuration, the issue is gone.

I've noticed this issue in both help-mode and package-list-mode, the latter of which I've changed to motion as it's initial evil state in my real emacs configuration.

I'm running GNU Emacs 24.4.1, and I've had this issue on both mac and linux.

adam-m-jcbs commented 9 years ago

Just want to say I'm having the exact same issue with GNU Emacs 24.5.1.

adam-m-jcbs commented 9 years ago

Current workaround: if you make sure (evil-mode 1) comes after (global-evil-tabs-mode t) then the problem goes away. At least, it did for me.