@@ -261,29 +261,35 @@ to return to normal state when having nothing in editing(no preedit overlay).
261
261
#+BEGIN_SRC emacs-lisp
262
262
(defun rime-evil-escape-advice (orig-fun key)
263
263
"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'"
265
265
(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))
268
268
(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
+
287
293
288
294
(advice-add 'rime-input-method :around #'rime-evil-escape-advice)
289
295
#+END_SRC
0 commit comments