Ich habe das Handbuch zum Organisationsmodus gelesen, aber keine Verknüpfung zum Einfügen gefunden:
#+BEGIN_SRC
#+END_SRC
Ich denke, ich muss eine Konfiguration in ~ / .emacs erstellen, um eine Verknüpfung festzulegen. Oder gibt es eine Abkürzung, aber ich wusste es nicht?
Ich benutze R viel in Emacs. Gibt es eine Möglichkeit, eine separate Verknüpfung zu erstellen, um dies zu erstellen?
#+BEGIN_SRC R
#+END_SRC
(require 'org-tempo)
zu Ihrem hinzugefügt haben.emacs
. Hier ist auch ein aktualisierter Link zu Easy Templates -> orgmode.org/manual/Easy-templates.html, i b
inspacemacs
?[Dies ist eine Ergänzung / Klarstellung zu den Antworten von @glucas und @manandearth - es steht nicht für sich allein.]
Beachten Sie, dass in neueren Entwicklungsversionen (> = 9.2) des Organisationsmodus (und daher, sofern sich nichts ändert, in zukünftigen stabilen Versionen)
org-structure-template-alist
der Typ geändert wurde. Der integrierte Easy-Templates-Mechanismus wurde zugunsten eines allgemeineren Mechanismus, der auf demtempo
Paket basiert, aufgegeben . Leider erlaubt der neue Mechanismus nur Abkürzungen für einzelne Zeichen nach dem<
,<s
wird also auf die#+BEGIN_SRC...#+END_SRC
Zeichenfolge erweitert, nach der das OP fragt, aber Dinge wie<el
in der Antwort von @ manandearth funktionieren NICHT . Dies ist noch in Arbeit, daher können sich die Dinge ändern. Wenn Sie jedoch<XXX
Abkürzungen mit mehreren Buchstaben verwenden , sollten Sie darauf vorbereitet sein, dass diese beim Upgrade des Organisationsmodus auf eine solche Version nicht mehr funktionieren .Es gibt auch einen anderen Mechanismus: Er
C-c C-,
ist gebunden,org-insert-structure-template
der Sie zur Eingabe des Blocktyps auffordert, den Sie einfügen möchten (mit einem Menü, das alle verfügbaren Blöcke auflistet und die Sie mit einem einzigen Tastendruck auswählen können). Der Vorteil besteht darin, dassbegin/end
eine Region umbrochen wird. Wenn Sie also bereits eine Reihe von Informationen eingegeben haben und diese in einen Block einschließen möchten, müssen Sie sie nur als Region auswählen undC-c C-.
gefolgt von einem einzelnen Zeichen eingeben um den Blocktyp zu wählen.Siehe diesen Hinweis [fn: 1], die Dokumentzeichenfolge der (neuen) Funktion
org-insert-structure-template
und die Dateiorg-tempo.el
.[fn: 1] Der Link ist möglicherweise ungenau, da er auf eine feste Zeilennummer in einer Datei verweist, die sich möglicherweise ändert. Wenn der Link Sie nicht an die richtige Stelle bringt, suchen Sie nach der Zeichenfolge "Strukturvorlagenerweiterung" - und bearbeiten Sie diese Antwort und korrigieren Sie die Zeilennummer - danke!
quelle
Das Verhalten des Quellblocks wurde in Org 9.2 geändert . Die Abkürzung
<s
funktioniert standardmäßig nicht mehr. Stattdessen verwenden SieC-c C-,
welche Anrufeorg-insert-structure-template
.Durch Drücken
C-c C-,
von wird ein Dialogfeld angezeigt. Drücken SieTAB
und geben Sie dann einsrc R
. Dadurch wird ein Quellenblock und setzt den Cursor am Anfang der zweiten Zeile (let|
seines Punkt ):Um dann innerhalb des Blocks zu bearbeiten, drücken Sie
C-o
, um eine neue Zeile zu öffnen.Sie können eine Vorlage speichern, indem Sie dem Eintrag einen Eintrag hinzufügen
org-structure-template-alist
. Fügen Sie Folgendes in Ihre Datei eininit.el
oder führen Sie es mit ausC-x C-e
:Wenn Sie dies tun
C-c C-,
, sehen Sie einen Eintrag fürr
in der Liste. Sie können den gleichen Ansatz für andere Sprachen wie Python, Ruby usw. verwenden. Ersetzen Sie einfach die CDR im oben gepunkteten Paar (der Teil "src R").Um eine Zeile zwischen den Begrenzern des Quellblocks einzufügen, können Sie außerdem ein Zeilenumbruchzeichen mit einfügen
C-q C-j
. Das heißt, geben Siesrc
R
C-q C-j
die cdr des oben gepunkteten Paares ein . Das Ergebnis sieht folgendermaßen aus:Nun , wenn Sie drücken
R
, wird Emacs den Quellenblock einfügen und setzen Sie den Cursor zwischen ihnen auf einer neuen Zeile (LET|
sein Punkt ):quelle
<s
Bindung ist noch vorhanden. Sie müssen sie nur(require org-temp)
in Ihre Init einfügen, um sie zu aktivieren.(require 'org-tempo)
babel-org
Versuchen Sie für Schlüsselbindungen für Codeblöcke Folgendes zu binden,<r
gefolgt von a<tab>
:Sie können die Quelle auch in ESS ändern.
So binden Sie,
<p
gefolgt von a,<tab>
an einen Python-Blockcode, zum Beispiel:Ein Emacs-Lisp-Set,
<el
gefolgt von einem<tab>
Willen, ist:andere nützliche Bindungen in
org-mode
sind:quelle
ein
die auch R unterstützt werden soll.(add-to-list 'org-structure-template-alist '("p" . "src python"))
Schauen Sie sich das YASnippet Emacs-Paket an. Sie können Codefragmente mit einigen Schlüsselwörtern und TAB hinzufügen. Es ist sowohl im Organisationsmodus als auch mit R-Skripten viel einfacher und nützlicher. Sie sollten einen Ordner in .emacs.d / snippets / ess-mode (und einen für den org-mode) haben, in dem Sie Dateien wie folgt speichern:
Wenn Sie TAB eingeben, bleibt es in% in%, ähnlich:
https://www.emacswiki.org/emacs/Yasnippet
https://joaotavora.github.io/yasnippet/snippet-development.html
quelle
Um dem Organisationsmodus eine neue Tastenkombination hinzuzufügen, können Sie verwenden
Dadurch wird die Zeichenfolge eingefügt, wenn Sie drücken C-cs.
quelle