[ESS] iESS: point jumps to EOB on process output

Sam Steingold sds at gnu.org
Wed Sep 5 15:46:47 CEST 2012

> * Vitalie Spinu <fcvahivg at tznvy.pbz> [2012-09-05 10:20:04 +0200]:
>   >> Sam Steingold <sds at gnu.org>
>   >> on Tue, 4 Sep 2012 17:30:21 -0400 wrote:
>   > When I have an R function executing, whenever it prints something, the
>   > point jumps to the end of the ESS buffer.
>   > This makes is very difficult to get the previously printed data (since
>   > the point jumps to the end of buffer all the time).
>   > It would be nice if the point jumped to the EOB only when the function
>   > finished (i.e., when the prompt is printed) or not at all.
> First check the values of 
>   comint-scroll-to-bottom-on-output
>   comint-scroll-show-maximum-output
> if they are t this is comint thing. 

comint-scroll-to-bottom-on-output is a variable defined in `comint.el'.
Its value is nil

  This variable is an alias for `comint-move-point-for-output'.

comint-scroll-show-maximum-output ==> t
but it only affects the behavior _after_ the command completes.

> Second, ESS has two evaluation mechanisms visible and not, depending
> on the value of ess-eval-visibly-p (defaults to t). If evaluation is
> visible, that means you want to see the input text also in your output
> buffer.

what is "output buffer"?

also, ess-eval-visibly-p does not comply with the emacs coding standards
(variables should not have "-p", that's for functions) :-)

also, I do want my commands and their output to show up in *R*,
but I do NOT want that to affect the point in *R*.

> I see, that in this case, ESS ignores
> comint-scroll-to-bottom-on-output.
> We can in principle make ess-eval-linewise respect
> comint-scroll-to-bottom-on-output. What do others think?

In general, I think the interactive buffer behavior should be the
vanilla comint unless there is a clear overriding need otherwise.
The fact that I face different behavior in shell and R is quite
inconvenient; it means that I have to customize twice essentially the
same modes.

> Third, what do you mean that it makes "very difficult to get
> previously printed data"?

Imagine I did something in R, so that the *R* buffer contains, say, 40
lines which I want to examine (e.g., copy into a different buffer).
Now, R is running a function which prints a line every 5 seconds.
I scroll up to find my 40 important lines, but every 5 seconds my point
jumps to the end of the buffer, so that I have no time to select the 40
lines and copy them out.

Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X 11.0.11103000
http://www.childpsy.net/ http://americancensorship.org http://palestinefacts.org
http://ffii.org http://iris.org.il http://pmw.org.il http://dhimmi.com
Send $10 for a brochure on how to make money selling brochures.

More information about the ESS-help mailing list