Function: kbd-macro-query
kbd-macro-query is an autoloaded, interactive and byte-compiled
function defined in macros.el.gz.
Signature
(kbd-macro-query FLAG)
Documentation
Query user during kbd macro execution.
With prefix argument FLAG, enter recursive edit, reading keyboard commands even within a kbd macro. You can give different commands each time the macro executes.
Without prefix argument, ask whether to continue running the macro.
Your options are:
Y (act) Finish this iteration normally and continue with the next.
N (skip) Skip the rest of this iteration, and start the next.
RET (exit) Stop the macro entirely right now.
C-l (recenter) Redisplay the screen, then ask again.
C-r (edit) Enter recursive edit; ask again when you exit from that.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/macros.el.gz
;;;###autoload
(defun kbd-macro-query (flag)
"Query user during kbd macro execution.
With prefix argument FLAG, enter recursive edit, reading
keyboard commands even within a kbd macro. You can give
different commands each time the macro executes.
Without prefix argument, ask whether to continue running the
macro.
Your options are: \\<query-replace-map>
\\[act] Finish this iteration normally and continue with the next.
\\[skip] Skip the rest of this iteration, and start the next.
\\[exit] Stop the macro entirely right now.
\\[recenter] Redisplay the screen, then ask again.
\\[edit] Enter recursive edit; ask again when you exit from that."
(interactive "P")
(or executing-kbd-macro
defining-kbd-macro
(user-error "Not defining or executing kbd macro"))
(if flag
(let (executing-kbd-macro defining-kbd-macro)
(recursive-edit))
(if (not executing-kbd-macro)
nil
(let ((loop t)
(msg (substitute-command-keys
"Proceed with macro?\\<query-replace-map>\
(\\[act], \\[skip], \\[exit], \\[recenter], \\[edit]) ")))
(while loop
(let ((key (let ((executing-kbd-macro nil)
(defining-kbd-macro nil))
(message "%s" msg)
(read-event)))
def)
(setq key (vector key))
(setq def (lookup-key query-replace-map key))
(cond ((eq def 'act)
(setq loop nil))
((eq def 'skip)
(setq loop nil)
(setq executing-kbd-macro ""))
((eq def 'exit)
(setq loop nil)
(setq executing-kbd-macro t))
((eq def 'recenter)
(recenter nil))
((eq def 'edit)
(let (executing-kbd-macro defining-kbd-macro)
(recursive-edit)))
((eq def 'quit)
(setq quit-flag t))
(t
(or (eq def 'help)
(ding))
(with-output-to-temp-buffer "*Help*"
(princ
(substitute-command-keys
"Specify how to proceed with keyboard macro execution.
Possibilities: \\<query-replace-map>
\\[act] Finish this iteration normally and continue with the next.
\\[skip] Skip the rest of this iteration, and start the next.
\\[exit] Stop the macro entirely right now.
\\[recenter] Redisplay the screen, then ask again.
\\[edit] Enter recursive edit; ask again when you exit from that."))
(with-current-buffer standard-output
(help-mode)))))))))))