Come indicato in un altro post, è possibile aggiungere gli switch personalizzati a command-switch-alist
ed emacs chiamerà la funzione di gestore per qualsiasi switch di corrispondenza passato nella riga di comando. Tuttavia, questa operazione viene eseguita dopo che il file .emacs
è stato valutato. Questo va bene per la maggior parte dei casi, ma potresti desiderare un argomento della riga di comando per modificare il percorso o il comportamento di esecuzione della tua valutazione .emacs
; Lo faccio spesso per abilitare/disabilitare i blocchi di configurazione (principalmente per il debug).
Per ottenere ciò è possibile leggere command-line-args
e verificare manualmente l'interruttore e quindi eliminarlo dall'elenco, questo si interromperà emacs
lamentandosi di un argomento sconosciuto.
(setq my-switch-found (member "-myswitch" command-line-args))
(setq command-line-args (delete "-myswitch" command-line-args))
che possono alterare il tuo .emacs
di valutazione in questo modo:
(unless my-switch-found
(message "Didn't find inhibit switch, loading some config.")
...)
E si potrebbe costruire questo in un unico passaggio:
;; 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...")
...)
testato il codice contrassegnato "non è stata testata". Funziona esattamente come descritto. –