On Sun, Sep 23 2012 (01:47), Patrick Brinich-Langlois 
<[email protected]> wrote: 
>
> Thanks, Michael! That does help. It doesn't affect the bindings in Dired, 
> though.
> Do I have to define those bindings specifically? For example,
>
> (evil-define-key 'normal dired-mode-map "i" 'evil-forward-char)
>
> Or is there a better way?

Well you can certainly pack it into the function (I made also some other
adjustments):


     (defun set-in-all-evil-states (key def &optional maps additional)
       (let ((maps (or maps (list evil-normal-state-map
                                  evil-visual-state-map
                                  evil-insert-state-map
                                  evil-emacs-state-map))))
         (dolist (map maps)
           (define-key map key def))
         (when additional
           (dolist (pair additional)
             (let ((state (first pair))
                   (map (second pair)))
               (evil-define-key state map key def))))))
               
although the interface gets quite messy as you have to encode the states
you want to bind:

    (set-in-all-evil-states "i" 'evil-forward-char nil (list (list 'normal
                                                                 dired-mode-map)
                                                           (list 'insert
                                                                 
dired-mode-map)))
                                                             
You could admit symbols for the maps as well for a more concise one:

    (set-in-all-evil-states "i" 'evil-forward-char nil '((normal dired-mode-map)
                                                       (insert dired-mode-map)))

     (defun set-in-all-evil-states (key def &optional maps additional)
       (let ((maps (or maps (list evil-normal-state-map
                                  evil-visual-state-map
                                  evil-insert-state-map
                                  evil-emacs-state-map))))
         (dolist (map maps)
           (define-key map key def))
         (when additional
           (dolist (pair additional)
             (let ((state (first pair))
                   (map (second pair)))
               (evil-define-key state (if (symbolp map)
                                          (symbol-value map)
                                        map)
                 key def))))))
                 
Of course you can tinker any further with it.

Have fun,
Michael

Attachment: pgpgypabEDdJ0.pgp
Description: PGP signature

_______________________________________________
implementations-list mailing list
[email protected]
https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list

Reply via email to