[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file
From: |
Eric Schulte |
Subject: |
Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file |
Date: |
Wed, 21 Jul 2010 09:50:47 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) |
Hi Rainer,
Thanks for your patience and persistence. I've pushed up what I believe
should be a fix for this excess buffer movement. There still may be
some issues with things like ess-load-file, but those can now optionally
be squashed by wrapping your hook functions with `save-window-excursion'
as shown.
#+begin_src emacs-lisp :results silent :tangle no
(add-hook 'org-babel-post-tangle-hook
(lambda () (save-window-excursion
(ess-load-file (buffer-file-name)))))
#+end_src
Best -- Eric
Rainer M Krug <address@hidden> writes:
> On 21/07/2010 09:49, Rainer M Krug wrote:
>> On 21/07/2010 09:23, Rainer M Krug wrote:
>>> Hi Eric
>>
>>
>>> On 21/07/2010 00:41, Eric Schulte wrote:
>>>> Hi Rainer,
>>
>>>> I see the problem. When ess-load-file is called an even number of
>>>> times, it results in flip-flopped buffers. I'm not sure of a good
>>
>>> Thanks for the clarification.
>>
>>>> solution here, aside from possibly tangling to a 3rd file, e.g.
>>
>>>> #+begin_src R :tangle /tmp/nothing.R
>>>> y <- 9
>>>> #+end_src
>>
>>>> to ensure a good final balance. Alternately you could try wrapping the
>>>> ess-load-file call in save-window-excursion, which will inhibit it's
>>>> ability to change buffers -- and result in the *R* window taking over
>>>> your frame.
>>
>>>> #+begin_src emacs-lisp :results silent :tangle no
>>>> (add-hook 'org-babel-post-tangle-hook
>>>> (lambda () (save-window-excursion (ess-load-file
>>>> (buffer-file-name)))))
>>>> #+end_src
>>
>>>> Sorry I can't be of more help.
>>
>>> No problem - now I know where the problem is sitting and I might be able
>>> to work around it.
>>
>>> Just an idea: if I could put an if statement in the hook, so that only
>>> when the buffer-file-name is a specific name, ess-load-file is called, I
>>> assume that it should work?
>>> I'll try that one out as well.
>>
>> It seems, that it has nothing to do with ess-load-file. I'll send you
>> the file I am working on directly, as it is quite longish.
>
> I managed to reproduce the problem with the following org file:
>
>
> ########################################################
> ** tangle R and load
> :PROPERTIES:
> :tangle: to-load.r
> :END:
>
> evaluate this
> #+begin_src emacs-lisp :results silent :tangle no
> (add-hook 'org-babel-post-tangle-hook
> (lambda () (message "I'm in %s" (buffer-file-name))))
> #+end_src
>
> then tangle
>
> #+begin_src R :comments yes
> x <- 8
> #+end_src
>
> #+begin_src R
> y <- 9
> #+end_src
>
> #+begin_src R :tangle file2.R
> y <- 9
> #+end_src
> ########################################################
>
> What I did:
>
> 1) Opened a file containing the text above
> 2) evaluated the lisp code to set the hook
> 3) C-x 2 to create a second buffer which shows the same file
> 4) go to the top buffer and C-c C-v t to tangle
> -> The top window is switching to a different buffer
> 5) reproducible here.
>
> 6) If I open to-load.r but make sure that both windows are displaying
> the .org buffer, it doesn't happen - only that the second buffer is
> switching to to-load.r
>
> 7) if to-load.r is not visited by a buffer but file2.R is, the switching
> is there again.
>
> Hope this helps,
>
> Rainer
>
>
>>
>> Cheers,
>>
>> Rainer
>>
>>
>>
>>> Cheers and thanks,
>>
>>> Rainer
>>
>>
>>
>>>> Best -- Eric
>>
>>>> Rainer M Krug <address@hidden> writes:
>>
>>>>> Hi Eric
>>>>>
>>>>> I just discovered a "switching of buffers" when tangling the following
>>>>> org file with the new org-babel-post-tangle-hook.
>>>>>
>>>>> Otherwise it is working perfectly now.
>>>>>
>>>>>
>>>>> #############################################
>>>>> ** tangle R and load
>>>>> :PROPERTIES:
>>>>> :tangle: to-load.r
>>>>> :END:
>>>>>
>>>>> evaluate this
>>>>> #+begin_src emacs-lisp :results silent :tangle no
>>>>> (add-hook 'org-babel-post-tangle-hook
>>>>> (lambda () (ess-load-file (buffer-file-name))))
>>>>> #+end_src
>>>>>
>>>>> then tangle
>>>>>
>>>>> #+begin_src R :comments yes
>>>>> x <- 8
>>>>> #+end_src
>>>>> t
>>>>> #+begin_src R
>>>>> y <- 9
>>>>> #+end_src
>>>>>
>>>>> #+begin_src R :tangle file2.R
>>>>> y <- 9
>>>>> #+end_src
>>>>>
>>>>> A second buffer will open with the R session.
>>>>> If you tangle a second time, these buffers are switching, i.e. where the
>>>>> .org buffer was is the R buffer and vice-versa.
>>>>> #############################################
>>
>>
>>
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, (continued)
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Eric Schulte, 2010/07/12
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Dr Rainer M Krug, 2010/07/13
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Rainer M Krug, 2010/07/15
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Eric Schulte, 2010/07/16
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Rainer M Krug, 2010/07/19
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Rainer M Krug, 2010/07/20
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Eric Schulte, 2010/07/20
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Rainer M Krug, 2010/07/21
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Rainer M Krug, 2010/07/21
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Rainer M Krug, 2010/07/21
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file,
Eric Schulte <=
- Re: [Orgmode] [babel] feature request - tangle-and-evaluate-tangled-file, Rainer M Krug, 2010/07/22