[ESS] New behavior of C-c C-z (Re: Feedback on 12.04)

Vitalie Spinu spinuvit at gmail.com
Sat Oct 20 12:04:16 CEST 2012


  >> Martin Maechler <maechler at stat.math.ethz.ch>
  >> on Sat, 20 Oct 2012 09:19:01 +0200 wrote:

[...]


  > I'm sure I'm not 100% uptodate on this topic, *but* I know that we
  > had introduced the "jump to END OF BUFFER of iESS" (typically *R*)
  > very much on purpose because ESS users wanted it... I think I have
  > used this quite often, because indeed I most of the time wanted to
  > jump to EOB in *R* when coming from the script file. It could be
  > that this is much less important now that (I think) the iESS
  > (comint) buffer is scrolled automatically and point typically is at
  > EOB in that buffer .... Is this the reason why you (and others)
  > think that "jump to EOB" is no longer much needed ?

Yes,  precisely. If the point is at eob (and it is usually there) then
all the inserted input/output stays before the point. In case your point
is not after the process mark comint doesn't move it on output (unless
you have some hooks activated). And this is a good thing.

So the motivation is as follows. In 99.9% of the cases the point is
already at the EOB and -goto-end-of-ESS is redundant. The issue is what
happens in the remaining 0.1%. In most likely scenario you have moved
your point up in the buffer for a reason, and would like to return to
that point. Now because you are so used to C-c C-z shortcuts, even if
you know about C-c C-y, you are likely to automatically press C-c
C-z. In another scenario, when you really need to go to EOB, you can do
C-c C-z M->, not a big deal.

So in my opinion, this behavior is almost uniformly better. Also because
it's less of a burden for the user to remember two almost redundant
keys.

Still, it should be tried. May be I am grossly overestimating this 99.9% ;)

    Vitalie

  >> If you have suggestions or objections better air them now, otherwise
  >> this will end up in the next patch release.
  >> 
  >> Vitalie
  >> 
  >> >> Vitalie Spinu <spinuvit at gmail.com>
  >> >> on Mon, 09 Apr 2012 09:58:06 +0200 wrote:
  >> 
  >> >>>>> Frede Aakmann Tøgersen <frtog at vestas.com>
  >> >>>>> on Sun, 8 Apr 2012 10:56:32 +0200 wrote:
  >> 
  >> >> Hi Vitalie
  >> >> Actually I usually open an R script buffer first and then start R using M-x
  >> >> R. C-c C-z brings the cursor to the end of the IESS buffer. I would prefer to
  >> >> have C-c C-y to do the opposite, i.e. bring the cursor from the IESS buffer to
  >> >> the R script buffer. That is quite useful when you occasionally do a C-x 1 in
  >> >> the IESS buffer.
  >> 
  >> > All right, as nobody objected to changing the redundant meaning of C-c
  >> > C-y, this is what I propose:
  >> 
  >> > In script:
  >> 
  >> > C-c C-y: Show *R* buffer, but don't switch to it.
  >> > C-c C-z: Switch to the end of *R*
  >> 
  >> > In inferior (aka *R*):
  >> 
  >> > C-c C-z returns to the most recent R-buffer. Following invocations of
  >> > C-z (or just z) will jump to next buffer in order of recency. Shift-z
  >> > will get you back in the list of R buffers. For example if you press
  >> > "C-c C-z z z Z" you will get to 2nd most recent buffer. Same story with
  >> > C-c C-y for convenience.
  >> 
  >> > Currently C-c C-z and C-c C-/ are bound to the same thing in iESS,
  >> > ess-abort, which is also what C-x k will do. So not a big deal of a
  >> > loss.
  >> 
  >> > Vitalie.
  >> 
  >> >> If some people do not like the current default behaviour of '_' they can of course set the ess-smart-underscore variable.
  >> 
  >> >> Yours sincerely / Med venlig hilsen
  >> 
  >> >> Frede Aakmann Tøgersen
  >> >> Specialist, M.Sc., Ph.D.
  >> >> Siting & Modeling
  >> >> Plant Siting & Forecasting
  >> 
  >> >> Vestas Technology R&D
  >> >> T +45 9730 5135
  >> >> M +45 2547 6050
  >> >> frtog at vestas.com
  >> >> http://www.vestas.com>
  >> >> Company reg. name: Vestas Wind Systems A/S
  >> >> This e-mail is subject to our e-mail disclaimer statement.
  >> >> Please refer to www.vestas.com/legal/notice
  >> >> If you have received this e-mail in error please contact the sender.
  >> 
  >> >> -----Original Message-----
  >> >> From: ess-help-bounces at r-project.org [mailto:ess-help-bounces at r-project.org] On Behalf Of Vitalie Spinu
  >> >> Sent: 6. april 2012 13:56
  >> >> To: Marius Hofert
  >> >> Cc: ess-help at r-project.org
  >> >> Subject: Re: [ESS] Feedback on 12.04
  >> 
  >> >> Hi Marius,
  >> 
  >> >>>>> Marius Hofert <marius.hofert at math.ethz.ch>
  >> >>>>> on Fri, 6 Apr 2012 12:57:14 +0200 wrote:
  >> 
  >> >> 1) Starting a buffer with a new R process can be done via C-c C-y. By doing so,
  >> >> the point remains in the newly created buffer with the running R process. It
  >> >> would be great if the point could automatically jump back to foo.R on executing
  >> >> C-c C-y. I would find this useful, although a workaround is to start the R
  >> >> process with C-c C-n (if no active R process is there, a new one will be asked
  >> >> for and started -- doing it this way the point remains in foo.R).
  >> 
  >> >> This made me thinking. Currently we have C-c C-y which jump to iESS and
  >> >> C-c C-z which jump to iESS and move the point to the end of buffer. I
  >> >> find C-c C-y highly redundant, as I always want to jump to the end.
  >> 
  >> >> So I accept this as a relevant and valid point. Shall we make C-c C-y to
  >> >> show/start the inferior,  but stay in the current buffer? It will be a
  >> >> useful complement of C-c C-z this way.
  >> 
  >> >> 2) Assume again you are in the buffer containing the active R process. Issuing
  >> >> C-c C-q to close the buffer, the point (unfortunately) still remains in this
  >> >> buffer (instead of going back to foo.R). This is a bit annoying since,
  >> >> typically, one would like to jump to foo.R.
  >> 
  >> >> I have 10 foo[i].R in my emacs? Which shall ESS choose to jump back?
  >> 
  >> >> 3) Similarly for killing an R process. One changes the active buffer from foo.R
  >> >> to the R process buffer and then hits C-x k. The point then remains in the
  >> >> killed R process buffer. In most of the cases, one would like to continue the
  >> >> work in foo.R and so it would be great if a C-x k would throw the point back to
  >> >> foo.R instead of remaining in the buffer with the killed R process.
  >> 
  >> >> Same as above with an additional: If you kill the buffer, how come that
  >> >> your point is still in it? Killing the process buffer should kill the
  >> >> process and return to whatever buffer was active before, most likely
  >> >> foo.R in your case.
  >> 
  >> >> Vitalie.
  >> 
  >> >> ______________________________________________
  >> >> ESS-help at r-project.org mailing list
  >> >> https://stat.ethz.ch/mailman/listinfo/ess-help>
  >> ______________________________________________
  >> ESS-help at r-project.org mailing list
  >> https://stat.ethz.ch/mailman/listinfo/ess-help



More information about the ESS-help mailing list