【问题标题】:How can I make ESS to split window horizontally by default?如何让 ESS 默认水平拆分窗口?
【发布时间】:2014-06-10 12:11:47
【问题描述】:

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

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

ESS模式下有类似的吗?

【问题讨论】:

    标签: r emacs ess


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这似乎可以解决问题:

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

      向丹致敬!

      【讨论】:

      • 太好了,很高兴它有效!我编辑了较早的答案以反映这一点,并建议将其包装在一个函数而不是 lambda 中,以便您以后可以根据需要将其从钩子中删除。
      【解决方案3】:

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

      (setq split-height-threshold 0)
      

      到 .emacs 做了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-04
        • 2018-07-23
        • 2013-08-24
        • 2013-02-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多