Я придумал более простую в использовании версию Ответ Дэна на связанный вопрос:
(defun my-org-capture-place-template-dont-delete-windows (oldfun args)
(cl-letf (((symbol-function 'delete-other-windows) 'ignore))
(apply oldfun args)))
(with-eval-after-load "org-capture"
(advice-add 'org-capture-place-template :around 'my-org-capture-place-template-dont-delete-windows))
То есть вместо того, чтобы изменять код режима Org и удалять вызов на delete-other-windows
, этот фрагмент кода временно переопределяет delete-other-windows
на ignore
, пока вызывается org-capture-place-template
.
Он не делает то, что вам нужно: он выбирает одно из существующих окон и помещает туда буфер захвата. По крайней мере, это лучше, чем стандартное поведение удаления всех предыдущих окон, кроме одного.
Возможно, есть способ сделать то, что вы хотите, настроив переменную display-buffer-alist
, но я не мог понять это ...