emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Babel: How to call code in one org file into another org file


From: Lawrence Bottorff
Subject: Re: [O] Babel: How to call code in one org file into another org file
Date: Sat, 31 Oct 2015 00:14:52 +0000

Doing M-x org-babel-lob-files called up a customization buffer that allowed me to put in many separate file paths. I did this for ../a.org and ../b.org.

a.org:

#+name: myadd
#+begin_src lisp :session
(defun myadd (x y)
  (+ x y))
#+end_src

b.org:

#+name: multi_x2
#+begin_src lisp :session
(defun multi_x2 (x)
  (* 2 x))
#+end_src

then in c.org:

#+name: add&multi_x2
#+begin_src lisp :session
(defun add&multi_x2 (x y)
  (multi_x2 (myadd x y)))
#+end_src

but upon C-c C-c in c.org SLIME didn't know about myadd or multi_x2 ... until I did C-c C-c in both a.org and b.org for the respective functions. Then c.org's add&multi_x2 knew about the helper functions. That is wonderful and allows a very distributed and modular approach to org-mode LP for Lisp. However, it would be nice if I didn't have to acquaint my SLIME session by hand all of my ingested babel-lob files. Any way to have this happen automatically upon C-c C-c-ing my main org file? I found this discussion, but I don't believe it really addresses my wish.

LB



On Fri, Oct 30, 2015 at 8:55 PM, Thomas S. Dye <address@hidden> wrote:
Aloha Lawrence,

Lawrence Bottorff <address@hidden> writes:

> There are many, many Babel examples, but I can't seem to find this
> functionality: A function in a Lisp code block in one org file is to be
> called from a Lisp code block in another org file. Is this possible? I know
> you can stick stuff into your personal "Library of Babel," but I just want
> to write a Lisp block that calls a function from another org file. I'll
> have SLIME running, of course.
>
>
> file1.org:
> ...
>  #+begin_src lisp
> (defun foo ()
>    (...))
> #+end_src
>
> is then called from. . .
>
> file2.org:
> ...
> #+begin_src lisp
> (defun baa ()
>   (foo))
> #+end_src

Any Org mode file can function as Library of Babel.  In your case,
(org-babel-lob-ingest path/to/file1.org) should do what you want.  Note
that org-babel-lob-ingest is bound to C-c C-v i.

hth,
Tom

--
Thomas S. Dye
http://www.tsdye.com


reply via email to

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