

Machón
Configuración de Emacs 2: gestión de paquetes
Configuración de emacs con «programación literaria», gestión de paquetes
Se va a ampliar la configuración preparando el sistema de gestión de paquetes elegido. En este caso es straight.el, muy flexible y avanzado.
Plan de trabajo
Para instalar y configurar straight.el es preciso realizar dos pasos: primero desactivar el sistema estándar de paquetes de emacs, package-manager. Esto se lleva a cabo en el archivo init.el, que hay que preparar con el sistema de «tangle» ya utilizado anteriormente para generar otros archivos.
EL segundo paso será incorporar el código de bootstrapping o instalación y arranque de straight.el, tal como indica al sitio web del proyecto.
Desactivar package.org en early-init.el
** early-init.el: Configuración de emacs anterior a la creción de ventanas
El archivo =var/early-init.el= se cargará al iniciar emacs, antes de crear el interface de usuario y antes de cargar init.el.
#+begin_src emacs-lisp
;; Configuración de Emacs (precarga)
#+end_src
*** Load local configuration
#+begin_src emacs-lisp :tangle ../var/early-init.el :mkdirp yes
;; Local configuration
(let ((local-config-file (expand-file-name "local-config.el" user-emacs-directory)))
(if (file-exists-p local-config-file)
(load local-config-file :nomessage t)
(append-to-file ";; Local configuration; first code loaded.\n" nil local-config-file)))
#+end_src
,*** Desactivar package.el
Impedir que package.el cargue paquetes antes de la carga de init.el
,#+begin_src emacs-lisp
;; desactivar package.el
(setq package-enable-at-startup nil)
,#+end_src
#+end_src
Activar el gestor de paquetes straigh.el
** Gestión de paquetes straight.el
El gestor de paquetes straight.el permite incluir paquetes de emacs con la máxima flexibilidad.
*** Bootstrapping straight.el
#+begin_src emacs-lisp :tangle ../var/early-init.el :mkdirp yes :tangle-mode
;; bootstrap Straigh.el
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name
"straight/repos/straight.el/bootstrap.el"
(or (bound-and-true-p straight-base-dir)
user-emacs-directory)))
(bootstrap-version 7))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
#+end_src
*** Desactivar package.el
Utilizar la sintaxis =use-package=y activar ajustes iniciales,
#+begin_src emacs-lisp
;; Use straight.el for use-package expressions
(straight-use-package 'use-package)
;; always use straight.el
(setq straight-use-package-by-default t)
;; TODO: BUG https://github.com/magit/magit/issues/5476
(setq straight-cache-autoloads nil)
;; Load the helper package for commands
;; like `straight-x-clean-unused-repos'
(require 'straight-x)
#+end_src