Après avoir récemment pris connaissance de ces informations, use-packagej'ai décidé d'y porter ma configuration, mais je me suis montré réticent à renoncer à la commodité de l'utilisation package.elpour installer des packages et les maintenir à jour. Je l'ai trouvé un peu difficile à combiner use-packageet package.el.
Je suis généralement intéressé à savoir comment les gens se combinent use-packageavec le package.elsystème, mais pour une question plus spécifique, continuez à lire.
Voici ce que je veux:
- Pour que les packages soient installés par le gestionnaire de packages afin que je puisse facilement rechercher des packages et les maintenir à jour
list-packages. - Pour configurer et charger des packages exclusivement via
use-package, afin que je puisse facilement voir dans mon fichier init exactement ce que je charge et comment il est configuré. - En option, j'aimerais également pouvoir installer des packages via
use-packagele:ensuremot-clé de.
Si je comprends bien, je veux très peu de ce qui se package-initializepasse, essentiellement la façon dont il configure le load-path. Actuellement, j'ai ceci dans ma configuration:
;(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)
La première ligne, commentée, est donc Emacs 25 n'ajoute pas utilement un (package-initialize)à mon fichier init. Le bit avec normal-top-level-add-subdirs-to-load-pathest une approximation de ce package-initializequi ferait le load-path, une approximation qui semble assez bonne.
Cela semble réaliser mes désirs 1 et 2, mais pas 3. Si j'essaye d'utiliser :ensure, j'obtiens un message d'erreur disant que ce package.eln'est pas initialisé. L'appel package-initializerésoudrait cela, mais je souhaite éviter cela car a) je ne veux pas que toutes les myriades de chargements automatiques soient chargés (je préfère utiliser use-packagepour créer précisément les chargements automatiques dont j'ai besoin), et b) je veux pouvoir facilement évitez de charger certains packages installés quand je veux (ce qui est facile à faire use-package).
Quelqu'un at-il une recommandation sur la façon de procéder?
package-initializece qui rend ma question théorique.