emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file


From: Rainer M Krug
Subject: Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file
Date: Mon, 12 Jul 2010 09:46:32 +0200

Hi Eric,

On Fri, Jul 9, 2010 at 5:44 PM, Eric Schulte <address@hidden> wrote:
Hi Rainer,

Rainer M Krug <address@hidden> writes:

> On Thu, Jul 8, 2010 at 9:03 PM, Eric Schulte <address@hidden> 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.
 

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 <address@hidden> 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
>>



--
NEW GERMAN FAX NUMBER!!!

Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Cell:           +27 - (0)83 9479 042
Fax:            +27 - (0)86 516 2782
Fax:            +49 - (0)321 2125 2244
email:          address@hidden

Skype:          RMkrug
Google:         address@hidden


reply via email to

[Prev in Thread] Current Thread [Next in Thread]