How do I get a list of Emacs lisp non-interactive functions?

后端 未结 6 1943
天涯浪人
天涯浪人 2021-02-02 16:17

How do I get a complete list of non-interactive functions that I can use in Emacs Lisp?

The interactive ones are easy enough to find in the help system, but I want a com

相关标签:
6条回答
  • 2021-02-02 16:38

    Here's the basic idea - see the Emacs Lisp manual for any unclear concepts.

    (flet ((first-line (text)
             (if text
                 (substring text 0 (string-match "\n" text))
               "")))
      (mapatoms 
       (lambda (x)
         (and (fboundp x)                          ; does x name a function?
              (not (commandp (symbol-function x))) ; is it non-interactive?
              (subrp (symbol-function x))          ; is it built-in?
              (insert (symbol-name x) " - " (first-line (documentation x)) "\n")))))
    
    0 讨论(0)
  • 2021-02-02 16:41

    Nevermind. It turns out that C-h f (describe function) does include non-interactive functions, though I'd still be interested in finding a way of viewing/searching only the non-interactive ones (especially only the built in ones).

    0 讨论(0)
  • 2021-02-02 16:55

    You could check the contents of obarray, though that contains all symbols, rather than "all functions".

    Alternatively, the following may do the trick (will pull in parts of the CL compatability package):

    (reduce (lambda (so-far next) (if (fboundp next) (cons next so-far) so-far)) obarray :initial-value nil)
    0 讨论(0)
  • 2021-02-02 16:55

    Try the apropos command with an empty input.

    0 讨论(0)
  • 2021-02-02 17:01

    Try apropos instead of apropos-command. That will give you all the functions, not just the interactive ones. C-h a is bound by default to the latter, but if you're doing a lot of elisp hacking, I recommend binding it to the former.

    0 讨论(0)
  • 2021-02-02 17:02

    you could do worse than look at the website

    0 讨论(0)
提交回复
热议问题