Как получить список активных второстепенных режимов в текущем буфере?
Документы (info "(elisp)Minor Mode Conventions")
говорят:
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.
Я остановился на:
(dolist (m minor-mode-list)
(when (symbol-value m)
(push m modes)))
describe-mode
источники имеют примечания, что:
;; Older packages do not register in minor-mode-list but only in
;; minor-mode-alist.
Я не знаю, если это все еще действительная точка ...
minor-mode
gavenkoa
источник
источник
describe-mode
дает ли вам адекватный список активных второстепенных режимов в текущем буфере?describe-mode
- если это в противном случае адекватное.Ответы:
Попробуй это:
На самом деле, вы обнаружите, что это значение часто отличается от
minor-mode-list
.источник
Если вы просто смотрите, какие второстепенные режимы используются в буфере, но не нужно использовать список программно, используйте:
M-x describe-mode
Эта команда откроет новый буфер, который начинается с полного списка ваших второстепенных режимов, а также даст краткое описание основных режимов и любых родительских режимов, которые могли быть запущены.
источник
describe-mode
особенно полезно!