GitHub - cofi/evil-leader: key for evil (original) (raw)
What’s Evil Leader?
Evil Leader provides the <leader>
feature from Vim that provides an easy way to bind keys under a variable prefix key. For an experienced Emacs User it is nothing more than a convoluted key map, but for a Evil user coming from Vim it means an easier start.
Installation
Put evil-leader.el
into load-path
and (require 'evil-leader)
.
Usage
(global-evil-leader-mode)
to enable evil-leader
in every buffer where evil
is enabled.
Note: You should enable global-evil-leader-mode
before you enable evil-mode
, otherwise evil-leader
won’t be enabled in initial buffers (*scratch*
,*Messages*
, …).
Use evil-leader/set-key
to bind keys in the leader map. For example:
(evil-leader/set-key "e" 'find-file)
You can also bind several keys at once:
(evil-leader/set-key "e" 'find-file "b" 'switch-to-buffer "k" 'kill-buffer)
The key map can of course be filled in several places.
After you set up the key map you can access the bindings by pressing <leader>
(default: \
) and the key(s). E.g. \ e
would call find-file
to open a file.
If you wish to change so you can customize evil-leader/leader
or callevil-leader/set-leader
, e.g. (evil-leader/set-leader ",")
to change it to “,”. The leader has to be readable by read-kbd-macro
, so using Space as a prefix key would be (evil-leader/set-leader "<SPC>")
.
Beginning with version 0.3 evil-leader has support for mode-local bindings:
(evil-leader/set-key-for-mode 'emacs-lisp-mode "b" 'byte-compile-file)
Again, you can bind several keys at once.
A mode-local binding shadows a normal mode-independent binding.
FAQ
is not working in certain buffers! Why?
This can have two reasons. First, the buffer is not in normal state (like insert or emacs state). If you set evil-leader/in-all-states
to non-nil (before loading evil-leader or via customize) you can access the leader keymap still with the non-normal-prefix + leader (default: C-\
).
Another option is to use evil-leader/no-prefix-mode-rx
if you want the non-prefixed <leader>
in certain major modes. But be careful as this introduces the <leader>
in the insert and emacs states which means you can’t type the char <leader>
(\
by default). E.g. this code will let you use the non-prefixed <leader>
in magit’s and gnus’ modes:
(setq evil-leader/no-prefix-mode-rx '("magit-.-mode" "gnus-.-mode"))
Second, <leader>
can be overshadowed by the current major-mode because evil-leader uses the global keymap which has a lower priority than the local keymap. To still use <leader>
you have to either use another key or have a look at C-h k <leader>
, if it is bound then it overshadows the evil-leader keymap.