Meine .emacs
Konfigurationsdatei wird immer größer und ich möchte eine bessere Übersicht und Strukturierung erhalten, indem ich Überschriften und Unterüberschriften hinzufüge und sie ausblenden oder anzeigen kann, wie ich es mit Emacs tun kann org-mode
.
Mir ist aufgefallen, dass ich org-mode
auch im .emacs
Puffer aktivieren kann und dass es möglich ist, Überschriften hinzuzufügen und zu reduzieren. Kann Emacs / Aquamacs den Elisp-Code trotzdem aus dem Dokument laden, wenn ich org-mode
Überschriften hinzufüge (dh Zeilen, die mit einem oder mehreren Sternchen beginnen)?
Kann ich das alles in einer Datei haben oder muss ich eine .*org
Datei haben und dann regelmäßig den Elisp-Code in eine andere Datei exportieren?
quelle
org
von elpa zu laden , anstatt dasorg
, was in einem sauberen Emacs verfügbar ist? Es scheint, alspackage
müsste der Initialisierungscode herausgezogensettings.org
und eingegeben werdeninit.el
.init.el
:(require 'package) (package-initialize) (setq custom-file "~/.emacs.d/custom.el") (when (file-exists-p custom-file) (load custom-file)) (require 'org) (org-babel-load-file (expand-file-name "settings.org" user-emacs-directory))
Wenn Sie nur Abschnitte selektiv anzeigen und zwischen den Überschriften navigieren möchten, benötigen Sie den Org-Modus nicht. Alles was Sie brauchen, ist der Gliederungsmodus . Der Gliederungsmodus ist im Grunde genommen die Verwaltung der Kopfzeilenebene und der Abschnittssichtbarkeit des Org-Modus. Tatsächlich war der Org-Modus ursprünglich die Erweiterung des Umriss-Modus durch den Autor und wuchs und wuchs und wuchs… Auch heute
org-mode
noch leitet er sich ab vonoutline-mode
.Der Gliederungsmodus ist sowohl als Hauptmodus als auch als Nebenmodus verfügbar. Der Nebenmodus kann in jedem Hauptmodus verwendet werden. Sie können es so konfigurieren, dass es ein Header-Format verwendet, das mit Ihrer Programmsyntax kompatibel ist, und dies tun viele Hauptmodi, indem Sie die
outline-regexp
Variable auf einen regulären Ausdruck setzen, der dem Anfang eines Headers entspricht. Dies ist beispielsweise der Standardwert im Emacs Lisp-Modus:dh Abschnittsüberschriften beginnen mit drei oder mehr Semikolons und einem einzelnen Leerzeichen oder einer öffnenden Klammer am linken Rand. Die Variable
outline-level
enthält den Namen einer Funktion, um die Tiefe eines Headers zu bestimmen. Der Standardwert ist die Länge der Zeichenfolge durch angepaßtoutline-regexp
und Emacs Lisp - Modus überschreibt er eine größere Tiefe zuzuweisen(
und;;;###autoload
.Wenn Ihnen das Standard-Header-Format nicht gefällt, legen Sie die Variable
outline-regexp
in einer lokalen Variablendeklaration fest . Dies ist, was ich benutze - meine Abschnittsüberschriften bestehen alle aus;;;
gefolgt von der klassischen Abfolge von Sternen:Wenn der Nebenmodus "Gliederung" beim Laden der Datei automatisch aktiviert werden soll, fügen Sie im Abschnitt "Lokale Variablen" die folgende Zeile hinzu. Beachten Sie, dass Sie dadurch vor unsicherem Code in Emacs ≤23.x gewarnt werden.
Die Befehle für den Nebenmodus "Gliederung" verwenden
C-c @
standardmäßig das recht unpraktische Präfix. Ich verschiebe es nachM-o
(ich verwende niemals die Facemenü-Bindungen), vielleicht bevorzugen Sie einen anderen Schlüssel oder replizieren die Bindungen des Org-Modus (die sich ziemlich stark vom Outline-Modus unterscheiden).quelle
Literate Programming bringt Sie am besten dahin, org-mode unterstützt es via org-babel . Zwei mögliche Lösungen werden im Blog von @malabarba erläutert :
Der einfachste Weg ist, den org-mode zu laden und dann seine Unangling-Funktion zu verwenden, um eine geschulte Emacs-Konfiguration zu laden:
Alternativ (um zu vermeiden, dass org vollständig geladen wird) kann das Entwirren mit den Emacs Lisp-Primitiven durchgeführt werden:
quelle
Noch eine Stimme für den Outline-Modus. Zum Beispiel verwende
.emacs
ich zum Organisieren die folgende Syntax:die wichtigen teile sind
;;;
und:\n
Hier ist ein Beispiel
.emacs
:Man sollte aktivieren
outline-minor-mode
und dann sind die zwei erforderlichen Tastenanschläge:C-c @ C-t - Zeige oberste Struktur
das obige wird
C-c @ C-a - zeige alles nochmal
Eine typische Verwendung besteht darin, die Struktur der obersten Ebene anzuzeigen, zur gewünschten Überschrift zu wechseln und alle wieder anzuzeigen.
quelle
#+STARTUP: overview
odershow all
odercontents
options.#
kein Kommentarzeichen ist, wäre der eingebaute Elisp-Interpreter von Emacs verwirrt, wenn er auf das#+STARTUP
oder etwas Ähnliches stößt . (Oder habe ich Sie falsch verstanden?)STARTUP
Direktive innerhalb zu implementierenorgstruct-mode
, zum Beispiel war dies ein R-Puffer, aber die gleiche Idee: emacs.stackexchange.com/a/8065/2443In der folgenden SO-Antwort sehen Sie, wie es gemacht wird, Beispielprojekte mit einer einzelnen Organisationsdatei oder vielen, welche Vorteile die Verwendung von Cask und Links zur Dokumentation bietet.
https://stackoverflow.com/questions/25430029/whats-the-best-way-to-package-my-emacs-installation-packages-and-config-so-tha/25430745#25430745
Ich habe meine Konfiguration vor ein paar Monaten auf org umgestellt und bin damit nicht ganz zufrieden. Es sind einige Konfigurations- und Lesevorgänge des Organisationshandbuchs erforderlich, um eine nützliche Organisationsdatei zu haben, mit der sich Elisp-Code einfach bearbeiten lässt. Man muss src block fontifying aktivieren (standardmäßig deaktiviert -> eine Variable pro Datei verwenden), sicherstellen, dass andere Modi nicht zu Konflikten beim Bearbeiten von src-Blöcken führen (Auto-Fill-Modus) usw. Man möchte Cc nicht verwenden
(backtick) (
org-edit-src-block`), um einen src-block zu bearbeiten. Und es steht dem Debuggen ein wenig im Wege.Mein Rat wäre: Zerlegen Sie Ihre Init-Datei zunächst in kleine Teile, versuchen Sie es mit einem Einschränkungspaket, verwenden Sie es
helm-swoop
für eine schnelle Navigation und ziehen Sie dann die Verwendung in Betrachtorg-mode
.quelle
Ich habe kürzlich einige Zeit investiert, um genau das zu tun. Ich habe eine Konfiguration gefunden, die - im Organisationsmodus verwaltet - 'use-package' verwendet, um fehlende Pakete automatisch zu installieren. Dies ist ein Github-Repo, das sich automatisch installiert (schamloser Plug: https://github.com) / pascalfleury / emacs-config )
Ich habe einige Computer (Linux und Mac) durch Klonen des Repos und Hinzufügen einer einzelnen Zeile in ~ / .emacs et voila "gebootet". Ich richte mich so ein, wie ich möchte.
quelle