Ich benutze Emacs 24.4. Ich habe eine große Anzahl installierter Pakete über die Richtlinie Mx list-packages über einen Zeitraum von etwa einem Jahr hinzugefügt. Ich würde gerne meine Liste der installierten Pakete exportieren, um sie an anderer Stelle zu verwenden. Das Kopieren meiner .emacs führt beim Start zu Fehlern, die meinen Speicher belasten, um bestimmte Dinge zu installieren. Ich vermute, ich könnte die .emacs.d kopieren, aber das scheint vielleicht eine schlechte Idee zu sein.
Gibt es eine Prozedur oder Anweisung, die ich ausgeben kann, um die Liste der installierten Pakete in eine Datei zu kopieren, mit der sie problemlos auf fremde Computer übertragen werden können?
.emacs.d
Verzeichnisses (oder vorzugsweise das Versionskontrollieren) ist im Allgemeinen eine gute Idee. (Es ist auch sinnvoll, umzubenennen~/.emacs
,~/.emacs.d/init.el
wenn Sie sich dazu entschließen.)Antworten:
Das Verzeichnis
~/.emacs.d/elpa
enthält alle Pakete, mit denen installiert wurdelist-packages
. Sie können dieses Verzeichnis kopieren.Ich würde wahrscheinlich auch so etwas ausführen
(byte-recompile-directory "~/.emacs.d/elpa" 0 t)
(0
bedeutet nicht fragen,t
bedeutet Neukompilierung erzwingen), um alles byte-neu zu kompilieren, da ich glaube, dass es eine gewisse Inkompatibilität von bytekompilierten Dateien zwischen Emacs-Versionen gibt.quelle
Ich habe die
package.el
Datei durchgesehen und die Variable gefundenpackage-alist
. Dies scheint eine Liste aller installierten Pakete zu sein, einschließlich der Pakete, die von den von Ihnen installierten Paketen benötigt werden.Wenn Sie nur eine Liste der installierten Paketnamen wünschen, schreibt der folgende Code die Namen der Pakete aus dieser Liste in den
*Messages*
Puffer.Ich bin kein Lisp-Programmierer, daher bin ich sicher, dass jemand eine viel bessere Version dieses Codes schreiben kann.
Ich habe auch begonnen, den Use-Package- Code mit der
:ensure t
Option zu verwenden, um alle meine Pakete auf einem neuen PC zu installieren.quelle
Eine Möglichkeit besteht darin, das Paket zu installieren, falls es noch nicht installiert ist. Sie sollten Ihre Init-Datei aktualisieren und die folgenden Zeilen hinzufügen:
Ändern Sie die
my-packages
Variable und fügen Sie das Paket hinzu, das Sie installieren möchten.M-x describe-variable package-activated-list
gibt Ihnen die Liste Ihres aktuell installierten Pakets.Danach müssen Sie nur noch Ihre Init-Datei freigeben. Ich hoffe es wird helfen.
quelle