Dear Log,
Today's Elisp dalliance:
(defun functions-table () "Make a list of all functions" (interactive) (symbols-report "*Functions*" 'fboundp)) (defun variables-table () "Make a list of all variables" (interactive) (symbols-report "*Variables*" 'boundp)) (defalias 'function-table 'functions-table) (defalias 'variable-table 'variables-table) (byte-compile (defun symbols-report (bufname pred) (switch-to-buffer bufname) (erase-buffer) (let (syms) (mapatoms ; ^^ for each symbol in obarray ; (in no special order) (f_x (when (apply pred (list x)) (setq syms (cons (symbol-to-string x) syms))))) (setq syms (sort syms 'string<)) (dolist (sym syms) (insert (concat sym "\n"))))) )I'm lazy and haven't made those thingies actually link to the describe-function or describe-variable screens for each.
Edit: Addendum:
(defmacro f_x (&rest Body) "Make these expressions a function with 'x' holding its one parameter" (list 'function (cons 'lambda (cons (cons 'x nil) Body))))