Wie in einem anderen Beitrag erwähnt, können Sie Ihre benutzerdefinierten Schalter command-switch-alist
hinzufügen und Emacs wird die Handler-Funktion für alle passenden Schalter in der Befehlszeile übergeben. Dieser Vorgang wird jedoch ausgeführt, nachdem Ihre .emacs
-Datei ausgewertet worden ist. Das ist in den meisten Fällen in Ordnung, aber Sie möchten vielleicht, dass ein Befehlszeilenargument den Ausführungspfad oder das Verhalten Ihrer .emacs
Auswertung ändert; Ich mache das oft um Konfigurations-Chunks zu aktivieren/deaktivieren (hauptsächlich zum Debuggen).
Um dies zu erreichen, können Sie lesen command-line-args
und überprüfen Sie für Ihren Schalter manuell und dann löschen Sie es aus der Liste, dies wird aufhören emacs
beschweren sich über ein unbekanntes Argument.
(setq my-switch-found (member "-myswitch" command-line-args))
(setq command-line-args (delete "-myswitch" command-line-args))
Welche Ihre .emacs
Auswertung wie so verändern kann:
(unless my-switch-found
(message "Didn't find inhibit switch, loading some config.")
...)
Und man konnte dies in einem einzigen Schritt bauen:
;; This was written in SO text-box, not been tested.
(defun found-custom-arg (switch)
(let ((found-switch (member switch command-line-args)))
(setq command-line-args (delete switch command-line-args))
found-switch))
(unless (found-custom-arg "-myswitch")
(message "Loading config...")
...)
der Code Getestet markierte "nicht getestet". Es funktioniert genau wie beschrieben. –