Есть ли список команд для выбора режимов Emacs? Как узнать, какие режимы доступны на моей платформе? Я имею в виду список имен режимов, которые вы вводите после M-x
.
Список основных режимов Emacs
Ответ 1
type M-x *-mode <Tab>
, и emacs отобразит все интерактивные команды, заканчивающиеся на -mode
, которые в настоящее время загружаются.
Я не уверен, что вы можете легко увидеть, какие режимы доступны после require
, не загрузив все файлы elisp в пути загрузки.
Ответ 2
Функция для перечисления основных режимов с некоторой догадкой, чтобы избежать перечисления второстепенных режимов и других функций, которые заканчиваются на -mode:
(defun list-major-modes ()
"Returns list of potential major mode names (without the final -mode).
Note, that this is guess work."
(interactive)
(let (l)
(mapatoms #'(lambda (f) (and
(commandp f)
(string-match "-mode$" (symbol-name f))
;; auto-loaded
(or (and (autoloadp (symbol-function f))
(let ((doc (documentation f)))
(when doc
(and
(let ((docSplit (help-split-fundoc doc f)))
(and docSplit ;; car is argument list
(null (cdr (read (car docSplit)))))) ;; major mode starters have no arguments
(if (string-match "[mM]inor" doc) ;; If the doc contains "minor"...
(string-match "[mM]ajor" doc) ;; it should also contain "major".
t) ;; else we cannot decide therefrom
))))
(null (help-function-arglist f)))
(setq l (cons (substring (symbol-name f) 0 -5) l)))))
(when (called-interactively-p 'any)
(with-current-buffer (get-buffer-create "*Major Modes*")
(clear-buffer-delete)
(let ((standard-output (current-buffer)))
(display-completion-list l)
(display-buffer (current-buffer)))))
l))
Ответ 3
Вот список: http://www.emacswiki.org/CategoryModes
Ответ 4
C-h a mode
отображает сводку всех режимов