Nachdem use-package
ich 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-package
und zu kombinieren package.el
.
Ich bin im Allgemeinen daran interessiert zu lernen, wie sich Menschen use-package
mit dem package.el
System 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-package
das:ensure
Schlüsselwort von installieren können .
Wenn ich richtig verstehe, möchte ich sehr wenig von dem, was package-initialize
tut, 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-path
ist eine Annäherung an das, was package-initialize
das 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.el
es nicht initialisiert ist. Ein Anruf package-initialize
würde das beheben, aber ich möchte das vermeiden, da a) ich nicht alle unzähligen Autoloads laden möchte (ich bevorzuge use-package
es, 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-initialize
was meine Frage in Frage stellt.