Wenn ich ein Code-Snippet habe, das ich mit einer Datei verwechsle, aber erwarte, dass sich der Dateiname im Laufe der Zeit ändert, gibt es eine sauberere Möglichkeit, den Dateinamen zu ändern als Query-replace?
Angenommen, ich verwickle Code in ~ / dir / my-file.el:
#+BEGIN_SRC emacs-lisp :tangle ~/dir/my-file.el
(setq myvar1 "value1")
#+END_SRC
#+BEGIN_SRC emacs-lisp :tangle ~/dir/my-file.el
(defun foo (bar) ... )
#+END_SRC
etc.
Dann später stelle ich fest, dass die Datei besser an einem anderen Ort platziert werden würde:
#+BEGIN_SRC emacs-lisp :tangle ~/dir/my/file.el
(setq myvar1 "value1")
#+END_SRC
#+BEGIN_SRC emacs-lisp :tangle ~/dir/my/file.el
(defun foo (bar) ... )
#+END_SRC
etc.
Gibt es eine Möglichkeit, das Argument zu ändern: dynamisch verwickeln.
Ich habe nachgeforscht und festgestellt, dass ich elisp in das: tangle-Argument einspeisen kann. Wenn ich (setq myfile "~/dir/file.el)
das Folgende bewerte und dann verwickle:
#+BEGIN_SRC emacs-lisp :tangle (print myfile)
(setq myvar1 "value1")
#+END_SRC
#+BEGIN_SRC emacs-lisp :tangle (print myfile)
(defun foo (bar) ... )
#+END_SRC
Ich erhalte das gewünschte Ergebnis. Ich könnte dann ein Elisp-Snippet ausführen, um die Variable mit org-babel zu setzen, aber ich habe mich gefragt, ob es einen saubereren Weg gibt, dies zu tun.
In den Dokumenten im: tangle-Header ist kein nativer Weg festgelegt.