cofi / evil-leader

<leader> key for evil
GNU General Public License v3.0
315 stars 22 forks source link

Leader doesn't work in Dired when set to SPC #13

Closed marktran closed 11 years ago

marktran commented 11 years ago

If I (setq evil-leader/leader "SPC"), it doesn't seem to work in Dired but works as expected everywhere else (I have it enabled globally). Setting it to something else, e.g. , seems to work fine.

I tried unsetting SPC with:

(add-hook 'dired-mode-hook '(lambda ()
                              (local-unset-key (kbd "SPC"))))

but it seems that evil-mode is somehow preventing modifications to that mode map.

Any idea how I can get this to work?

marktran commented 11 years ago

It seems to be related to this block in evil-integration.el:

(eval-after-load 'dired
  '(progn
     ;; use the standard Dired bindings as a base
     (evil-make-overriding-map dired-mode-map 'normal t)
     (evil-add-hjkl-bindings dired-mode-map 'normal
       "J" 'dired-goto-file                   ; "j"
       "K" 'dired-do-kill-lines               ; "k"
       "r" 'dired-do-redisplay                ; "l"
       ";" (lookup-key dired-mode-map ":")))) ; ":d", ":v", ":s", ":e"

but why does it work for , and not SPC?

marktran commented 11 years ago

Ah, I see. Setting this before evil is required works:

;; set SPC to nil before evil makes dired-mode-map the overriding-map
(require 'dired)
(define-key dired-mode-map (kbd "SPC") nil)