Andreas Leha writes: > Rainer M Krug writes: >> Andreas Leha writes: >> >>> Hi Rainer, >>> >>> Rainer M Krug writes: >>>> Andreas Leha writes: >>>> >>>>> Hi Rainer, >>>> >>>> Hi Andreas, >>>> >>>>> >>>>> Rainer M Krug writes: >>>>>> Christopher Witte writes: >>>>>> >>>>>>> perhaps what you want is a named session, see >>>>>>> http://orgmode.org/manual/session.html >>>>>> >>>>>> Sure - that's what I have. >>>>>> >>>>>> But how can I close the named session when I don't need it anymore, or >>>>>> want to start, the next time I use the named session, with a new >>>>>> session? >>>>>> >>>>>> >>>>>>> >>>>>>> On 28 May 2015 at 10:44, Rainer M Krug wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> I can start a session as follow: >>>>>>>> >>>>>>>> --8<---------------cut here---------------start------------->8--- >>>>>>>> #+begin_src R :session Test >>>>>>>> cat("Session Test\n") >>>>>>>> #+end_src >>>>>>>> --8<---------------cut here---------------end--------------->8--- >>>>>>>> >>>>>>>> Now I hava an R session named *Test*. But how can I closes this session? >>>>>>>> I thought about just quitting R >>>>>>>> >>>>>>>> --8<---------------cut here---------------start------------->8--- >>>>>>>> #+begin_src R :session Test >>>>>>>> q(save = "no) >>>>>>>> #+end_src >>>>>>>> --8<---------------cut here---------------end--------------->8--- >>>>>>>> >>>>>>>> but this does not return as ESS is waiting for the prompt (">"). >>>>>>>> >>>>>>>> Is there a way of closing the session *Test* and close the buffer? >>>>>>>> >>>>>>>> My reasoning is that I want to do different longer analysis in one org >>>>>>>> file and start each in its own session, i.e. clean R. But as they >>>>>>>> involve several steps, I don't want to put them into one code block. >>>>>>>> >>>>>>>> So I have several code blocks which I want to execute in a "throw away >>>>>>>> session" which I would like to discard afterwards. >>>>>>>> >>>>>>>> So I am looking for something like >>>>>>>> >>>>>>>> #+CLOSE_SESSION Test >>>>>>>> >>>>>>>> which would then close the session *Test* >>>>>>>> >>>>>>>> Is something like this possible at the moment? >>>>>>>> >>>>> >>>>> How about >>>>> >>>>> #+name: killRsession >>>>> #+begin_src emacs-lisp :var rsession="*myR*" :results none >>>>> (progn >>>>> (switch-to-buffer rsession) >>>>> (ess-quit) >>>>> (sleep-for 1) >>>>> (kill-buffer)) >>>>> #+end_src >>>>> >>>>> >>>>> #+call: killRsession("*myR*") :results none >>>> >>>> Thanks - this works. But I get an error which says: >>>> >>>> ,---- >>>> | save-excursion: Wrong type argument: integer-or-marker-p, nil >>>> `---- >>>> >>>> Any suggestion on how to avoid this? >>>> >>> >>> I do not see that error, so hard to say. Do you have a backtrace? Wild >>> guess: Maybe the ess-quit changed? What version of ess are you using? >> >> ess-15.03 >> > > I am on ess-15.09-devel. That might explain. For some time, I was using the git version (and I still update it daily) but I was quite a few times bitten by changes / bugs so I decided to use the latest stable release of ESS. > >>> >>> Note, that this could be improved by replacing the (sleep-for 1) with >>> something that actually waits until R has quit... >> >> I can live with the error for now, but I might look into it some time >> later. >> > > Fine. > > Andreas > > -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: Rainer@krugs.de Skype: RMkrug PGP: 0x0F52F982