What I want is an easy-to-use hydra for macro execution. Typically I execute a keyboard macro a few times (e), and then might want to repeat infinitely until the end of a buffer (u). Sometimes I need to search forward or backward before continuing with keyboard macro execution.
What I have is a steaming pile of not-quite-working whats-it.
I have to use foreign-keys to search. This seems wrong. Without foreign keys the searches don't accept any input. Even with, if my search term contains a hydra key, then it does that instead.
I must be doing something wrong. Please help!
(defhydra hydra-keyboard-macros (:columns 6 :foreign-keys run)
("e" kmacro-end-or-call-macro-repeat "execute")
("u" (lambda()
(interactive)
(let ((current-prefix-arg 0))
(call-interactively #'kmacro-end-or-call-macro)))
"unlimited")
("s" isearch-forward-regexp "search")
("r" isearch-backward-regexp "reverse")
("'" edit-last-kbd-macro "edit")
("q" nil "quit"))
(global-set-key (kbd "C-x e") #'hydra-keyboard-macros/kmacro-end-or-call-macro-repeat)