버퍼의 활성 부 모드 목록 가져 오기


14

현재 버퍼에서 활성 부 모드 목록을 얻는 방법은 무엇입니까?

문서 (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.

그래도 여전히 유효한지 모르겠습니다 ...


2
describe-mode현재 버퍼에서 활성 마이너 모드의 적절한 목록을 제공 하지 않습니까?
Drew

1
@Drew 프로그래밍 방식으로 원하는 것 같습니까?
nanny

1
@nanny : 네, 그런 것 같아요. 그 경우에, 시작하는 하나 개의 장소에 대한 코드를 살펴하는 것입니다 describe-mode- 경우에 그 그렇지 않으면 적절하다.
Drew

답변:


7

이 시도:

(mapcar #'car minor-mode-alist)

실제로이 값은 종종와 다릅니다 minor-mode-list.


13

버퍼에서 사용되는 마이너 모드를 확인하려고하지만 프로그래밍 방식으로 목록을 사용할 필요가없는 경우 :

M-x describe-mode

이 명령은 마이너 모드의 전체 목록으로 시작하는 새 버퍼를 열뿐만 아니라 주요 모드 및 실행되었을 수있는 모든 상위 모드에 대한 간략한 설명을 제공합니다.


1
이것이 OP의 질문에 정확하게 대답하지는 못했지만 이것이이 질문을 검색 할 때 찾은 첫 번째 결과였습니다. Drew의 의견이 유스 케이스를 해결했기 때문에 향후 검색 자에게 완전한 대답이 필요하다고 생각했습니다.
Wilduck 2016 년

문제에 대한보다 일반적인 목적의 솔루션을 시연 한 +1 describe-mode특히 유용합니다!
ephsmith
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.