[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/evil-escape b33a5c722d 012/133: Fixes #5 fd-escaping makes
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/evil-escape b33a5c722d 012/133: Fixes #5 fd-escaping makes 'df<char>' motion work |
Date: |
Wed, 3 Jan 2024 21:59:48 -0500 (EST) |
branch: elpa/evil-escape
commit b33a5c722dc57e5c1249d1a5ccf3b9598745cd0b
Author: syl20bnr <sylvain.benner@gmail.com>
Commit: syl20bnr <sylvain.benner@gmail.com>
Fixes #5 fd-escaping makes 'df<char>' motion work
inconsistently in normal state
---
evil-escape.el | 68 ++++++++++++++++++++++++++++++++--------------------------
1 file changed, 37 insertions(+), 31 deletions(-)
diff --git a/evil-escape.el b/evil-escape.el
index 0f565c0b86..66b8bbc1d6 100644
--- a/evil-escape.el
+++ b/evil-escape.el
@@ -2,10 +2,10 @@
;; Copyright (C) 2014 syl20bnr
;;
-;;;; Author: Sylvain Benner <sylvain.benner@gmail.com>
+;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; Keywords: convenience editing evil
;; Created: 22 Oct 2014
-;; Version: 1.02
+;; Version: 1.3
;; Package-Requires: ((emacs "24") (evil "1.0.9") (key-chord "0.6"))
;; URL: https://github.com/syl20bnr/evil-escape
@@ -124,18 +124,22 @@ with a key sequence."
"Set the key bindings to escape _everything!_"
;; use key-chord whenever it is possible
;; evil states
+ ;; insert state
(key-chord-define evil-insert-state-map evil-escape-key-sequence
'evil-normal-state)
+ ;; emacs state
(key-chord-define evil-emacs-state-map evil-escape-key-sequence
'(lambda () (interactive)
(cond ((string-match "magit" (symbol-name major-mode))
(setq unread-command-events
(listify-key-sequence "q")))
(t evil-normal-state))))
+ ;; visual state
(key-chord-define evil-visual-state-map evil-escape-key-sequence
'evil-exit-visual-state)
- (key-chord-define evil-motion-state-map evil-escape-key-sequence
- '(lambda () (interactive)
- (cond ((eq 'help-mode major-mode) (quit-window))
- ((eq 'neotree-mode major-mode) (neotree-hide))
- (t (evil-normal-state)))))
+ ;; motion state
+ (let ((exit-func (cond ((eq 'help-mode major-mode) 'quit-window)
+ ((eq 'neotree-mode major-mode) 'neotree-hide)
+ (t 'evil-normal-state))))
+ (eval `(evil-escape-define-escape evil-motion-state-map ,exit-func
+ :shadowed t)))
;; lisp state if installed
(eval-after-load 'evil-lisp-state
'(key-chord-define evil-lisp-state-map evil-escape-key-sequence
'evil-normal-state))
@@ -194,30 +198,32 @@ INSERT-FUNC.
If DELETE? is not nil then the first key is deleted using the function
DELETE-FUNC when calling CALLBACK. "
:repeat nil
- (let* ((modified (buffer-modified-p))
- (insertf (if insert-func
- insert-func 'evil-escape--default-insert-func))
- (deletef (if delete-func
- delete-func 'evil-escape--default-delete-func))
- (fkey (elt keys 0))
- (fkeystr (char-to-string fkey))
- (skey (elt keys 1)))
- (if insert? (funcall insertf fkey))
- (let* ((evt (read-event nil nil key-chord-two-keys-delay)))
- (cond
- ((null evt)
- (unless (eq 'insert evil-state)
- (if shadowed-func (call-interactively shadowed-func))))
- ((and (integerp evt)
- (char-equal evt skey))
- ;; remove the f character
- (if delete? (funcall deletef))
- (set-buffer-modified-p modified)
- (funcall callback))
- (t ; otherwise
- (setq unread-command-events
- (append unread-command-events (list evt)))
- (if shadowed-func (call-interactively shadowed-func)))))))
+ (if (eq 'normal evil-state)
+ (call-interactively shadowed-func)
+ (let* ((modified (buffer-modified-p))
+ (insertf (if insert-func
+ insert-func 'evil-escape--default-insert-func))
+ (deletef (if delete-func
+ delete-func 'evil-escape--default-delete-func))
+ (fkey (elt keys 0))
+ (fkeystr (char-to-string fkey))
+ (skey (elt keys 1)))
+ (if insert? (funcall insertf fkey))
+ (let* ((evt (read-event nil nil key-chord-two-keys-delay)))
+ (cond
+ ((null evt)
+ (unless (eq 'insert evil-state)
+ (if shadowed-func (call-interactively shadowed-func))))
+ ((and (integerp evt)
+ (char-equal evt skey))
+ ;; remove the f character
+ (if delete? (funcall deletef))
+ (set-buffer-modified-p modified)
+ (funcall callback))
+ (t ; otherwise
+ (setq unread-command-events
+ (append unread-command-events (list evt)))
+ (if shadowed-func (call-interactively shadowed-func))))))))
(provide 'evil-escape)
;;; evil-escape.el ends here
- [nongnu] elpa/evil-escape 8f8b58db5e 121/133: Fix compiler warnings, (continued)
- [nongnu] elpa/evil-escape 8f8b58db5e 121/133: Fix compiler warnings, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape bdb1e69971 133/133: Correct treemacs integration (#5), ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape fd1f59d4ab 131/133: Add non-matching events to unread-post-input-method-events, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape a04305aa74 028/133: typos in comments, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 7e0b99467f 061/133: Use `self-insert-command` instead of `insert`, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 5a8704e6a6 066/133: Add missing docstring, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 509e39d3a0 088/133: Declare function for compiler, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 47d2031f62 046/133: Fix `f is undefined`, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 8012e3d21f 054/133: Correctly escape in evil replace state, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 8af706a87c 013/133: Fixes #4 evil-escape confuse evil's minibuffer echo system, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape b33a5c722d 012/133: Fixes #5 fd-escaping makes 'df<char>' motion work,
ELPA Syncer <=
- [nongnu] elpa/evil-escape 4779435d94 001/133: Initial commit, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 0fbedcbd86 016/133: Version 1.5.0, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape ca4c6f6065 017/133: Correctly restore bindings when the mode is disabled, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 3e3920f524 008/133: Version 1.01, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 2def4a3b54 006/133: Merge pull request #1 from purcell/patch-1, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape f85416cc7c 015/133: Escape apropos buffers, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 177eccdd92 022/133: Fix byte-compilation error: void function evil-escape--first-key, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 773e7144e2 003/133: Version 1.0, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 95cd06f3c5 029/133: Fix regression with term buffers, ELPA Syncer, 2024/01/03
- [nongnu] elpa/evil-escape 09b6486054 038/133: Add limitation in macro in README, ELPA Syncer, 2024/01/03