Emacs的股票主要模式列表

问题描述:

有选择Emacs模式的命令列表?我怎么知道我的平台上有哪些模式可用?我的意思是你M-x后输入模式名称的列表。Emacs的股票主要模式列表

类型M-x *-mode <Tab>和emacs将列出以-mode结尾的所有交互式命令,它们当前已加载

我不知道,你可以很容易地看到什么模式是require后可用,而没有首先加载都在你的负载路径的elisp文件。

+0

股票的人都应该有定义自动加载,所以你应该与此行的总结。 Apropos('C-h a')在这里也许很好。 – msandiford 2011-04-04 09:09:52

+0

@spong,还当你确实想那些都没有载入你也许可以写一个elisp的功能加载在负载路径上的一切,然后做到这一点。不过这可能也可能不是一个好主意。 – tobyodavies 2011-04-04 09:11:23

+0

谢谢!!!!!!!!!! – pic11 2011-04-04 09:21:20

+0

某些模式似乎缺失,例如区不随地 – cnst 2015-03-27 19:54:05

一种列出了一些猜测的工作主要模式,以避免轻微-模式等功能,在-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)) 

C-h a mode 

显示所有模式

+0

'C-h的-mode $ RET'会更好。 – 2016-04-25 20:39:13