【发布时间】:2014-06-10 12:11:47
【问题描述】:
我总是喜欢水平分割,因为屏幕有更多的水平空间。 在 python 模式下,我可以通过设置来实现这一点
(py-split-windows-on-execute-function (quote split-window-horizontally))
ESS模式下有类似的吗?
【问题讨论】:
我总是喜欢水平分割,因为屏幕有更多的水平空间。 在 python 模式下,我可以通过设置来实现这一点
(py-split-windows-on-execute-function (quote split-window-horizontally))
ESS模式下有类似的吗?
【问题讨论】:
我不知道 ESS 是否有任何特定于模式的内容。然而,从帮助页面来看,split-window-preferred-function 默认为split-window-sensibly,这反过来又根据split-width-threshold 和split-height-threshold 确定如何拆分窗口。前者设置为nil 禁止水平分割,后者设置为nil 禁止垂直分割。这些设置将是全局的;您可以将(setq-local split-height-threshold nil) 放入您的ess-mode-hook。
编辑/扩展以反映 @qed 的回答。您可能会考虑将本地绑定打包在一个函数中而不是 lambda 中,以便您可以选择从钩子中删除该函数。
(defun forbid-vertical-split ()
"Only permit horizontal window splits."
(setq-local split-height-threshold nil)
(setq-local split-width-threshold 0))
(require 'ess-site)
(add-hook 'ess-mode-hook
'forbid-vertical-split)
【讨论】:
这似乎可以解决问题:
(require 'ess-site)
(add-hook 'ess-mode-hook
(lambda()
(setq-local split-height-threshold nil)
(setq-local split-width-threshold 0)
))
向丹致敬!
【讨论】:
接受的答案对我不起作用,但添加
(setq split-height-threshold 0)
到 .emacs 做了
【讨论】: