diff --git a/evil-escape.el b/evil-escape.el index 9155785..d40a1bc 100644 --- a/evil-escape.el +++ b/evil-escape.el @@ -189,7 +189,7 @@ with a key sequence." (inserted (evil-escape--insert)) (fkey (elt evil-escape-key-sequence 0)) (skey (elt evil-escape-key-sequence 1)) - (evt (read-event nil nil evil-escape-delay))) + (evt (read-event nil t evil-escape-delay))) (when inserted (evil-escape--delete)) ;; NOTE Add syl20bnr/evil-escape#91: replace `set-buffer-modified-p' ;; with `restore-buffer-modified-p', which doesn't redisplay the @@ -197,10 +197,12 @@ with a key sequence." (restore-buffer-modified-p modified) (cond ((and (characterp evt) - (or (and (equal (this-command-keys) (evil-escape--first-key)) + (or (and (equal (this-command-keys-vector) + (evil-escape--first-key)) (char-equal evt skey)) (and evil-escape-unordered-key-sequence - (equal (this-command-keys) (evil-escape--second-key)) + (equal (this-command-keys-vector) + (evil-escape--second-key)) (char-equal evt fkey)))) (evil-repeat-stop) (let ((esc-fun (evil-escape-func))) @@ -236,9 +238,9 @@ with a key sequence." (not (memq evil-state evil-escape-excluded-states)) (or (not evil-escape-enable-only-for-major-modes) (memq major-mode evil-escape-enable-only-for-major-modes)) - (or (equal (this-command-keys) (evil-escape--first-key)) + (or (equal (this-command-keys-vector) (evil-escape--first-key)) (and evil-escape-unordered-key-sequence - (equal (this-command-keys) (evil-escape--second-key)))) + (equal (this-command-keys-vector) (evil-escape--second-key)))) (not (cl-reduce (lambda (x y) (or x y)) (mapcar 'funcall evil-escape-inhibit-functions) :initial-value nil)))) @@ -283,16 +285,14 @@ with a key sequence." (t 'evil-normal-state))) (defun evil-escape--first-key () - "Return the first key string in the key sequence." - (let* ((first-key (elt evil-escape-key-sequence 0)) - (fkeystr (char-to-string first-key))) - fkeystr)) + "Return a vector containing just the first key in the key sequence." + (let ((first-key (elt evil-escape-key-sequence 0))) + (vector first-key))) (defun evil-escape--second-key () - "Return the second key string in the key sequence." - (let* ((sec-key (elt evil-escape-key-sequence 1)) - (fkeystr (char-to-string sec-key))) - fkeystr)) + "Return a vector containing just the second key in the key sequence." + (let ((second-key (elt evil-escape-key-sequence 1))) + (vector second-key))) (defun evil-escape--insert-func () "Default insert function." @@ -315,7 +315,7 @@ with a key sequence." ('error nil))) (defun evil-escape--insert-2 () - "Insert character while taking into account mode specificites." + "Insert character while taking into account mode specificities." (pcase major-mode (`term-mode (call-interactively 'term-send-raw)) (_ (cond @@ -333,7 +333,7 @@ with a key sequence." (`iedit-insert (evil-escape--delete-func)))) (defun evil-escape--delete-2 () - "Delete character while taking into account mode specifities." + "Delete character while taking into account mode specificities." (pcase major-mode (`term-mode (call-interactively 'term-send-backspace)) (_ (cond