Usando package.el para instalar y actualizar pero use-package para cargar y configurar

Pregunta:

Después de aprender recientemente sobre use-package , decidí portar mi configuración, pero me encontré reacio a renunciar a la conveniencia de usar package.el para instalar paquetes y mantenerlos actualizados. Me ha resultado un poco complicado combinar use-package y package.el .

En general, estoy interesado en aprender cómo la gente combina use-package con el sistema package.el , pero para una pregunta más específica, siga leyendo.

Esto es lo que quiero:

  1. Tener paquetes instalados por el administrador de paquetes para que pueda buscar paquetes fácilmente y mantenerlos actualizados a través de la list-packages .
  2. Para configurar y cargar paquetes exclusivamente a través de use-package , para que pueda ver fácilmente en mi archivo de inicio exactamente lo que estoy cargando y cómo está configurado.
  3. Opcionalmente, también me gustaría poder instalar paquetes a través de la palabra clave use-package :ensure secure.

Si entiendo correctamente, quiero muy poco de lo que hace package-initialize , básicamente solo la forma en que configura la load-path . Actualmente tengo esto en mi configuración:

;(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 primera línea, comentada, es para que Emacs 25 no agregue de manera útil un (package-initialize) a mi archivo init. El bit con normal-top-level-add-subdirs-to-load-path es una aproximación de lo que package-initialize haría la load-path , una aproximación que parece suficientemente buena.

Esto parece lograr mis deseos 1 y 2, pero no 3. Si intento usar :ensure , aparece un mensaje de error que dice que package.el no está inicializado. Llamar a package-initialize solucionaría eso, pero deseo evitarlo ya que a) no quiero que se carguen todas las innumerables cargas automáticas (prefiero usar use-package para crear precisamente las cargas automáticas que necesito), yb) yo quiero poder evitar fácilmente cargar ciertos paquetes instalados cuando quiera (lo cual es fácil de hacer con use-package ).

¿Alguien tiene una recomendación sobre cómo hacer esto?

Respuesta:

IIUC lo que quieres hacer es:

(package-initialize t)

Tenga en cuenta el argumento t , que es la clave de su felicidad aquí, ya que inicializará (o debería, al menos) package.el sin activar todos los paquetes instalados.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım