r语言 - 如何使ESS在默认情况下水平分割窗口



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

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

在ESS模式中是否有类似的东西?

我不知道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)

这似乎奏效了:

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

向Dan致敬!

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

(setq split-height-threshold 0)

to .emacs did

相关内容

最新更新