
Kurz gesagt, ich bin auf EMACs für die Arbeit meines Alltags nach, also brauchte ich eine schnelle und stabile Konfiguration, die meinen Anforderungen entspricht. Minemacs ändert sich ständig. Weitere Informationen finden Sie im Änderungsprotokoll. Siehe auch die Liste der Module und Pakete von Minemacs.
Notiz
Bitte beachten Sie, dass ich keine Absicht oder Verfügbarkeit habe, eine Alternative zu EMACs oder Spacemacs zu erstellen. Während ich Freude finde (wie jeder andere Emacser da draußen), mit EMACs zu basteln, bleibt Minemacs nur ein Werkzeug, das ich in meiner täglichen Arbeit benutze und das ich gerne mit anderen Emacsern teile.
Minemacs verfügt über inbegriffen Batterien. Hier sind einige seiner einzigartigen Funktionen:
Verschieben Sie das Laden von Paketen, bis der Benutzer sie benötigt. Oder versuchen Sie, dies nach dem Start von EMACs zu tun, für Pakete, die geladen werden müssen.
Die Pakete sind in Modulen gruppiert, mit etwas Klebstoff, damit sie zusammenarbeiten.
Minemacs umfasst eine große Anzahl von Major-Modes und Paketen, um mit Programmiersprachen zu arbeiten. Die meisten dieser Pakete sind jedoch nicht beim Start geladen. Minemacs verwendet ein On-Demand-System, um die Pakete nur zu laden, wenn der Benutzer eine unterstützte Datei öffnet oder wenn er einen Puffer mit einem Modus öffnet, der durch eines der On-Demand-Module erweitert werden kann. Das Verhalten dieser Funktion, die über minemacs-on-demand-enable-auto-mode , minemacs-on-demand-enable-magic-mode , minemacs-on-demand-enable-interpreter-mode und minemacs-on-demand-enable-companion-packages .
Öffnen Sie eine Hülle und rennen Sie:
git clone --recursive https://github.com/abougouffa/minemacs.git ~ /.emacs.d && emacs Durch die Ausführung dieses Befehls wird das Repository geklont und EMACs werden gestartet. Während des ersten Laufs installiert EMACs die erforderlichen Pakete automatisch. Möglicherweise müssen Sie Mx minemacs-run-build-functions ausführen, wenn EMACS lädt, um einige zusätzliche Dinge zu installieren (einige Bibliotheken erstellen, Nerd-Schriftarten usw. installieren).
Wichtig
Bitte beachten Sie, dass ich einen frischen EMACS 30.0.92 (empfohlene Version) verwende, das aus der emacs-30 Filiale erstellt wurde, hauptsächlich auf zwei Maschinen, eines basierend auf Manjaro Linux und der andere auf Debian 12. Diese Maßnahmen stellen sicher, dass Minemacs auf diesen Systemen "ausgeführt" sind. mit all seinen Modulen aktiviert. Weitere Tests sollten jedoch durchgeführt werden, um die Konfiguration als Ganzes auf anderen Systemen als Linux ordnungsgemäß zu validieren.
Um MineMacs zu personalisieren, können Sie einen bestimmten Satz von Dateien in das Standard-Benutzerkonfigurationsverzeichnis hinzufügen, das standardmäßig unter ~/.minemacs.d/ oder .emacs.d/user-config/ (der erste zu finden) angezeigt wird. Wenn Sie es jedoch vorziehen, ein anderes Verzeichnis zu verwenden, haben Sie die Flexibilität, indem Sie die MINEMACSDIR -Umgebungsvariable festlegen.
Es gibt zwei Hauptdateien, die im Verzeichnis ~/.minemacs.d hinzugefügt werden können:
~/.minemacs.d/modules.el enthält eine Liste aktivierter Module und/oder eine Liste deaktivierter Pakete ( minemacs-modules und minemacs-disabled-packages können in dieser Datei festgelegt werden). Wenn Sie also ein Modul aktivieren möchten ( z. B. me-prog ), aber ein bestimmtes Paket ( z. B. ts-movement ) ausschließen müssen, können Sie letztere zu minemacs-disabled-packages hinzufügen.init.el Datei ~/.minemacs.d/config.el enthält init.el Benutzerkonfiguration und -anpassung. Dieses Repository enthält Skelettdateien für modules.el und config.el (unter skel/ ). Wir empfehlen dringend, dieselbe Struktur wie in den Skeleton-Dateien zu befolgen, insbesondere der Verwendung von with-eval-after-load und use-package , anstatt require direkt zu verwenden ( require die Pakete sofort, wodurch die Startzeit von EMACs erhöht wird).
In meinem Workflow verwende ich hauptsächlich dieselben Konfigurationsdateien für alle meine Maschinen (die nach der Tradition in meinem Dotfiles -Repository geteilt werden). Ich habe jedoch einige maschinenspezifische (lokale) Konfigurationen, die einige private und maschinenspezifische Konfigurationen enthalten. Zum Beispiel verwende ich sie, um die E -Mail -Adresse auf meiner Workstation zu überschreiben, meine E -Mail -Konten einzurichten, Forge und JIRA -Integration in meiner Workstation usw. einzurichten.
Zu diesem Zweck werden Minemacs auch nach Dateien in ~/.minemacs.d/local/{early-config,init-tweaks,modules,config}.el überprüfen und laden Sie sie nach dem ~/.minemacs.d/{early-config,init-tweaks,modules,config}.el wenn sie existieren.
Minemacs bietet auch einige erweiterte Anpassungsdateien. Diese Dateien können verwendet werden, um das Verhalten von MineMacs zu optimieren, einen frühen Initialisierungscode hinzuzufügen, Minemacs auf älteren EMACS -Versionen usw. auszuführen.
~/.minemacs.d/early-config.el wird am Ende von MineMacs ' early-init.el geladen. Sie können es verwenden, um frühe Sachen wie die Optimierung der Benutzeroberfläche, die von Minemacs festgelegten Variablen in ~/.emacs.d/early-init.el zu überschreiben.~/.minemacs.d/init-tweaks.el wird in einem frühen Stadium der init.el Datei geladen. Sie können es verwenden, um nützliche Dinge zu erstellen, bevor MineMacs Pakete anpassen und Module laden. Weitere Informationen finden Sie in den Kommentaren in init.elSie können das Verhalten von Minemacs über einige Umgebungsvariablen anpassen.
MINEMACS_DIR oder MINEMACSDIR : Pfad für das Minemacs -Benutzerkonfigurationsverzeichnis, falls festgelegt, ~/.minemacs.d/ wird verwendet.MINEMACS_MSG_LEVEL : Meldungsprotokollebene von 1 (nur Fehler) bis 4 (alle Nachrichten) ändern.MINEMACS_VERBOSE : Sei mehr ausführlicher (nützlich zum Debuggen).MINEMACS_DEBUG : Aktivieren Sie das Debuggen beim Start (und seien Sie ausführlich).MINEMACS_ALPHA : Rahmen background-alpha auf Prozentsatz (Wert von 0 auf 100).MINEMACS_NOT_LAZY : Laden Sie faule Pakete unmittelbar nach dem Laden von EMACs.MINEMACS_ALWAYS_DEMAND : Laden Sie alle Pakete sofort (Dies funktioniert, indem Sie use-package-always-demand auf t und use-package-always-defer auf nil -DE-DE-DEMAND-DEMAND-DEMAND- und NIL-Verpackung einstellen (standardmäßig legt Minemacs use-package für immer auf, es sei denn, es explizit :demand wird hinzugefügt).MINEMACS_IGNORE_USER_CONFIG : Space-getrennte Werte, zum Deaktivieren des Ladens ~/.minemacs.d/<file>.el Benutzerkonfigurationsdateien. Akzeptierte Werte für <file> sind: early-config , init-tweaks , modules , config , local/early-config , local/init-tweaks , local/modules und local/config . Verwenden Sie all , um alle Benutzerkonfigurationsdateien zu deaktivieren.MINEMACS_LOAD_ALL_MODULES : Laden Sie alle Module (ohne ~/.minemacs.d/modules.el ).MINEMACS_BENCHMARK : Führen Sie einen Benchmark bei der Initialisierung von EMACs (unter Verwendung von benchmark-init.el ) aus und zeigen Sie die Ergebnisse nach dem Start (einschließlich fauler Pakete) an.MINEMACS_NO_PROXIES : Setzen Sie, wenn Sie minemacs-proxies in Ihrem early-config.el eingerichtet haben. Weitere Informationen zu Anpassungsvariablen, Funktionen und Befehlen, die von Minemacs definiert wurden, können Sie auf die aus dem Quellcode generierten Dokumentation verweisen.
Wenn Sie ein Problem mit Minemacs erlebt haben, können Sie sich die FAQ ansehen, die Diskussionen konsultieren, offene Probleme überprüfen oder eine neue öffnen.