From fc2d093b47cc61de19c335a14a7a27c19b8836dd Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Tue, 20 Jan 2015 12:06:52 -0500 Subject: [PATCH] Fix regression with term and evil-escape Now `f` is correctly inserted in term buffers. --- spacemacs/extensions/evil-escape/evil-escape.el | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/spacemacs/extensions/evil-escape/evil-escape.el b/spacemacs/extensions/evil-escape/evil-escape.el index 84e096e63..79c946fa6 100644 --- a/spacemacs/extensions/evil-escape/evil-escape.el +++ b/spacemacs/extensions/evil-escape/evil-escape.el @@ -5,7 +5,7 @@ ;; Author: Sylvain Benner ;; Keywords: convenience editing evil ;; Created: 22 Oct 2014 -;; Version: 2.03 +;; Version: 2.04 ;; Package-Requires: ((emacs "24") (evil "1.0.9")) ;; URL: https://github.com/syl20bnr/evil-escape @@ -152,9 +152,13 @@ with a key sequence." (lookup-key evil-motion-state-map (evil-escape--first-key))) ;; evil states ;; insert state - (eval `(evil-escape-define-escape "insert-state" evil-insert-state-map evil-normal-state - :insert-func evil-escape--default-insert-func - :delete-func evil-escape--default-delete-func)) + (let ((insert-func (lambda (key) (interactive) + (cond ((eq 'term-mode major-mode) + (call-interactively 'term-send-raw)) + (t (evil-escape--default-insert-func key)))))) + (eval `(evil-escape-define-escape "insert-state" evil-insert-state-map evil-normal-state + :insert-func ,insert-func + :delete-func evil-escape--default-delete-func))) ;; emacs state (let ((exit-func (lambda () (interactive) (cond ((string-match "magit" (symbol-name major-mode)) @@ -244,6 +248,10 @@ with a key sequence." "Send `q' key press event to exit from a buffer." (setq unread-command-events (listify-key-sequence "q"))) +(defun evil-escape--term-insert-func (key) + "Insert KEY in current term buffer." + (term-send-raw)) + (defun evil-escape--execute-shadowed-func (func) "Execute the passed FUNC if the context allows it." (unless (or (null func)