Ich use-package
organisiere meine init.el
. Mir ist aufgefallen, dass alle meine Erklärungen verwenden :ensure t
. Eine Beispieldeklaration lautet:
(use-package auto-complete
:ensure t
:diminish auto-complete-mode
:init (global-auto-complete-mode t))
Gibt es eine Möglichkeit, Änderungen implizit einzuschließen, ohne use-package.el direkt zu ändern , da alle meine use-package
Deklarationen verwendet werden? Idealerweise möchte ich keine Funktion mit einem anderen Namen verwenden.:ensure t
use-package
:ensure t
Ich bin ein bisschen vertraut damit advice-add
, aber ich habe den Eindruck, dass dies verwendet wird, um einer Funktion einen Hook oder eine Umgebung hinzuzufügen, nicht um die Funktion oder das Makro selbst zu ändern.
elisp-macros
bsamek
quelle
quelle
use-package
Ist eigentlich ein Lisp-Makro. Sie können wahrscheinlich ein eigenesmy-use-package
Makro erstellen, dasuse-package
mit den von Ihnen bevorzugten Standardeinstellungen erweitert wird .:filter-args
Ratschläge verwenden, um Schlüsselwörter wie hinzuzufügen:ensure t
?Antworten:
Basierend auf @ politzas Kommentar, dass (natürlich!) Ratschläge mit Makros funktionieren, habe ich etwas gefunden, das zu funktionieren scheint.
Beachten Sie, dass in diesem Beispiel die Beratungsfunktionen von Emacs 24.4 verwendet werden. Ich habe nicht herausgefunden, was das Äquivalent für ältere Versionen von Emacs sein würde.
quelle
require
eine Funktion, die den Rat liefert, oder miteval-when-compile
.Die neuere Version von
use-package
bietet Folgendes, um dieses Verhalten für alle Pakete zu aktivieren:Nur für den Fall, dass jemand die gleiche Frage hatte.
quelle