1

When I have two frames open with different R sessions in each, such as

+------------+------------+ +------------------+ | # file.R | | | | | 1+4 | | | > 1+2 | | | | | [1] 3 | | | > 1+1 | | > | | | [1] 2 | +------------------+ | | > | | 3 *R:2* | +------------+------------+ +------------------+ | 1 file.R | 2 *R:1* | +------------+------------+ 

When I'm in window 1 and eval a line or region into *R:2*, emacs replaces window 2's *R:1* with *R:2*, so I now have it open in both frame-1-window-2 and frame-2-window-3.

+------------+------------+ +------------------+ | # file.R | | | [1] 3 | | 1+4 | > 1+2 | | > 1+4 | | | [1] 3 | | [1] 5 | | | > 1+4 | | > | | | [1] 5 | +------------------+ | | > | | 3 *R:2* | +------------+------------+ +------------------+ | 1 file.R | 2 *R:2* | +------------+------------+ 

And I have to manually change window 2 back to *R:1*.

Since the *R:2* buffer is visible in frame 2, is there a way to prevent emacs from changing window 2? I believe that there is logic where if sourced code produces output and the buffer is not visible, then it is made visible. I think the issue here is that it is not visible in the current frame.

1 Answer 1

1

I think you can work around this by using the function ess-eval-line-invisibly-and-step, instead of ess-eval-line-visibly-and-step. The invisible version won't alter the current window arrangement. There isn't an invisible version for other ess-eval- functions, but most of them take a vis argument, so you could create your own wrappers if you like.

You could also try setting ess-eval-visibly to nil, which might solve the problem directly, and then you would only need to explicitly turn visibility back on when you wanted it.

1
  • Reassigning as (define-key ess-mode-map "\C-c\C-n" 'ess-eval-line-invisibly-and-step) was what did it. Thanks! (For the record, my ess-eval-visibly was already nil, no effect.) Commented Jul 13, 2023 at 16:55

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.