Obtenir la liste des modes mineurs actifs dans le tampon

14

Comment obtenir une liste des modes mineurs actifs dans le tampon actuel?

Les documents (info "(elisp)Minor Mode Conventions")disent:

 Define a variable whose name ends in ‘-mode’.  We call this the
 "mode variable".  The minor mode command should set this variable.
 The value will be ‘nil’ if the mode is disabled, and non-‘nil’ if
 the mode is enabled.  The variable should be buffer-local if the
 minor mode is buffer-local.

Je m'arrête avec:

(dolist (m minor-mode-list)
  (when (symbol-value m)
    (push m modes)))

describe-mode les sources ont noté que:

;; Older packages do not register in minor-mode-list but only in
;; minor-mode-alist.

Je ne sais pas si ce point est toujours valable ...

gavenkoa
la source
2
Ne describe-modevous donne pas une liste adéquate des modes mineurs actifs dans le tampon actuel?
Drew
1
@Drew On dirait qu'il le veut peut-être par programme?
nounou
1
@nanny: Oui, je l'ai deviné. Dans ce cas, un point de départ serait de consulter le code describe-mode- si cela est par ailleurs adéquat.
Drew

Réponses:

7

Essaye ça:

(mapcar #'car minor-mode-alist)

En fait, vous constaterez que cette valeur diffère souvent de minor-mode-list.

PythonNut
la source
13

Si vous cherchez simplement à voir quels modes mineurs sont utilisés dans un tampon, mais que vous n'avez pas besoin d'utiliser la liste par programmation, utilisez:

M-x describe-mode

Cette commande ouvrira un nouveau tampon qui commence par une liste complète de vos modes mineurs, ainsi qu'une brève description des modes principaux et de tous les modes parents qui ont pu être exécutés.

Wilduck
la source
1
Bien que cela ne réponde peut-être pas exactement à la question du PO, ce fut le premier résultat que j'ai trouvé en recherchant cette question. Depuis que le commentaire de Drew a résolu mon cas d'utilisation, j'ai pensé qu'il méritait une réponse complète pour les futurs chercheurs.
Wilduck
+1 pour avoir démontré la solution plus générale du problème. describe-modeest particulièrement utile!
ephsmith