Gibt es Tools, die das Verfolgen von Fehlern in Organisationsmodusblöcken erleichtern? (Ich arbeite speziell mit Python)
Mein aktueller Workflow besteht darin, Code, der funktioniert, in einen Quellblock zu kopieren und nur minimale Änderungen vorzunehmen. Wenn schwerwiegende Fehler auftreten, kopiere ich sie entweder zurück in eine andere Datei oder verwickle den Block und debugge die resultierende Datei.
Gibt es irgendwelche Werkzeuge, die mir fehlen? (zB so etwas wie ein Kompilierungsmodus, in dem Sie zu der Zeile gelangen, in der sich der Fehler befindet.)
Bearbeiten: Zum Beispiel habe ich gerade Cc Cv v gefunden, das einen Puffer mit erweiterten Noweb-Referenzen aufruft. Leider enthält es keine Header-Argumente, sodass der Code daraus nicht ausgeführt werden kann, ohne diese zuerst in den Interpreter zu importieren. Wenn ich eine return-Anweisung habe, die verhindert, dass sie ausgeführt wird, und der Puffer nicht bearbeitet werden kann, sind mehrere Schritte erforderlich, um eine ausführbare Quelle aus einem Python-Block abzurufen.
(org-src-debug)
. Dies hat den Vorteil, dass Sie Quellcodeblöcke mit Eingabeargumenten debuggen können.:session
Ihrem Codeblock einen Header hinzugefügt ? zB:session *my-python*
. Beobachten Sie dann einfach die Skriptausführung im*my-python*
Puffer in einem anderen Frame oder Fenster. Ich vermute, Sie wollen etwas Anspruchsvolleres als dieses Richtige?Antworten:
Methode 1
Fügen Sie
:session
Ihrem Quellblock einen Header hinzu.Im Beispiel führt die Verwendung des : session- Headers den Code in einem Puffer mit dem Namen aus
*my-python*
und zeigt Debug-Meldungen an.Methode 2
Platzieren Sie den Punkt im Codeblock und bearbeiten Sie den Block mit C-c ', dh
org-edit-special
. Mit dieser Methode können Siepython-mode
integrierte Funktionen verwenden.Starten Sie den Python-Interpreter mit C-c C-p, wodurch das Fenster geteilt und der Puffername geöffnet wird
*Python*
. Um zum Python Interpreter Buffer zu wechseln, drücken Sie C-c C-z.Wenn Sie fertig sind, geben Sie Ihren aktualisierten Code mit in den Codeblock weiter C-c 'oder verwerfen Sie alle Änderungen mit C-c C-k.
quelle