Большинство второстепенных режимов определяются с использованием макроса define-minor-mode
. Для буферных локальных режимов этот макрос создает локальную переменную буфера с тем же именем, что и сам режим . Переменная имеет значение не nil
, когда режим включен для текущего буфера.
Поэтому проверить, является ли flymake-mode
включена, то вы можете проверить переменную flymake-mode
(заметим, что эта переменная не может быть определена на всех, если режим не был включен):
(and (boundp 'flymake-mode) flymake-mode)
Который, как точка Thom в комментариях, можно выразить с помощью удобного макроса:
(bound-and-true-p flymake-mode)
который мы можем использовать в качестве условия для выражения if
или when
или unless
:
(if (bound-and-true-p flymake-mode)
(message "flymake-mode is on")
(message "flymake-mode is off"))
Для глобальных второстепенных режимов, соответствующая переменная является глобальной; но режим flymake - буфер-локальный.
Если вы получаете сообщение об ошибке при включении, что вы планируете получить от проверки? –
Согласно своей домашней странице (http://flymake.sourceforge.net/), flymake - это второстепенный режим, а не основной режим. –
Спасибо. Ошибка не возникает постоянно. Это произошло, когда у моего js-файла много сбоев. И flymake - второстепенный режим. – coordinate