org-mode
kann Quellcode mit Blöcken der folgenden Syntax rendern:
#+NAME: <name>
#+BEGIN_SRC <language> <switches> <header arguments>
<body>
#+END_SRC
Gibt es einen vorhandenen Befehl, um diese Blöcke schnell einzufügen org-mode
, oder muss ich ein externes Tool wie verwenden yasnippet
?
hydra
Pakets: Blogpost (3) Ein weiteres Snippet zum einfachen Einfügen von Org-Quellblöcken.Antworten:
Wie @kaushalmodi in den Kommentaren erwähnt, können Sie
(org) Easy Templates
das Einfügen verschiedener Arten von Blöcken beschleunigen.Das allgemeine Verfahren besteht darin, in eine ansonsten leere Zeile
<
einen Vorlagen-Selektor (normalerweise ein einzelner Buchstabe) einzufügen und zu drücken TAB.Die Vorlage Selektor für eine generische Quellenblock Vorlage
s
, so Typisierung<s
gefolgt von TABeuch geben wird, folgt aus :Der Punkt wird am Ende der ersten Linie positioniert.
Dies ist eine gute erste Annäherung an das, was Sie erreichen möchten, aber dies ist Emacs. Machen wir es also besser!
Sie können benutzerdefinierte Vorlagen definieren, indem Sie einer Variablen mit dem Namen einen oder mehrere Einträge hinzufügen
org-structure-template-alist
. Zum Beispiel:Dieser Code fügt eine
#+NAME:
Vorlage zuorg-structure-template-alist
verwendenn
als Vorlage Selektor. Nach dem Erweitern wird dieser Schablonenpunkt an der Stelle von positioniert?
.Wenn Sie Ihre Codeblöcke immer benennen, können Sie auch die Originalversion der Quellblockvorlage mit einer erweiterten Version überschreiben, die die folgende
#+NAME:
Zeile enthält:Durch Eingabe von
<s
gefolgt von erhalten TABSie dann:Dies ist nur die Spitze des Eisbergs; Sie können einen ähnlichen Ansatz verwenden, um zusätzliche Vorlagen für sprachspezifische Codeblöcke, Codeblöcke mit bestimmten Header-Argumenten usw. zu definieren.
quelle
<s TAB
mit Emacs 25 unter Mac OS X versucht und es schien zu funktionieren.org-try-structure-completion
Funktion (für Easy-Templates). Es wird aber in Zukunft durch Structure-Templates ersetzt. vgl. code.orgmode.org/bzg/org-mode/commit/…Warum schreibst du es nicht selbst?
quelle
Auf meiner Box erstelle ich 99% der Zeit Quellblöcke und 1% der Zeit mache ich alles andere. Für die 1% sind Easy Templates perfekt und für die 99% habe ich ein YaSnippet.
NAME
Verwendung,org-id
aber das macht nichts) und dann fragt es mich, welche Sprache ich verwenden möchte, um sie auf die zu beschränken, die ich Org-Mode Literate Programming (babel) gesagt habe.Hier ist der YaSnippet mit meinem unterstützenden Code am Ende.
Es erfordert einen geladenen Dash- und Org-Modus.
Hier ist ein Beispiel für diese ID-Funktion:
Ergebnisse in
quelle
quelle