需要一个Elisp函数来推回输入

时间:2011-09-07 10:34:50

标签: emacs elisp

我写了一个新版本的“zap-to-char”。它只是突出了区域而不是杀死它。我认为这会更灵活,因为我们可以选择杀死,复制,或者只是去看看炭。

以下是摘录:

(defun new-zap-to-char (arg char)
  (interactive "p\ncZap to char: ")
  (push-mark)
  (setq mark-active t)
  (defun iter-zap ()
    (if (< arg 0)
      (search-forward (char-to-string char) nil nil -1)
      (search-forward (char-to-string char) nil nil 1))
    (if (char-equal char (setq c (read-char)))
        (iter-zap)
        (>>>>here is the "push-back-to-input" function"<<<<))
 (iter-zap))

如您所见,当您输入除“char”之外的输入时,我需要一个函数将'read-char'的结果推回输入。但我不知道Emacs是否提供了一个。所以我需要你的帮助。

我希望我已经说清楚了。

1 个答案:

答案 0 :(得分:4)

您可以尝试unread-command-events

例如:

(push ?a unread-command-events)