我想要什么:
发生了什么:
我尝试过的:
(defmacro save-frame-excursion (&rest body)
"Eval BODY and return to the currently selected frame."
(let ((frame-var (gensym "FRAME")))
`(let ((,frame-var (selected-frame)))
(unwind-protect
(progn ,@body)
(select-frame-set-input-focus ,frame-var)))))
(defun org-babel-detangle-no-buffer-pop-up (orig-fun &rest args)
(save-window-excursion
(save-frame-excursion
(apply orig-fun args))))
(advice-add 'org-babel-detangle :around #'org-babel-detangle-no-buffer-pop-up)
找到解决方案。事实证明,如果没有额外的参数 -
display-buffer-alist '((".*" (display-buffer-no-window)))
,(allow-no-window . t)
就无法工作。这非常直观,这让我很失望。
完整的工作解决方案如下:
(defun org-babel-detangle-no-buffer-pop-up (orig-fun &rest args)
(save-excursion
(let ((display-buffer-alist
'((".*" (display-buffer-no-window) (allow-no-window . t)))))
(apply orig-fun args))))
(advice-add 'org-babel-detangle :around #'org-babel-detangle-no-buffer-pop-up)