emacs - ¿Cómo verificar si un modo menor(.eg flymake-mode) está activado?
(2)
Siempre me sale un error cuando uso el modo flymake. Y el modo flymake se apaga.
Así que quiero comprobar si el modo flymake está activado. Si no está encendido, lo encenderé antes de llamar a flymake-next-error.
Gracias.
Otra solución es usar Mx describe-mode para mostrar todos los modos menores activos (y el modo mayor) y una breve descripción de cada uno.
Si el modo menor está activado en el búfer actual, puede encontrar su nombre en el búfer emergente.
La mayoría de los modos menores se definen utilizando la macro define-minor-mode
. Para los modos de búfer locales, esa macro crea una variable de búfer local con el mismo nombre que el modo 1 . La variable es nil
cuando el modo está habilitado para el búfer actual.
Por lo tanto, para verificar si flymake-mode
está habilitado, puede probar la variable flymake-mode
(teniendo en cuenta que esta variable podría no estar definida en absoluto si el modo no se ha habilitado):
(and (boundp ''flymake-mode) flymake-mode)
Lo que, como señala Thom en los comentarios, se puede expresar utilizando la macro conveniente:
(bound-and-true-p flymake-mode)
Que podemos usar como condición para una expresión if
o when
o a unless
que:
(if (bound-and-true-p flymake-mode)
(message "flymake-mode is on")
(message "flymake-mode is off"))
1 Para los modos menores globales, la variable correspondiente es global; pero el modo flymake es un buffer local.