Skip to content

Commit 92eb45b

Browse files
authored
更新README中对于evil-escape的处理方式 (#201)
* Update README.org for evil-escape * Update README_EN.org for evil-escape
1 parent 74f3dff commit 92eb45b

File tree

2 files changed

+53
-42
lines changed

2 files changed

+53
-42
lines changed

README.org

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -404,29 +404,34 @@ patch:
404404
#+BEGIN_SRC emacs-lisp
405405
(defun rime-evil-escape-advice (orig-fun key)
406406
"advice for `rime-input-method' to make it work together with `evil-escape'.
407-
Mainly modified from `evil-escape-pre-command-hook'"
407+
Mainly modified from `evil-escape-pre-command-hook'"
408408
(if rime--preedit-overlay
409-
;; if `rime--preedit-overlay' is non-nil, then we are editing something, do not abort
410-
(apply orig-fun (list key))
409+
;; if `rime--preedit-overlay' is non-nil, then we are editing something, do not abort
410+
(apply orig-fun (list key))
411411
(when (featurep 'evil-escape)
412-
(let* (
413-
(fkey (elt evil-escape-key-sequence 0))
414-
(skey (elt evil-escape-key-sequence 1))
415-
(evt (read-event nil nil evil-escape-delay))
416-
)
417-
(cond
418-
((and (characterp evt)
419-
(or (and (char-equal key fkey) (char-equal evt skey))
420-
(and evil-escape-unordered-key-sequence
421-
(char-equal key skey) (char-equal evt fkey))))
422-
(evil-repeat-stop)
423-
(evil-normal-state))
424-
((null evt) (apply orig-fun (list key)))
425-
(t
426-
(apply orig-fun (list key))
427-
(if (numberp evt)
428-
(apply orig-fun (list evt))
429-
(setq unread-command-events (append unread-command-events (list evt))))))))))
412+
(let (
413+
(fkey (elt evil-escape-key-sequence 0))
414+
(skey (elt evil-escape-key-sequence 1))
415+
)
416+
(if (or (char-equal key fkey)
417+
(and evil-escape-unordered-key-sequence
418+
(char-equal key skey)))
419+
(let ((evt (read-event nil nil evil-escape-delay)))
420+
(cond
421+
((and (characterp evt)
422+
(or (and (char-equal key fkey) (char-equal evt skey))
423+
(and evil-escape-unordered-key-sequence
424+
(char-equal key skey) (char-equal evt fkey))))
425+
(evil-repeat-stop)
426+
(evil-normal-state))
427+
((null evt) (apply orig-fun (list key)))
428+
(t
429+
(apply orig-fun (list key))
430+
(if (numberp evt)
431+
(apply orig-fun (list evt))
432+
(setq unread-command-events (append unread-command-events (list evt))))))
433+
)
434+
(apply orig-fun (list key)))))))
430435

431436
(advice-add 'rime-input-method :around #'rime-evil-escape-advice)
432437
#+END_SRC

README_EN.org

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -261,29 +261,35 @@ to return to normal state when having nothing in editing(no preedit overlay).
261261
#+BEGIN_SRC emacs-lisp
262262
(defun rime-evil-escape-advice (orig-fun key)
263263
"advice for `rime-input-method' to make it work together with `evil-escape'.
264-
Mainly modified from `evil-escape-pre-command-hook'"
264+
Mainly modified from `evil-escape-pre-command-hook'"
265265
(if rime--preedit-overlay
266-
;; if `rime--preedit-overlay' is non-nil, then we are editing something, do not abort
267-
(apply orig-fun (list key))
266+
;; if `rime--preedit-overlay' is non-nil, then we are editing something, do not abort
267+
(apply orig-fun (list key))
268268
(when (featurep 'evil-escape)
269-
(let* (
270-
(fkey (elt evil-escape-key-sequence 0))
271-
(skey (elt evil-escape-key-sequence 1))
272-
(evt (read-event nil nil evil-escape-delay))
273-
)
274-
(cond
275-
((and (characterp evt)
276-
(or (and (char-equal key fkey) (char-equal evt skey))
277-
(and evil-escape-unordered-key-sequence
278-
(char-equal key skey) (char-equal evt fkey))))
279-
(evil-repeat-stop)
280-
(evil-normal-state))
281-
((null evt) (apply orig-fun (list key)))
282-
(t
283-
(apply orig-fun (list key))
284-
(if (numberp evt)
285-
(apply orig-fun (list evt))
286-
(setq unread-command-events (append unread-command-events (list evt))))))))))
269+
(let (
270+
(fkey (elt evil-escape-key-sequence 0))
271+
(skey (elt evil-escape-key-sequence 1))
272+
)
273+
(if (or (char-equal key fkey)
274+
(and evil-escape-unordered-key-sequence
275+
(char-equal key skey)))
276+
(let ((evt (read-event nil nil evil-escape-delay)))
277+
(cond
278+
((and (characterp evt)
279+
(or (and (char-equal key fkey) (char-equal evt skey))
280+
(and evil-escape-unordered-key-sequence
281+
(char-equal key skey) (char-equal evt fkey))))
282+
(evil-repeat-stop)
283+
(evil-normal-state))
284+
((null evt) (apply orig-fun (list key)))
285+
(t
286+
(apply orig-fun (list key))
287+
(if (numberp evt)
288+
(apply orig-fun (list evt))
289+
(setq unread-command-events (append unread-command-events (list evt))))))
290+
)
291+
(apply orig-fun (list key)))))))
292+
287293

288294
(advice-add 'rime-input-method :around #'rime-evil-escape-advice)
289295
#+END_SRC

0 commit comments

Comments
 (0)