如何使ESS默认水平分割窗口?

时间:2014-06-10 12:11:48

标签: r emacs ess

我总是喜欢水平分割,因为屏幕有更多的水平空间。 在python模式中,我可以通过设置

来实现
 (py-split-windows-on-execute-function (quote split-window-horizontally))

ESS模式中有类似的东西吗?

3 个答案:

答案 0 :(得分:5)

我不知道ESS是否有任何模式特定的。但是,从帮助页面看,split-window-preferred-function默认为split-window-sensibly,后者又决定了如何根据split-width-thresholdsplit-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)

答案 1 :(得分:2)

这似乎可以解决问题:

(require 'ess-site)
(add-hook 'ess-mode-hook
          (lambda()
            (setq-local split-height-threshold nil)
            (setq-local split-width-threshold  0)
            ))

向丹致敬!

答案 2 :(得分:0)

接受的答案对我不起作用,但添加了

(setq split-height-threshold 0)

到.emacs