Wie führe ich mehrere Versionen von Emacs mit derselben .emacs.d aus?


8

Ich laufe alternativ 24.5 und 25.0.50. Leider funktionieren ab 25.0.50 installierte und kompilierte Pakete nicht mit Emacs 24.5 ( cl-struct-defineist ein häufiger Schuldiger).

Eine triviale Lösung besteht darin, nichts per Byte zu kompilieren. Das macht die Dinge allerdings ziemlich langsam.

Wie kann ich kompilierte Pakete (für die Leistung) verwenden, während ich sie .emacs.dfür 24.5 und 25.0.50 verwende? Ich wäre auch damit einverstanden, dass 24.5 die kompilierten Dateien ignoriert.


Diese Frage ist ähnlich, aber nicht genau dieselbe: Sie konzentriert sich darauf, eine Reihe von Versionen zu Testzwecken einfach nebeneinander zu halten, behandelt jedoch überhaupt keine bytekompilierten Dateien.
Clément

3
Ich habe package-user-dirund einige andere Verzeichnisse und Dateien basierend auf der Emacs-Version festgelegt . Ich kann eine detaillierte Antwort schreiben, wenn ich an einem Computer bin.
Kaushal Modi

@kaushalmodi: Wird mich das nicht zwingen, jedes Paket zweimal zu installieren?
Clément

Ja. Jedes Paket wird mehrmals installiert (und jeder Installationsordner enthält die emacs-versionenspezifisch bytekompilierten Dateien). Aber das machst du nicht manuell. Ich habe eine Liste in meinem init.elund alle diese Pakete werden beim Start von Emacs automatisch installiert (falls nicht bereits installiert). Sie können sogar das :ensureSchlüsselwort von verwenden use-package, um Pakete automatisch zu installieren.
Kaushal Modi

Antworten:


3

Legen Sie die bytekompilierten Dateien für verschiedene Emacs-Versionen in verschiedenen Verzeichnissen ab. Machen Sie Ihre load-pathBedingungen von der Emacs-Version abhängig, die Sie ausführen, damit Sie die entsprechenden bytekompilierten Bibliotheken laden.


2
(IMO, es ist schade, dass Emacs dev sich nicht mehr bemüht, die Vorwärtskompatibilität für bytekompilierte Dateien aufrechtzuerhalten. Früher war es so, dass Sie eine Bibliothek verwenden konnten, die mit einer älteren Version in einer neueren Version kompiliert wurde Ich konnte einige neue Funktionen nutzen, aber im Allgemeinen gab es kein Problem. Dies ist immer noch der Fall für die meisten Dinge, aber leider für immer weniger.)
Drew

Danke, das ist eine schöne Idee. Gibt es eine Möglichkeit, den Paketmanager dazu zu bringen, elc-Dateien in diesem versionierungsspezifischen Verzeichnis abzulegen? Vielleicht eine Art Standardziel für die Byte-Kompilierungsdatei?
Clément

Keine Ahnung; Es tut uns leid. Jemand anderes wird diese Frage hoffentlich beantworten. Ich bin kein Experte für das Paket. Ich würde denken (und hoffen), dass die Antwort ja ist, dass es eine einfache Möglichkeit bietet, dies zu tun.
Drew
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.