Après avoir récemment pris connaissance de ces informations, use-package
j'ai décidé d'y porter ma configuration, mais je me suis montré réticent à renoncer à la commodité de l'utilisation package.el
pour installer des packages et les maintenir à jour. Je l'ai trouvé un peu difficile à combiner use-package
et package.el
.
Je suis généralement intéressé à savoir comment les gens se combinent use-package
avec le package.el
systè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-package
le:ensure
mot-clé de.
Si je comprends bien, je veux très peu de ce qui se package-initialize
passe, 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-path
est une approximation de ce package-initialize
qui 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.el
n'est pas initialisé. L'appel package-initialize
ré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-package
pour 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-initialize
ce qui rend ma question théorique.