[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] How to override ":eval no" in call lines?
From: |
Sebastien Vauban |
Subject: |
Re: [O] How to override ":eval no" in call lines? |
Date: |
Fri, 23 Jan 2015 12:44:18 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4 (windows-nt) |
"Charles C. Berry" wrote:
> Sebastien Vauban wrote:
>> In a long document, I must have ":eval no" at file level, as this is
>> the common setting for most code blocks. However, how do I unset that
>> for some call lines.
>
> See (info "(org) Evaluating code blocks")
>
> Note what it says about 'inside' and 'outside' header arguments. You
> need *both* set to `:eval yes'.
>
> The inside arg will allow execution of `plus' while the `outside' will
> allow execution of call_plus(...).
>
> Try this:
>
> 6 + 6 = call_plus[:eval yes](x=6)[:eval yes].
That works, thanks!
However, I really have trouble understanding what are inside and outside
header arguments for. I still don't get it properly.
Summarizing the above doc:
- "inside" header arguments are applied to the *evaluation of the code
block*. They /affect how the code block is evaluated/.
- "end" header arguments do not affect evaluation of the named code
block; instead, they /affect how the results are incorporated/ into
the Org mode buffer.
I don't get why one has to add ":eval yes" for both types of headers
arguments.
Moreover, I once read that when evaluating a call line, it is converted
into an ephemeral Emacs Lisp code block equivalent to the call line (and
created at the point of the call line):
#+begin_src emacs-lisp :var result=<NAME>(<ARGUMENTS>) <INSIDE-HEADER-ARGS>
result
#+end_src
which is evaluated in place.
Where do <END-HEADER-ARGS> fit into that picture?
Best regards,
Seb
--
Sebastien Vauban