代码之家  ›  专栏  ›  技术社区  ›  James

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

  •  1
  • James  · 技术社区  · 6 年前

    我做了一年左右的Emacs用户。我通常在每个会话中设置相同的窗口(四个窗口)。

    我已经设置了捕获模板,可以捕获我想要的内容,但是:我希望选择的捕获模板在新的(第五个)窗口中打开,以保留现有的布局,而不是捕获模式临时将我从窗口设置中拉出来。我通常希望捕获模板打开一段时间,这样会造成中断。

    这个 似乎 好像这是一个显而易见的选择,但我想不出来。提前感谢所有Emacs的领导。

    1 回复  |  直到 6 年前
        1
  •  2
  •   legoscia    6 年前

    我想出了一个更容易使用的版本 Dan's answer 链接问题:

    (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))
    

    也就是说,不必修改组织模式代码并删除对 delete-other-windows ,这段代码临时重新定义 删除其他窗口 ignore 虽然 org-capture-place-template 正在被呼叫。

    它并不完全满足您的需要:它选择一个现有的窗口并将捕获缓冲区放在那里。至少它比删除所有以前的窗口(只有一个)的默认行为要好。

    可能有一种方法可以通过定制变量来满足您的需要。 display-buffer-alist 但是我想不出来…