18

In ESS when I am evaluating chunks of code in a .R file using C-c C-j or C-c C-r (to send the line or region to a running R process), how can I get the R buffer to scroll down automatically, such that after evaluating a region the cursor is at the bottom, at the prompt?

Thanks.

stevejb
  • 2,414
  • 5
  • 26
  • 41

3 Answers3

27

Probably a bunch of ways to do it. In my .emacs.d I have

  (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)

You might also be interested in this code, originally from Felipe Csaszar, which lets you do what you ask and a few other nice things besides.

Kieran
  • 1,213
  • 10
  • 9
  • 3
    `(setq comint-prompt-read-only t)` is likely a bad idea. I used to have this whole block of commands in .emacs (as copied from emacswiki), but `(setq comint-prompt-read-only t)` would sometimes break the interaction between the buffer and inferior ESS process, forcing me to kill R and start session over. – Leo Alekseyev Apr 29 '10 at 01:07
  • 1
    I too have found that read-only can lead to issues with ESS. Beware. – Vince Mar 09 '12 at 09:30
  • Yeah, I removed it myself ages ago as well. – Kieran Mar 09 '12 at 11:25
1

Have a look at auto-scrolling in emacs doc. For my part:

customize-variable RET scroll-down-aggressively RET

scroll-down-aggressively set to 1 did the job.

DJJ
  • 2,481
  • 2
  • 28
  • 53
-1

DJJ's solution works perfectly for ESS and polymode in Spacemacs.

First, put (scroll-down-aggressively 1) within the defun dotspacemacs/user-config () section of the configuration file, e.g. ~/.spacemacs.

Then, evaluate the line using SPC , e r or restart configuration SPC f e d.

Emacs 27 complained about the above line because "Symbol's function definition is void" so I had to change it as follow to achieve the same result:

(setq scroll-down-aggressively 0.01)
Cody Gray - on strike
  • 239,200
  • 50
  • 490
  • 574
Firas
  • 1
  • 2