Nachdem use-packageich kürzlich davon erfahren hatte, entschied ich mich, meine Konfiguration darauf zu portieren, wollte aber nicht auf die Bequemlichkeit verzichten package.el, Pakete zu installieren und sie auf dem neuesten Stand zu halten. Ich fand es ein wenig schwierig, use-packageund zu kombinieren package.el.
Ich bin im Allgemeinen daran interessiert zu lernen, wie sich Menschen use-packagemit dem package.elSystem verbinden, aber für eine genauere Frage lesen Sie weiter.
Folgendes möchte ich:
- Um Pakete vom Paketmanager installieren zu lassen, kann ich einfach nach Paketen suchen und diese auf dem neuesten Stand halten
list-packages. - Um Pakete ausschließlich über zu konfigurieren und zu laden
use-package, kann ich in meiner Init-Datei leicht sehen, was ich lade und wie es konfiguriert ist. - Optional möchte ich auch Pakete über
use-packagedas:ensureSchlüsselwort von installieren können .
Wenn ich richtig verstehe, möchte ich sehr wenig von dem, was package-initializetut, im Grunde nur so, wie es das einrichtet load-path. Derzeit habe ich dies in meiner Konfiguration:
;(package-initialize)
(setq package-enable-at-startup nil)
(let ((default-directory "~/.emacs.d/elpa"))
(normal-top-level-add-subdirs-to-load-path))
(require 'use-package)
Die erste, kommentierte, Zeile ist so, dass Emacs 25 (package-initialize)meiner Init-Datei nicht hilfreich ein hinzufügt . Das Bit mit normal-top-level-add-subdirs-to-load-pathist eine Annäherung an das, was package-initializedas machen würde load-path, eine Annäherung, die gut genug zu sein scheint.
Dies scheint meine Wünsche 1 und 2, aber nicht 3 zu erfüllen. Wenn ich versuche, es zu verwenden :ensure, erhalte ich eine Fehlermeldung, die besagt, dass package.eles nicht initialisiert ist. Ein Anruf package-initializewürde das beheben, aber ich möchte das vermeiden, da a) ich nicht alle unzähligen Autoloads laden möchte (ich bevorzuge use-packagees, genau die Autoloads zu erstellen, die ich benötige) und b) ich in der Lage sein möchte, einfach zu sein Vermeiden Sie es, bestimmte installierte Pakete zu laden, wann immer ich möchte (was einfach zu bewerkstelligen ist use-package).
Hat jemand eine Empfehlung, wie das geht?
package-initializewas meine Frage in Frage stellt.