Ottieni l'elenco delle modalità secondarie attive nel buffer


14

Come ottenere un elenco di modalità secondarie attive nel buffer corrente?

I documenti (info "(elisp)Minor Mode Conventions")dicono:

 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.

Mi fermo con:

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

describe-mode le fonti hanno notato che:

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

Non so se quel punto sia ancora valido ...


2
Non ti describe-modefornisce un elenco adeguato delle modalità secondarie attive nel buffer corrente?
Estratto il

1
@Drew Sembra che forse lo voglia a livello di programmazione?
tata

1
@Nanny: Sì, l'ho immaginato. In questi casi, un punto di partenza sarebbe quello di cercare il codice describe-mode, se questo è altrimenti adeguato.
Estratto il

Risposte:


7

Prova questo:

(mapcar #'car minor-mode-alist)

In effetti, scoprirai che questo valore differisce spesso da minor-mode-list.


13

Se stai solo cercando di vedere quali modalità secondarie vengono utilizzate in un buffer, ma non è necessario utilizzare l'elenco a livello di programmazione:

M-x describe-mode

Questo comando aprirà un nuovo buffer che inizia con un elenco completo delle modalità secondarie, oltre a fornire una breve descrizione delle modalità principali e di tutte le modalità parent eventualmente eseguite.


1
Anche se questo potrebbe non rispondere esattamente alla domanda del PO, questo è stato il primo risultato che ho trovato durante la ricerca di questa domanda. Dal momento che il commento di Drew ha risolto il mio caso d'uso, ho pensato che meritasse una risposta completa per i futuri ricercatori.
Wilduck,

+1 per dimostrare la soluzione più generale al problema. describe-modeè particolarmente utile!
ephsmith
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.