X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Femacs-evil.org;h=d323f89e7e571a8d766136552e6f5e18549bb9f4;hb=4e4d4ae34e4041f73619f94fe2d0def06807ccae;hp=b29c1bc36f56820e932e9aca26612164c489bdd0;hpb=baf3e67c9156d56be14d20ca7a3aff9f668fad8c;p=dotfiles.git diff --git a/emacs.d/emacs-evil.org b/emacs.d/emacs-evil.org index b29c1bc..d323f89 100644 --- a/emacs.d/emacs-evil.org +++ b/emacs.d/emacs-evil.org @@ -8,22 +8,18 @@ in a separate file. * Evil mode https://www.emacswiki.org/emacs/Evil #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (defun my-evil-insert-state-to-emacs-state (&optional arg) - "This advising function is called after `evil-insert-state', to switch to - emacs state for some modes." - (when (memq major-mode '(emacs-lisp-mode org-mode)) - (evil-emacs-state))) + (defvar my-mode-list-to-use-emacs-as-insert '(emacs-lisp-mode org-mode eshell-mode lisp-interaction-mode)) + (defvar my-modes-use-emacs-init '(emacs-lisp-mode org-mode lisp-interaction-mode eshell-mode)) (defun my-evil-config () "This should be called after evil-mode is loaded." - ;; default state (setq evil-default-state 'normal) - (dolist (mode - '(org-mode emacs-lisp-mode eshell-mode)) - (evil-set-initial-state mode 'emacs)) + (dolist (mode my-modes-use-emacs-init) (evil-set-initial-state mode 'emacs)) - (advice-add 'evil-insert-state :after #'my-evil-insert-state-to-emacs-state) + (advice-add 'evil-insert-state :after (lambda (&optional arg) + (when (memq major-mode my-mode-list-to-use-emacs-as-insert) + (evil-emacs-state)))) (define-key evil-normal-state-map "\C-W s" 'evil-window-split) (define-key evil-normal-state-map "\C-W v" 'evil-window-vsplit) @@ -70,7 +66,7 @@ https://www.emacswiki.org/emacs/Evil :init (setq-default evil-escape-delay 0.2) (setq-default evil-escape-key-sequence "jj") - (setq-default evil-escape-excluded-states '(normal visual motion)) + (setq-default evil-escape-excluded-states '(normal visual motion emacs)) (setq-default evil-escape-excluded-major-modes '(emacs-lisp-mode org-mode)) :config (evil-escape-mode))