Ich möchte verstehen, wie die Library Of Babel von org-babel funktioniert. Scheint ein mächtiges, aber wenig genutztes Werkzeug zu sein.
Die Dokumentation sagt, dass ich kann
Fügen Sie der Bibliothek Code hinzu, indem Sie den Code zuerst in regulären 'src'-Codeblöcken einer Org-Datei speichern und dann die Org-Datei mit org-babel-lob-ingest laden, das an Cc Cv i gebunden ist.
Was macht das org-babel-lob-ingest
wirklich? Es werden nur alle Quellblöcke in einer Org-Datei an eine andere Datei angehängt?
Und was sind die Anwendungsfälle dafür? Kann ich interaktiv sehen, was ich in meiner Bibliothek habe? Kann ich die Noweb-Syntax mit Quellblöcken in der Bibliothek verwenden? Was muss ich tun, um es zu verwenden?
Beispiele und Links zu Tutorials sind herzlich willkommen.
org-babel-library-of-babel
. Bei der Suche nach Quellblöcken sucht org-babel in der aktuellen Datei sowie in der Liste, die in der obigen Variablen gespeichert ist. Die Antwort von @mutbuerger beschreibt die Details meiner Meinung nach sehr gut.Antworten:
Es gibt eine schöne Einführung in die Bibliothek von Babel,
library-of-babel.org
die sich im Quellverzeichnis von Org befindet. Um diese Beispiele für benannte Quellcodeblöcke in anderen Dateien zu verwenden, füllen Sie dieorg-babel-library-of-babel
Variable mitEiner der 21 Blöcke heißt "transponieren" und macht wahrscheinlich das, was er tun soll:
Sie können auch Ihre eigenen Codeblöcke hinzufügen, insbesondere etwas, das Sie in Zukunft möglicherweise häufig verwenden. Im Folgenden kann ich beispielsweise die Werte in der benannten Tabelle nach der ersten Spalte aggregieren:
Speichern Sie den Block in einer beliebigen Datei und fügen Sie ihn hinzu
org-babel-library-of-babel
:quelle
TL; DR: Die Verwendung einer persistenten Bibliothek von Babel, die in einer Datei gespeichert ist, kann in drei Schritten erfolgen:
org
-mode-Datei~/.emacs.d/library-of-babel.org
.(org-babel-lob-ingest "~/.emacs.d/library-of-babel.org")
Ihrem Emacs conf eine Zeile hinzu.In der Library-Of-Babel-Datei wird zB der
aggregatebycol1
Block von @mutbuerger gespeichert.Ein weiterer einfacher Anwendungsbeispiel wäre ein Codeblock, der Tabellendaten mit einer Kopfzeile generiert, die Kopfzeile jedoch nicht mit einem markiert
'hline
. Dies ist für eine einfache Anzeige nicht tragisch, kann jedoch die weitere automatisierte Verarbeitung komplizierter machen. Die Lösung könnte darin bestehen, einen kleinen Codeblock für die Nachbearbeitung von irgendwo im Internet aus zu verwenden:Dadurch werden die Daten einfach weitergeleitet, während in einer
'hline
zweiten Zeile gespleißt wird.Um diesen Block später in anderen Organisationsdateien zu verwenden, fügen Sie
:post
Ihrem datengenerierenden Organisationsquellenblock einfach eine Zeilengruppe -processing hinzu:Sie können Funktionen in Ihrem LOB auch problemlos bereits vorhandene Tabellen zuweisen:
In meiner Bibliothek habe ich Kapitel, um verschiedene Arten von Funktionen zu organisieren: Datengenerierung, Filterung, PrettyPrinting, ... Denken Sie daran,
ingest
nach dem Hinzufügen neuer Blöcke erneut zu arbeiten.quelle