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.