在特定窗口中打开组织捕获缓冲区?

Jam*_*mes 2 emacs org-mode

我已经成为 Emacs 用户大约一年左右了。我经常为每个会话设置相同的窗口(四个窗口)。

我已经设置了捕获模板并且可以捕获我想要的内容,但是:我希望选择的捕获模板在新的(第五个)窗口中打开,而不是暂时将我从窗口设置中拉出来,从而保留我现有的布局。我通常希望捕获模板打开一段时间,因此它具有破坏性。

似乎是一个显而易见的选择,但我无法弄清楚。在此先感谢所有 Emacs 的负责人。

leg*_*cia 5

我想出了一个更易于使用的对链接问题的回答

(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))
Run Code Online (Sandbox Code Playgroud)

也就是说,不必修改 Org-mode 代码并删除对 的调用delete-other-windows,这段代码在被调用时临时重新定义delete-other-windows为。ignoreorg-capture-place-template

它并不完全符合您的要求:它选择现有窗口之一并将捕获缓冲区放在那里。至少它比删除所有先前窗口的默认行为更好。

可能有一种方法可以通过自定义变量来做你想做的事display-buffer-alist,但我想不通......