-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12/07/2010 19:51, Eric Schulte wrote: > Rainer M Krug <r.m.k...@gmail.com> writes: > >> Hi Eric, >> >> On Fri, Jul 9, 2010 at 5:44 PM, Eric Schulte <schulte.e...@gmail.com> wrote: >> >>> Hi Rainer, >>> >>> Rainer M Krug <r.m.k...@gmail.com> writes: >>> >>>> On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <schulte.e...@gmail.com> >>> wrote: >>> [...] >>>>> >>>>> (add-hook 'org-babel-post-tangle-hook >>>>> (lambda () (ess-load-file (buffer-file-name)))) >>>>> >>>> >>>> Unfortunately, this does not work. I put the code above into my >>>> emacs.organd nothing happens - not even an error message. I tried to >>>> use the C-h v to customise the variable, but I don't manage it. >>> >>> If the variable isn't registered with C-h v, then it sounds like maybe >>> you need to update Org-mode, and/or re-run make clean && make. >>> >> >> OK - that is working now. >> >> >>> >>>> In addition, The filename for es-load-file shoud not be the buffer >>>> name, but the buffer name with the extension replaced with R. >>>> >>> >>> `buffer-file-name', returns the name of the file that the buffer is >>> visiting, so wouldn't this already be the case if the filename ends with >>> .R? >>> >> >> Isn't the buffer from which I am tangling the org buffer, and not the result >> from the tangling? (see below for further remarks. >> > > No this hook is run from /within/ a buffer visiting the file of tangled > code, so in the example hook function above (buffer-file-name) will > equal the name of the file of tangled R code. From your later message > it looks like the issues below have been resolved.
Thanks a lot for a very useful addition, and I will see abut the buffer-name and come back if it is still the org-file buffer for me, Rainer > > Best -- Eric > >> >> >>> >>> This minimal example with the hook defined as above works for me. After >>> tangling I can jump to the *R* buffer where both x and y are defined. >>> >>> --8<---------------cut here---------------start------------->8--- >>> ** tangle R and load >>> :PROPERTIES: >>> :tangle: to-load.r >>> :END: >>> >>> #+begin_src R :comments yes >>> x <- 8 >>> #+end_src >>> >>> #+begin_src R >>> y <- 9 >>> #+end_src >>> --8<---------------cut here---------------end--------------->8--- >>> >> >> Not here - >> >> Emacs and org-mode version: >> >> GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1) >> Org-mode version 6.36trans (release_6.36.603.g227b) >> >> 1) if no R process is running, I get the following message: >> ess-start-process-specific: No ESS processes running; not yet implemented to >> start (Initial,nil) >> No problem 0 I can start an R process manually. >> >> 2) when an R session is running, I get the following error message from ESS: >> Errors: Use C-c ` to find error. >> Symbol's function definition is void: with-temp-filebuffer >> >> and from ESS: >> >> Error in source("/home/rkrug/tmp/R.org") : >> /home/rkrug/tmp/R.org:1:1: unexpected '^' >> 1: ** >> >> it seems to submit the org file (the buffer is saved as R.org) to R. >> >> So buffer-file-name should actually be replaced with the name from the file >> name resulting from the tangling, in the easiest case (which would be fine >> with me) the org buffer name with .org replaced with .R. >> So I did the following (my firs elisp code!): >> >> (add-hook 'org-babel-post-tangle-hook >> (lambda () (ess-load-file (replace-regexp-in-string ".org" ".R" >> buffer-file-name)))) >> >> and it is working - except that I still get the Symbol's function definition >> is void: with-temp-filebuffer , but it does not seem to do anything. >> >> Thanks a lot, >> >> Rainer >> >> >> >> >> >>>> >>>> I am sorry about all these questions, but emacs-lisp I have never used >>>> emacs-lisp (I should - and I will!) >>>> >>> >>> No problem at all, but be careful about learning too much lisp as you >>> may begin to grow dissatisfied with R :) >>> >>> Best -- Eric >>> >>>> >>>> Cheers and thanks for your patience, >>>> >>>> Rainer >>>> >>>> >>>>> Best -- Eric >>>>> >>>>> Rainer M Krug <r.m.k...@gmail.com> writes: >>>>> >>>>>> Hi >>>>>> >>>>>> I am using org-babel for literate programming in R and I am using the >>>>>> following approach to test the code: >>>>>> >>>>>> 1) tangle >>>>>> 2) refresh buffer containing the tangled code (I use auto-revert-mode >>> or >>>>>> global-auto-revert-mode for that) >>>>>> 3) load the tangled file into an existing R session via ESS R for >>>>> evaluation >>>>>> >>>>>> This involves switching between buffers in always the same sequence. >>>>>> Therefore my suggestion: >>>>>> >>>>>> would it be possible to have a tangle-and-evaluate-tangled-file >>>>> funcction, >>>>>> which is doing this automatically? >>>>>> >>>>>> C-c - 0 and org-babel-execute-buffer do not work in this case, as >>>>> functions >>>>>> are split over several code blocks in R. >>>>>> >>>>>> Cheers, >>>>>> >>>>>> Rainer >>>>> >>> -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkw8IGQACgkQoYgNqgF2egpm/ACdEttwt8P3epMZI6GfcksVW6s/ apIAnAj6BYlyAUgTcUST65NOjWk91Pmz =15EP -----END PGP SIGNATURE----- _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode