Veraltete Variablen in der Init-Datei automatisch identifizieren


8

Wenn eine neue Version von Emacs veröffentlicht wird, sind normalerweise einige Variablen / Befehle / Funktionen veraltet. Sie sind in der Regel in der entsprechenden Dokumentation als solche gekennzeichnet:

turn-on-eldoc-modeist ein Alias ​​für eldoc-modein eldoc.el. [...]

Diese Funktion ist seit 24.4 veraltet ; Verwenden Sie eldoc-modestattdessen.

Ich möchte sicherstellen, dass ich keine veralteten Variablen in meiner Init-Datei referenziere, aber ich möchte auch vermeiden, das Ganze manuell zu überprüfen.

Meine Frage lautet also : Gibt es eine Möglichkeit, alle veralteten Variablen in meiner Init-Datei automatisch zu identifizieren (dies funktioniert möglicherweise auch für Pakete von Drittanbietern, die über den Paketmanager installiert wurden)?

Antworten:


12

Bytekompilieren Sie die Datei.

Im Allgemeinen ist es am besten, Ihre Init-Datei nicht per Byte zu kompilieren, aber hier ist es nützlich. Der Byte-Compiler warnt Sie vor vielen schlechten Praktiken, darunter die Verwendung veralteter Variablen oder Funktionen.

  1. Rufen M-x byte-compile-fileSie einfach an und geben Sie Ihre Init-Datei.

  2. Stellen Sie anschließend sicher, dass Sie die generierte .elcDatei löschen .


2
Was sind aus Neugier die Gründe, die Init-Datei nicht per Byte zu kompilieren?
Dan

4
@ Dan Die Vorteile sind vernachlässigbar. In der Zwischenzeit können Sie gelegentlich vergessen, nach dem Ändern neu zu kompilieren, und sich fragen, warum Ihre Änderungen keine Auswirkungen haben.
Malabarba

4
@Dan: Zusätzlich zu dem, was Malabarba gesagt hat, wird eine bestimmte Init-Datei manchmal (häufig) für mehrere Emacs-Versionen verwendet, und das Byte-Kompilieren kann diese Art von Portabilität verringern.
Drew

Nur für den Fall, dass es nicht offensichtlich ist: Sie können es per Byte kompilieren (um Warnungen usw. zu sehen) und dann das löschen *.elc.
Drew

6
Deshalb sollten Sie #'statt 'für Funktionen verwenden. Wenn Sie etwas mit (add-hook 'emacs-lisp-mode-hook #'turn-on-eldoc-mode)dem Compiler kompilieren, werden Sie gewarnt.
Malabarba
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.