Emacs makes it extremely easy to define custom key bindings depending on what major mode you’re in. A couple of days ago I wrote myself a little helper for the awesome jedi plugin that allows me to select which virtualenv should be used for completions.
Since this is only relevant for Python code, I wanted to have that binding to be
only available while in python-mode. As I wrote above, getting a local
keybinding is very easy using the
(define-key python-mode-map (kbd "C-c C-v") 'jediselect)
But I’m using evil-mode and so I actually want something that feels more
natural in that environment. For command like that I prefer leader
keys. Luckily, evil-leader also has a way to create mode-local key bindings
(evil-leader/set-key-for-mode 'python-mode "v" 'jediselect)
Note that this won’t work for buffers where python-mode is already active. You will either have to reopen these buffers or re-enable the major mode (didn’t try the latter option).