Dopo aver appreso di recente use-packageho deciso di eseguire il porting della mia configurazione, ma mi sono trovato riluttante a rinunciare alla comodità di utilizzare package.elper installare i pacchetti e mantenerli aggiornati. Ho trovato un po 'complicato combinare use-packagee package.el.
Sono generalmente interessato a imparare come le persone si combinano use-packagecon il package.elsistema, ma per una domanda più specifica, continua a leggere.
Ecco cosa voglio:
- Avere i pacchetti installati dal gestore dei pacchetti in modo da poter facilmente cercare i pacchetti e mantenerli aggiornati
list-packages. - Per configurare e caricare i pacchetti esclusivamente tramite
use-package, così posso facilmente vedere nel mio file init esattamente cosa sto caricando e come è configurato. - Opzionalmente, vorrei anche essere in grado di installare i pacchetti tramite
use-packagela:ensureparola chiave.
Se sto capendo correttamente, voglio ben poco di ciò che package-initializefa, fondamentalmente solo il modo in cui imposta load-path. Attualmente ho questo nella mia configurazione:
;(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 prima riga, commentata, è che Emacs 25 non aggiunge utilmente una (package-initialize)al mio file init. Il bit with normal-top-level-add-subdirs-to-load-pathè un'approssimazione di ciò package-initializeche renderebbe il load-path, un'approssimazione che sembra abbastanza buona.
Questo sembra raggiungere i miei desideri 1 e 2, ma non 3. Se provo ad usare :ensure, ricevo un messaggio di errore che dice che package.elnon è inizializzato. La chiamata package-initializerisolverebbe questo problema, ma desidero evitare che poiché a) non voglio caricare tutte le miriadi di caricamenti automatici (preferisco utilizzare use-packageper creare esattamente i caricamenti automatici di cui ho bisogno) eb), voglio essere in grado di farlo facilmente evitare di caricare determinati pacchetti installati ogni volta che voglio (il che è facile da fare con use-package).
Qualcuno ha una raccomandazione su come farlo?
package-initializeche rende discutibile la mia domanda.