![](/img/trans.png)
[英]In Emacs org-mode, how do I get org-capture to open in a full-sized window?
[英]How to make org-capture open buffers in new vertical split window in emacs?
如何修改 org-capture 的行为并使其在选择模板后将新打开的缓冲区放置在 Emacs 上的新垂直拆分 window 中? 更准确地说,如何使捕获的模板 window 放置在(split-window-below)当前焦点或最左边的 window 下方?
这是一个复杂的主题(我不完全理解 - 警告购买者。)。 问题是org-capture
和实际执行 window 拆分的 function 之间存在很长的概念距离,称为split-window-sensibly
sensibly 的 function 所以有很多地方你可以想象到行为的改变,但问题是无论你做什么都可能会破坏很多其他与捕获无关的事情。
split-window-sensibly
的文档字符串(执行Ch f split-window-sensibly RET
来读取它)确实提到了两个变量:
默认情况下
display-buffer
例程调用此 function 以拆分最大或最近最少使用的 window。 要更改默认值,请自定义选项split-window-preferred-function
。您可以通过将变量
split-width-threshold
设置(或绑定)为零来强制此 function 不水平拆分 WINDOW。 此外,如果您将split-height-threshold
设置为零,则此 function 垂直拆分 WINDOW 的机会会增加。为了不垂直拆分 WINDOW,请将变量
split-height-threshold
设置(或绑定)为零。 此外,您可以将 `split-width-threshold' 设置为零,以使水平拆分更有可能发生。
因此,我建议您定义自己的 org-capture function,在调用“真实”`org-capture 之前使用 let-bind 设置这些变量:
(defun my-org-capture ()
(interactive)
(let ((split-width-threshold nil)
(split-height-threshold 0))
(org-capture)))
并使用它而不是“真实”的。 例如,您可以通过执行将其绑定到 Org 模式手册推荐的内容
(global-set-key (kbd "C-c c") 'my-org-capture)
(或修改您使用的任何键绑定)。
这样做的好处是它只修改了您调用org-capture
方式,因此几乎没有机会破坏其他任何东西。 如有必要,您可以轻松撤消更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.