Ich verwende org-babel, um einige Berichte zu generieren, die nicht automatisch verarbeitet werden können. Da org ein gutes Gliederungsformat ist, drucke ich die Ergebnisse in org, um sie als Bäume darzustellen.
Ich habe festgestellt, dass das Verschachteln von Organisationsmarkierungen in #+begin_example
Blöcken Emacs sehr langsam macht (und die Formatierung der Ergebnisse ebenfalls deaktiviert ist).
Es wäre wirklich cool, wenn babel die Ausgabe bestimmter Codeblöcke in einen separaten Puffer stellen würde (und auch ein Fenster dafür öffnen würde), genauso wie es Fehler behandelt.
Ich habe die Dokumentation durchgesehen, aber es scheint, dass es keine solche Option gibt.
Liege ich falsch? Wenn nicht, hat vielleicht jemand so einen Ausschnitt?
Die Langsamkeit kann auch durch einige andere Optionen in meiner Konfiguration verursacht werden. Wie ist Ihre Erfahrung mit org-formatiertem Text, in den verschachtelt ist example
? Vielleicht belle ich hier unter dem falschen Baum.
Vielen Dank
#+begin_example
, funktionieren sieorg-mode
es entwickelt sich ständig weiter undorg-babel-insert-result
ist bereits ziemlich lang, und es wird mit dieser Modifikation noch länger dauern. Schritt 1 : Entscheide dich für ein neues ERGEBNIS-PARAMS wie das Wortseparate
. Der Quellcodeblock kann so etwas wie:results output separate
Schritt 2 enthalten : Verwandeln Sie dieif/then
Anweisung, die die Bedingung enthält,(and result-params (member "silent" result-params))
in drei Bedingungen, wobei die neue ist,(and result-params (member "separate" result-params))
und setzen Sie einen neuen Puffer.Antworten:
Überraschenderweise
org
bietet das keine:output buffer
Option. Vielleicht ist dies für zukünftigeorg
Versionen in Arbeit .Hier ist eine Möglichkeit, diese Funktionalität zu simulieren: Nehmen Sie die Ausgabe eines Quellblocks
stream
in einennew buffer
:Da der
mycontent
Quellblock den Inhalt zuführtmystream
, müssen Sie nur denmystream
src-Block ausführen . Das heißt,C-c C-c
aufmystream
Block.Wenn Sie sich
C-c C-c
immycontent
src-Block befinden, werden die Ergebnisse in denselben Puffer eingefügt.Obwohl
mycontent
dies als emacs-lisp src-Block angezeigt wird, kann dies ein beliebiger gültiger org src-Block sein. Möglicherweise müssen Sie die:results
Optionen je nach Sprache anpassen .Der
:results none
für denmystream
src-Block ist nicht intuitiv, aber die Magie, die Ihren Inhalt in einen neuen Puffer bringt.quelle
Seit ich die Antwort akzeptiert habe, habe ich eine Weile mit dem Setup "Elisp Snippet für jeden Bericht, den ich möchte" gelebt.
Aber dann habe ich mir folgenden Trick ausgedacht:
Es gibt eine Möglichkeit, org-babel outpupt in einem separaten Puffer mit
C-o
- zu öffnenorg-open-at-point
. Das Problem ist, dass der Ergebnisblock erstellt wird. Es gibt aber auch einen Befehlorg-babel-remove-result
. Ich kombinierte die beiden und machte einen kleinen schmutzigen HackDie Codeblöcke, die ich so benutze, haben Eigenschaften
:results output :format raw :exports results
Meine Datei mit Tipps und Anleitungen ist nicht mehr mit großen Ausgaben überfüllt und der Puffer wird wiederverwendet (was zu meinem Workflow passt).
quelle
(add-hook 'org-babel-after-execute-hook 'my-bable-to-buffer)))
.