¿Cómo enumera los modos menores activos en emacs?
emacs
minor-mode
Solo lectura
fuente
fuente

boundplugar desymbolpusted puede deshacerse delcondition-case.describe-modede alguna manera puedo crear una lista de modos menores habilitados, ¿por qué no podría? Entonces, después de leer su código fuente, me di cuenta de que obtiene la lista de modos menores activos de ambosminor-mode-listyminor-mode-alist. Usando ladash.elbiblioteca de manipulación de listas de terceros , vine con este código:Entonces, por ejemplo, para deshabilitar todos los modos menores, use
-each:No olvide guardar la lista de modos menores en una variable, de lo contrario tendría que reiniciar Emacs o habilitarlos por memoria.
fuente
Si desea hacer algo mediante programación con todos los búferes que tienen un determinado modo activo, entonces la mejor solución integrada, la más minimalista y más limpia es la siguiente:
Hace lo siguiente:
buffer-list, con el búfer actualmente activo al principio de la lista (para que se trate primero, generalmente lo que desea, pero omita elcurrent-bufferparámetro si no le importa).$buf.with-current-buffer $bufpara decirle a Emacs que todo el código dentro del cuerpo debe ejecutarse como si se estuviera ejecutando dentro del búfer en$buflugar de cualquier búfer que esté mostrando en la pantalla.when <some mode variable>es la forma correcta de comprobar si un modo está habilitado; también puede utilizarify otros métodos similares. De cualquier manera, el objetivo es verificar si una variable de modo principal de modo menor o mayor está configurada en el búfer. Casi todos los modos definen una variable a través de "definir" un modo, lo que hace que automáticamente creen una variable local de búfer con el nombre del modo, que es como funciona esto. Y si no tienen una variable estándar, mire su propio código fuente para ver cómo su código de "alternancia" determina cómo activarlas y desactivarlas. El 99% de ellos usan la existencia de la variable de su nombre de modo (y si no lo hacen, sugiero informarlo como un error al autor del modo). Por ejemplo, para comprobar si un búfer tiene el modo de espacios en blanco activo, diríawhen whitespace-mode.¡Disfrutar! ¡Adelante a un código lisp mayor y más limpio!
fuente
Aquí hay un fragmento alternativo simple similar a algunos de los métodos que ya se han abordado en otras respuestas:
fuente