Identifica automáticamente variables obsoletas en el archivo init


8

Cuando se lanza una nueva versión de Emacs, por lo general, algunas variables / comandos / funciones se vuelven obsoletas. Generalmente están marcados como tales en la documentación correspondiente:

turn-on-eldoc-modees un alias para eldoc-modeen eldoc.el. [...]

Esta función es obsoleta desde 24.4 ; utilizar eldoc-modeen su lugar.

Me gustaría asegurarme de que no estoy haciendo referencia a ninguna variable obsoleta en mi archivo de inicio, pero también me gustaría evitar comprobar todo de forma manual.

Entonces mi pregunta es : ¿Hay alguna manera de identificar automáticamente todas las variables obsoletas en mi archivo init (que posiblemente también funcione para paquetes de terceros instalados a través del administrador de paquetes)?

Respuestas:


12

Byte-compilar el archivo.

En general, es mejor no compilar en bytes su archivo init, pero aquí es útil. El compilador de bytes le advertirá sobre muchas malas prácticas, entre ellas el uso de variables o funciones obsoletas.

  1. Simplemente llame M-x byte-compile-filey dé su archivo de inicio.

  2. Luego, asegúrese de eliminar el .elcarchivo generado .


2
Por curiosidad, ¿cuáles son las razones para no compilar en bytes el archivo init?
Dan

44
@Dan Las ventajas son insignificantes. Mientras tanto, ocasionalmente puede olvidarse de volver a compilar después de cambiarlo, y quedarse preguntándose por qué sus cambios no tienen ningún efecto.
Malabarba

44
@Dan: Además de lo que dijo Malabarba, un archivo de inicio dado a veces (a menudo) se usa para múltiples versiones de Emacs, y la compilación de bytes puede reducir este tipo de portabilidad.
Dibujó

En caso de que no sea obvio: puede compilarlo en bytes (para ver advertencias, etc.) y luego eliminarlo *.elc.
Dibujó

66
Es por eso que debe usar en #'lugar de 'para funciones. Si compilas algo con (add-hook 'emacs-lisp-mode-hook #'turn-on-eldoc-mode)el compilador te avisará.
Malabarba
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.