Нужна функция Elisp, чтобы отодвинуть вход - PullRequest
4 голосов
/ 07 сентября 2011

Я написал новую версию "zap-to-char". Она просто выделяет регион, а не уничтожает его. Я думаю, что это будет более гибким, потому что мы можем выбрать уничтожение или копирование, или просто перейти к этому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))

Как видите, мне нужна функция для возврата результата read-char обратно на ввод, когда вы вводите input, кроме«Чар».Но я не знаю, предлагал ли Emacs один.Поэтому мне нужна ваша помощь.

Надеюсь, я ясно дал понять.

1 Ответ

4 голосов
/ 07 сентября 2011

Вы можете попробовать unread-command-events.

Например:

(push ?a unread-command-events)
...