From 113c3bfc5890daf7f1db44e4a790e08903b0cd16 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Sat, 2 May 2015 00:38:48 -0400 Subject: [PATCH] evilified: Generalize fix for key binding passthrough in visual state --- contrib/tools/git/packages.el | 10 +--------- .../evil-evilified-state/evil-evilified-state.el | 11 ++++++++++- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/contrib/tools/git/packages.el b/contrib/tools/git/packages.el index af9e3b991..0bc0f98de 100644 --- a/contrib/tools/git/packages.el +++ b/contrib/tools/git/packages.el @@ -221,14 +221,6 @@ (progn (setq magit-last-seen-setup-instructions "1.4.0" magit-completing-read-function 'magit-ido-completing-read) - - (defun spacemacs/magit-status () - "Open a magit status buffer" - (interactive) - (call-interactively 'magit-status) - (evil-surround-mode -1) - (evil-define-key 'visual magit-status-mode-map (kbd "s") 'magit-stage-item)) - ;; On Windows, we must use Git GUI to enter username and password ;; See: https://github.com/magit/magit/wiki/FAQ#windows-cannot-push-via-https (when (eq window-system 'w32) @@ -236,7 +228,7 @@ (evil-leader/set-key "gb" 'magit-blame-mode "gl" 'magit-log - "gs" 'spacemacs/magit-status + "gs" 'magit-status "gC" 'magit-commit) (evilify magit-commit-mode magit-commit-mode-map (kbd "C-j") 'magit-goto-next-section diff --git a/spacemacs/extensions/evil-evilified-state/evil-evilified-state.el b/spacemacs/extensions/evil-evilified-state/evil-evilified-state.el index 794807101..88ab0fe2c 100644 --- a/spacemacs/extensions/evil-evilified-state/evil-evilified-state.el +++ b/spacemacs/extensions/evil-evilified-state/evil-evilified-state.el @@ -42,7 +42,16 @@ :tag " " :enable (emacs) :message "-- EVILIFIED BUFFER --" - :cursor box) + :cursor box + (when (evil-evilified-state-p) + (when (bound-and-true-p evil-surround-mode) + (evil-surround-mode -1)) + (setq-local evil-normal-state-map (cons 'keymap nil)) + (setq-local evil-visual-state-map (cons 'keymap nil)) + (add-hook 'evil-visual-state-entry-hook + (lambda () (interactive) + (local-set-key evil-visual-state-map "y" 'evil-yank)) + nil 'local))) ;; default key bindings for all evilified buffers (define-key evil-evilified-state-map (kbd dotspacemacs-leader-key)