2014-06-10 27 views
2

我總是喜歡水平分割,因爲屏幕有更多的水平空間。 在蟒蛇模式我可以通過設置如何讓ESS默認水平分割窗口?

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

是否有ESS模式類似的東西實現這一目標?

回答

5

我不知道ESS是否有特定模式。但是,從幫助頁面看,split-window-preferred-function默認爲split-window-sensibly,這反過來決定了如何根據split-width-thresholdsplit-height-threshold分割窗口。將前者設置爲nil禁止水平分割,後者設置爲nil禁止垂直分割。這些設置將是全球性的;你可以在你的ess-mode-hook中輸入(setq-local split-height-threshold nil)

編輯/擴展以反映@ 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) 
      )) 

榮譽丹!

+2

大,很高興它的工作原理!我編輯了較早的答案以反映這一點,並且包含了一個建議,將其包含在一個函數中而不是lambda中,因此如果您願意,可以在稍後將其從鉤子中移除。 – Dan

0

接受的答案並沒有爲我工作,但加入

(setq split-height-threshold 0) 

到的.emacs做