Wie erhalte ich eine Liste von Emacs Lisp nicht-interaktiven Funktionen?
Frage
Wie erhalte ich eine vollständige Liste der nicht-interaktiver Funktionen, die ich in Emacs Lisp verwenden kann?
Die interaktiv diejenigen sind leicht genug, um in dem Hilfesystem zu finden, aber ich mag eine vollständige Liste aller anderen Funktionen, die ich verwenden können. Zum Beispiel concat
, car
, cdr
usw. (und vorzugsweise mit Dokumentation).
Danke
Ed
Edit: Beantwortet dank Jouni. Ich spielte mit seiner Antwort eines bisschen, und bekam es die Ergebnisse sortiert werden (die Ergebnisse seines Code mit mir zu helfen, die richtigen Sortierfunktion zu finden!)
(flet ((first-line (text)
(if text
(substring text 0 (string-match "\n" text))
"")))
(let ((funclist (list)))
(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?
(add-to-list 'funclist
(concat (symbol-name x) " - " (first-line (documentation x))
"\n")))))
(dolist (item (sort funclist 'string<))
(insert item))))
Lösung
Hier ist die Grundidee - siehe Emacs Lisp Handbuch für jede unklare Begriffe.
(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")))))
Andere Tipps
Versuchen apropos
statt apropos-command
. Das gibt Ihnen alle Funktionen, nicht nur die interaktiv diejenigen. C-h a
ist standardmäßig an diese gebunden ist, aber wenn Sie eine Menge elisp Hacking zu tun, empfehle ich die Bindung an die ehemalige.
Sie können den Inhalt obarray überprüfen, obwohl das alle Symbole enthält, sondern als „alle Funktionen“.
Alternativ können folgende den Trick (in Teilen des CL-Kompatibilität Paket ziehen wird):
(Reduziert (Lambda (so weit next) (if (fboundp next) (cons nächste so weit) so weit)) obarray : Anfangswert nil)
könnten Sie tun, schlimmer als Blick auf die Website
Versuchen Sie, den Befehl apropos mit einem leeren Eingang.
Nevermind. Es stellt sich heraus, dass Ch f (beschreiben Funktion) enthält nicht-interaktive Funktionen, obwohl ich immer noch in der Suche nach einem Weg des Betrachtens interessiert sein würde / die Suche nur die nicht-interaktiven derjenigediejenigedasjenige (vor allem nur die in denjenigen gebaut).