Table of Contents
Customizable key sequence to escape from insert state and everything else in Emacs.
Version 3.0 is a rewrite of
evil-escape and removes the previous limitations:
- escape sequence can now be used in macros
- there is no limitation on the choice of key for the first key of the sequence.
fd (or the 2-keys sequence of your choice) to:
- escape from all stock evil states to normal state
- escape from evil-lisp-state to normal state
- escape from evil-iedit-state to normal state
- abort evil ex command
- quit minibuffer
- abort isearch
- quit ibuffer
- quit image buffer
- quit compilation buffers
- quit magit buffers
- quit help buffers
- quit apropos buffers
- quit ert buffers
- quit undo-tree buffer
- quit paradox
- quit gist-list menu
- quit helm-ag-edit
- hide neotree buffer
And more to come !
Contributions to support more buffers are very welcome: Escape Everything !
The package is available in MELPA.
If you have MELPA in
M-x package-install RET evil-escape RET
If you don't, open
evil-escape.el in Emacs and call
To toggle the
evil-escape mode globally:
The key sequence can be customized with the variable
For instance to change it for
(setq-default evil-escape-key-sequence "jk")
Delay between keys
The delay between the two key presses can be customized with the variable
evil-escape-delay. The default value is
0.1. If your key sequence is
composed with the two same characters it is recommended to set the delay to
(setq-default evil-escape-delay 0.2)
Unordered key sequence
The key sequence can be entered in any order by setting
evil-escape-unordered-key-sequence to non nil.
Excluding a major mode
A major mode can be excluded by adding it to the list
Enable only for a list of major modes
An inclusive list of major modes can defined with the variable
evil-escape-enable-only-for-major-modes. When this list is non-nil
then evil-escape is enabled only for the major-modes in the list.
A list of zero arity functions can be defined with variable
evil-escape-inhibit-functions, if any of these functions return
non nil then evil-escape is inhibited.
It is also possible to inhibit evil-escape in a let binding by
evil-escape-inhibit variable to non nil.
Assign a key binding directly
It is possible to bind
evil-escape' function directly, for
instance to execute evil-escape with C-c C-g:
(global-set-key (kbd "C-c C-g") 'evil-escape)