On 20.12.2013 14:56, BoSa wrote:
I do have a problem with keybindings defined with evil-define-key and hooks. According to the documentation, i should use the following lisp code to enable special bindings for certain modes.
(define-minor-mode evil-neo-org-mode "Neo+Evil+Org mode" :init-value nil :lighter " NeoEvilOrg" :keymap (make-sparse-keymap))
(evil-define-key 'normal evil-neo-org-mode-map (kbd "TAB") 'org-cycle)
I would not create a new minor mode. It's probably easier to put the keybindings in the appropriate local maps, i.e. (add-hook 'org-mode-hook (lambda () (define-key evil-normal-state-local-map (kbd "TAB") 'org-cycle)) or something like this. The local keymaps are buffer local so the usual Emacs rules apply.
At the end it seems evil doesn't observe the bindings defined by evil-defined-key immediately after startup. Only if i reenter some state they take effect. I have no clue what i'm doing wrong.
This is a know problem. I just have no idea how to detect that a certain minor mode is being enabled (afaik there is not an `activate-minor-mode-hook` or something like this in Emacs). Frank