I am trying to bind a key in minibuffer-local-map
to a command which uses
abort-recursive-edit
or exit-minibuffer
and then proceeds executing more elisp code. So I want to exit the minibuffer and then continue from the context before. The only solution I have found so far is to use run-with-timer
like in this contrived example:
(defun example ()
(interactive)
;; This is my current workaround
;; (run-with-timer 0.1 nil 'split-window-vertically)
(abort-recursive-edit)
;; This code won't be executed
(split-window-vertically))
Is there a cleaner/better way to do something like this? I could try to setup everything with with-current-window
and stuff like that and exit the minibuffer in the last instruction but maybe there is a better alternative?
(embark--quit-and-run FN ARGS)
(which seems like it was inspired by abo-abo's ivy implementation)