[ESS] I never want Emacs to split a frame. Can you help?

Paul Johnson pauljohn32 at gmail.com
Tue Oct 20 19:49:56 CEST 2009

For me (and students), there is an annoying feature of Emacs: is the
tendency to automatically split frames. Its very old fashioned, we
think :)

I have tried to reduce that when using ESS by customizing the Emacs
start options.  If the user hits the big blue R, this causes Emacs to
make a new frame and show the R session in it. (lisp below)

However, if the user forgets to hit the big blue R, and sends a
command to a non-existant R session, then ESS does us the favor of
splitting the frame and starting R within a buffer.   In the old days,
ESS would return an error saying there was no instance of R running.
That was adequate.  Now it does this annoying thing.

I'd settle if you could tell me an Emacs config command to completely
eliminate the odious split frame tendency of Emacs.  i've got giant
monitors, I am good at window management. If Emacs just popped up a
new frame every time it wanted to display something, I'd be happy

I expect that's impossible (have been googling), but maybe I could
just stop ESS from triggering splits when it starts R for me.

Here's the configuration from my .emacs that forces emacs to start in
its own frame.  Maybe you can tell me how to customize?

;;Set up emacs-ess for Emacs with other things we like at KU.
;;;;;; This file is automatically loaded by emacs's site-start.el
;;;;;; when you start a new emacs session.
(require 'pc-select)
 '(cua-mode t nil (cua-base))
 '(show-paren-mode t)
 '(text-mode-hook (quote (turn-on-auto-fill text-mode-hook-identify)))
 '(transient-mark-mode t))

(setq inferior-ess-own-frame t)

(setq inferior-ess-same-window nil)
;;;;;create a new frame for each help instance
(setq ess-help-own-frame t)
;;;;;If you want all help
;;;;; buffers to go into one frame do:
(setq ess-help-own-frame 'one)

(setq ess-ask-for-ess-directory nil)
(setq ess-local-process-name "R")

 (setq ansi-color-for-comint-mode 'filter)
  (setq comint-prompt-read-only t)
  (setq comint-scroll-to-bottom-on-input t)
  (setq comint-scroll-to-bottom-on-output t)
  (setq comint-move-point-for-output t)

;; This lets the "shift return" key combination send and step
(defun my-ess-eval ()
  (if (and transient-mark-mode mark-active)
        (call-interactively 'ess-eval-region)
    (call-interactively 'ess-eval-line-and-step)))

(add-hook 'ess-mode-hook
             (local-set-key [(shift return)] 'my-ess-eval)))

Paul E. Johnson
Professor, Political Science
1541 Lilac Lane, Room 504
University of Kansas

More information about the ESS-help mailing list