A few questions on Evil

Michael Markert markert.michael at gmail.com
Fri Nov 7 18:47:29 CET 2014


On Fri, Nov 07 2014 (17:59), Alexander Shukaev <haroogan at gmail.com> wrote: 

> I have 2 questions on Evil:
>
>    1. How to wipe out all the default key maps which are present in
>    `evil-maps.el' preferably with as few calls as possible? Note that I'm
>    aware of how to do that with 1 by 1 `undefined' assignmetns, but I'm
>    looking for something simpler.

Just override the variables:

    (dolist (map '(evil-normal-state-map
                   evil-emacs-state-map
                   evil-visual-state-map
                   evil-insert-state-map))
      (set map (make-sparse-keymap)))

There are some maps missing, (apropos "evil.*state-map") will show them
to you.
Just add those to the list if you want to reset all.

>    2. Is this
>
>    (evil-define-key 'normal global-map (kbd "<left>") 'do-something)
>
>    indentical to
>
>    (define-key evil-normal-state-map (kbd "<left>") 'do-something)
>
>    ?

No. The former defines a mapping in an additional keymap for the normal
state when `global-map' is active.
The latter defines a mapping in the normal state map.

This is not only a technical detail but has also consequences on the
priority of the mapping (i.e. which definition would shadow).

For (evil-)global mappings the latter is preferable, for mode local,
e.g. for org-mode, the former is the way to go.

Michael



More information about the implementations-list mailing list