Hi List, I don't switch between evil states and emacs states quite often and so use C-z for a more used command.[1]
In viper there was `viper-toggle-key', appended is a patch to add `evil-toggle-key' and adjust the keys to it. Michael Footnotes: [1] Yes I can redefine them myself, but that results in 4 quite ugly lines.
From ecb10dded952ceac06e0c581ccaffc71a996af6c Mon Sep 17 00:00:00 2001 From: Michael Markert <[email protected]> Date: Sun, 7 Aug 2011 23:10:16 +0200 Subject: [PATCH] Add `evil-toggle-key' custom for normal/emacs state toggling. Signed-off-by: Michael Markert <[email protected]> --- evil-maps.el | 4 ++-- evil-vars.el | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/evil-maps.el b/evil-maps.el index 27af181..68d04be 100644 --- a/evil-maps.el +++ b/evil-maps.el @@ -236,7 +236,7 @@ (define-key evil-motion-state-map (kbd "C-f") 'evil-scroll-page-down) (define-key evil-motion-state-map (kbd "C-o") 'evil-jump-backward) (define-key evil-motion-state-map (kbd "C-y") 'evil-scroll-line-up) -(define-key evil-motion-state-map (kbd "C-z") 'evil-emacs-state) +(define-key evil-motion-state-map (read-kbd-macro evil-toggle-key) 'evil-emacs-state) (define-key evil-motion-state-map (kbd "RET") 'evil-ret) (define-key evil-motion-state-map "z^" 'evil-scroll-top-line-to-bottom) (define-key evil-motion-state-map "z+" 'evil-scroll-bottom-line-to-top) @@ -292,7 +292,7 @@ ;;; Emacs state -(define-key evil-emacs-state-map "\C-z" 'evil-exit-emacs-state) +(define-key evil-emacs-state-map (read-kbd-macro evil-toggle-key) 'evil-exit-emacs-state) ;;; Minibuffer diff --git a/evil-vars.el b/evil-vars.el index fa44844..2d1cc6a 100644 --- a/evil-vars.el +++ b/evil-vars.el @@ -88,6 +88,26 @@ which causes the parenthesis to be highlighted." :type 'boolean :group 'evil) +(defcustom evil-toggle-key "C-z" + "The key used to change from motion/normal state to emacs and back. + +Enter as `READ-KBD-MACRO' readable string. Example: \"C-z\"." + :type 'string + :group 'evil + :set (lambda (sym value) + (let ((old-value (if (boundp 'evil-toggle-key) + evil-toggle-key + "C-z"))) + (when (and (boundp 'evil-motion-state-map) + (keymapp evil-motion-state-map)) + (define-key evil-motion-state-map (read-kbd-macro value) 'evil-emacs-state) + (define-key evil-motion-state-map (read-kbd-macro old-value) nil)) + (when (and (boundp 'evil-emacs-state-map) + (keymapp evil-emacs-state-map)) + (define-key evil-emacs-state-map (read-kbd-macro value) 'evil-exit-emacs-state) + (define-key evil-emacs-state-map (read-kbd-macro old-value) nil)) + (set-default sym value)))) + (defcustom evil-emacs-state-modes '(bookmark-bmenu-mode bookmark-edit-annotation-mode -- 1.7.5.4
pgpfg52ByGAxd.pgp
Description: PGP signature
_______________________________________________ implementations-list mailing list [email protected] https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list
