La maggior parte delle modalità secondarie sono definite utilizzando la macro define-minor-mode
. Per le modalità locali del buffer, quella macro crea una variabile locale del buffer con lo stesso nome della modalità stessa . La variabile non è nil
quando la modalità è abilitata per il buffer corrente.
Pertanto per controllare se flymake-mode
è abilitato, è possibile verificare la variabile flymake-mode
(notare che questa variabile non può essere definito a tutti se la modalità non è stata abilitata):
(and (boundp 'flymake-mode) flymake-mode)
Che, come punto di Thom nei commenti, può essere espressa tramite il comodo macro:
(bound-and-true-p flymake-mode)
cui possiamo usare come la condizione per un'espressione if
o when
o unless
:
(if (bound-and-true-p flymake-mode)
(message "flymake-mode is on")
(message "flymake-mode is off"))
Per modalità secondarie globali, corrispondente variabile è globale; ma flymake-mode è buffer-local.
Se si verifica un errore all'accensione, cosa si intende ottenere dal controllo? –
Secondo la sua homepage (http://flymake.sourceforge.net/), flymake è una modalità secondaria, non una modalità principale. –
Grazie. L'errore non si verifica sempre. Si è verificato quando il mio file js ha fallito molto. E flymake è una modalità secondaria. – coordinate