Nhận danh sách các chế độ nhỏ hoạt động trong bộ đệm


14

Làm thế nào để có được một danh sách các chế độ nhỏ hoạt động trong bộ đệm hiện tại?

Tài liệu (info "(elisp)Minor Mode Conventions")nói:

 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.

Tôi dừng lại với:

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

describe-mode nguồn có ghi chú rằng:

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

Tôi không biết nếu đó vẫn còn điểm hợp lệ ...


2
Không describe-modecung cấp cho bạn một danh sách đầy đủ các chế độ nhỏ đang hoạt động trong bộ đệm hiện tại?
vẽ

1
@Drew Nghe có vẻ như anh ấy có thể muốn nó lập trình?
mẫu

1
@nanny: Vâng, tôi đoán vậy. Trong trường hợp đó, một nơi để bắt đầu sẽ là xem mã cho describe-mode- nếu điều đó là đủ.
vẽ

Câu trả lời:


7

Thử cái này xem sao:

(mapcar #'car minor-mode-alist)

Trong thực tế, bạn sẽ thấy rằng giá trị này thường khác với minor-mode-list.


12

Nếu bạn chỉ muốn xem những chế độ nhỏ nào đang được sử dụng trong bộ đệm, nhưng không cần sử dụng danh sách sử dụng theo chương trình:

M-x describe-mode

Lệnh này sẽ mở một bộ đệm mới bắt đầu với một danh sách đầy đủ các chế độ nhỏ của bạn, cũng như đưa ra một mô tả ngắn gọn về các chế độ chính và bất kỳ chế độ cha mẹ nào có thể đã được chạy.


1
Mặc dù điều này có thể không trả lời chính xác câu hỏi của OP, nhưng đây là kết quả đầu tiên tôi tìm thấy khi tìm kiếm câu hỏi này. Vì nhận xét của Drew đã giải quyết trường hợp sử dụng của tôi, tôi nghĩ rằng nó xứng đáng là câu trả lời đầy đủ cho những người tìm kiếm trong tương lai.
Wilduck

+1 để thể hiện giải pháp mục đích chung hơn cho vấn đề. describe-modeđặc biệt hữu ích
ephsmith
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.