Synchronisieren von Änderungen in einer verworrenen Datei mit der ursprünglichen Organisationsdatei

12

Ich benutze den Org-Modus mit Fontänenmodus, um ein Drehbuch zu schreiben.

Organisation und Brunnen für die Formatierung des Drehbuchs.

Dies ist der Code, den ich für diesen Zweck verwende:

Einstellungen für die Arbeit mit (Fontänen-) Quellblöcken in org.

;; prevent org from messing with indentation of the source text.
(setq org-src-preserve-indentation t)
(setq org-edit-src-content-indentation 0)

;; open the buffer for editing fountain in another window.
(setq org-src-window-setup (quote reorganize-frame))

;; prevent a message in the edit buffer from being shown.
(setq org-edit-src-persistent-message nil)

;; save edits in the fountain buffer to the org buffer after x sec
(setq org-edit-src-auto-save-idle-delay 1)

Zum Beispiel :

Akt 1

** SQ 1

*** Szene 1

Eine Menge Text in Bezug auf die Szene und was die Charaktere tun und alles, was ich wissen muss, aber nie im Drehbuch enden wird.

BEGIN_SRC Brunnen

Drehbuchtext

END_SRC

Jetzt habe ich Cc 'und es öffnet sich das obige in einem neuen Puffer und ich kann es von dort aufnehmen.


Das Problem mit meiner aktuellen Konfiguration ist, dass ich den Drehbuchtext nicht vollständig sehen kann.

Ich habe über 50 solcher Blöcke und möchte Folgendes erreichen:

Ich möchte, dass org alle Fontänenblöcke in eine bestimmte Datei exportiert, zum Beispiel ein Fontänen-Drehbuch. Auf diese Weise habe ich nur eine einzige Datei mit dem Drehbuch.

Haben Sie alle Bearbeitungen mit der Org-Datei synchronisiert. Wenn ich etwas in Fountain-Drehbuch bearbeite, sollte der Quellblock in org die Änderung aktualisieren und umgekehrt.


Dazu habe ich die folgenden Eigenschaften in meine Organisationsdatei eingefügt:

:PROPERTIES:
:file: "~/files/fountain-screenplay.fountain"
:cache: yes
:comments: yes 
:tangle: yes
:results: silent
:END: 

Wenn I Cc Cc zurückgegeben wird, wird die Fehlermeldung "No org-babel execute function found" ausgegeben.

Und wenn ich Cc Cv t sage es 0 Blöcke verheddert.

Ist mein Ansatz falsch oder fehlt mir etwas?

Bearbeiten: Ich habe die Eigenschaften geändert in:

#+properties :file .fountain :cache yes and so on 

und wenn ich Cc Cv t, verwickelt es die Quellblöcke in einen Dateinamen.fountain. Jetzt muss der Synchronisierungsteil noch gelöst werden.

Neugieriger Schreiber
quelle
Dies ist auch für die Programmierung nützlich. Sie könnten einen Blick darauf werfen outshine.el, es scheint den entgegengesetzten Weg einzuschlagen (Quelldatei mit Kommentaren, die in einem Organisationspuffer angezeigt werden können), aber es kann sich dem annähern, was Sie wollen. Haftungsausschluss: Ich habe es (noch) nicht ausprobiert.
T. Verron
@ T.Verron Outshine ähnelt anscheinend Lentic, bei dem dieselbe Datei in separaten Puffern mit unterschiedlichen Modi angezeigt wird. Ich werde mehr lesen, um zu überprüfen, ob es zusätzliche Funktionen gibt, die Lentic nicht bietet.
Neugierige-Scribbler
Diese bidirektionale Synchronisierung könnte vorhanden sein (ich glaube nicht, dass dies der Fall ist, aber die Funktionen des Org-Modus tendieren dazu, unbemerkt zu bleiben), aber es wäre erheblich einfacher, die Sichtbarkeit des Textes, der keine Fontänen enthält, einfach umzuschalten. Sie können sich dann immer noch ab und zu an einer Datei verheddern.
Malabarba,
Es gibt eine Funktion org-babel-detangle, die sich darauf beruft (Sie werden mit Link-Kommentaren verwirrt). Ich habe es nie geschafft, es zum Laufen zu bringen.
erikstokes
2
Ich habe gerade das org-babel-detangle getestet und es hat wie erwartet funktioniert, obwohl ich nur sehr minimale Tests durchgeführt habe, weit weg vom "Produktionscode", aber mit verknüpften Kommentaren richtig
entwirrt

Antworten:

6

Eine weit verbreitete Option, die eine bidirektionale Verknüpfung zwischen verschiedenen Dokumentenformaten (z. B. org und fountain) in derselben Datei implementiert, ist die von Phillip Lord entwickelte Lentic Server- Funktion. Es kann als die installiert werden lentic Paket durch Melpa Repository.

Es gibt einen Screencast, der die Integration von Organisationsmodus und Lisp in dieselbe Datei mit zwei verschiedenen bearbeitbaren Ansichten gleichzeitig zeigt. Wenn Sie sich in einem ändern, ändert sich auch das andere. Einige anfängliche Einstellungen können erforderlich sein, um die von Ihnen benötigten Formate zu unterstützen.

Dies ist eine umfangreichere Integration, die sich besser für die Bearbeitung eignet, als beispielsweise die einseitige Ausgabe von Tangle und Detangle durch org-babel.

Emacs-Benutzer
quelle
Ich bestreite die "weithin bekannte" Aussage, da ich aus Ihrer Antwort hier gerade etwas über Lentic herausgefunden habe. Wie Sie auf melpa sehen können, gibt es nicht so viele Installationen, wie ich es für ein Paket erwartet hätte, das im Grunde genommen pure Magie ist!
Christian Herenz
1

Etwas spät zur Party, aber ich hatte den gleichen Wunsch, verworrene Blöcke mit ihren externen Dateien zu synchronisieren.

Hierzu kann ich org-tanglesync empfehlen

Dieses Paket sucht nach einer :tangle <filename>Eigenschaft im Header einer Organisationsdatei und vergleicht den Blockinhalt mit dieser. Im Hintergrund wird ein Diff ausgeführt, und der Benutzer wird aufgefordert, die externen Änderungen zu übernehmen oder abzulehnen.

Ich finde, dass dies intuitiver ist, als org-babel-detangleweil es nicht erforderlich ist, dass die externe Datei über zusätzliche org-babel-Magie verfügt, damit sie funktioniert, dh es ist die Quelldatei, die die extern exportierten Blöcke verfolgt, und nicht umgekehrt.

Mehmet Tekman
quelle
2
Können Sie näher darauf eingehen?
DoMiNeLa10
1
Was @ DoMiNeLa10 gesagt hat. Sagen Sie vielleicht etwas darüber, was dieses Paket bewirkt und wie sich die Verwendung als Lösung von anderen Lösungsvorschlägen unterscheidet.
Drew
aktualisiert, danke für die hilfreiche Moderation
Mehmet Tekman