diff --git a/layers/+distribution/spacemacs-core/local/hybrid-mode/hybrid-mode.el b/layers/+distribution/spacemacs-core/local/hybrid-mode/hybrid-mode.el index bd700509a..84185f733 100644 --- a/layers/+distribution/spacemacs-core/local/hybrid-mode/hybrid-mode.el +++ b/layers/+distribution/spacemacs-core/local/hybrid-mode/hybrid-mode.el @@ -55,11 +55,8 @@ (evil-move-cursor-back)))))) (define-key evil-hybrid-state-map [escape] 'evil-normal-state) - -(defadvice evil-insert-state (around hybrid-state-advice disable) - "In Hybrid style this advice is run to switch to hybrid -state instead of insert state." - (evil-hybrid-state)) +(setf (symbol-function 'hybrid-mode--evil-insert-state-backup) + (symbol-function 'evil-insert-state)) ;;;###autoload (define-minor-mode hybrid-mode @@ -69,10 +66,9 @@ with `evil-hybrid-state-map'." :lighter " Hy" :group 'spacemacs (if hybrid-mode - (progn - (ad-enable-advice 'evil-insert-state 'around 'hybrid-state-advice) - (ad-activate 'evil-insert-state)) - (ad-disable-advice 'evil-insert-state 'around 'hybrid-state-advice) - (ad-activate 'evil-insert-state))) + (setf (symbol-function 'evil-insert-state) + (symbol-function 'evil-hybrid-state)) + (setf (symbol-function 'evil-insert-state) + (symbol-function 'hybrid-mode--evil-insert-state-backup)))) (provide 'hybrid-mode) diff --git a/layers/+distribution/spacemacs-core/packages.el b/layers/+distribution/spacemacs-core/packages.el index 47d3eb24c..28e8de038 100644 --- a/layers/+distribution/spacemacs-core/packages.el +++ b/layers/+distribution/spacemacs-core/packages.el @@ -955,8 +955,7 @@ ARG non nil means that the editing style is `vim'." (defun spacemacs-core/init-hybrid-mode () (use-package hybrid-mode - :commands hybrid-mode - :init + :config (progn (when (eq 'hybrid dotspacemacs-editing-style) (hybrid-mode)) (spacemacs|add-toggle hybrid-mode @@ -964,9 +963,7 @@ ARG non nil means that the editing style is `vim'." :on (hybrid-mode) :off (hybrid-mode -1) :documentation "Globally toggle hybrid mode." - :evil-leader "E Y")) - :config - (progn + :evil-leader "E Y") (eval-after-load 'evil-leader '(define-key evil-hybrid-state-map (kbd dotspacemacs-emacs-leader-key) evil-leader--default-map)))))