You can use the Emacs apropos feature to obtain information about the Emacs entities that match a regular expression (regexp) or keywords that you type.

There are several Emacs apropos commands, including the following:

Summary information about matching symbols (e.g. function and variable names), which could have been called ‘apropos-symbol’, as it gives info on all Emacs symbols, whether they are used for functions, variables, faces,….
‘apropos-command’ (‘C-h a’)
Summary information about matching commands (interactive functions) only. Synonym: ‘command-apropos’. (The list you’re reading is part of what you see when you do ‘C-h a apropos’.)
Summary information about matching variables that are user options.
Summary information about symbols with matching documentation.
Summary information about symbols with matching symbol values.

Except for ‘C-h a’ (‘apropos-command’), these other apropos commands are not, by default, bound to any key sequence, so you will need to access them using ‘M-x’ – for example, ‘M-x apropos-variable line’ shows information about all variables whose names contain “line”.

In the summary buffer for apropos, match hits have links that provide more information. To follow a link, click it with ‘mouse-2’, or put the cursor on it and hit ‘RET’.

In XEmacs, Help->Commands, Variables, Keys->Apropos… will give you the list of commands, functions, variables and macros that match a regexp.


"Package"/"Namespace" Viewing

Sometimes you’ll find it useful to see all symbols that belong to a particular “package”. The following code assumes that every symbol that belongs to a particular package is prefixed with its name. For example, the function `color-theme-calm-forest` belongs to the `color-theme` package and will appear in the list as `calm-forest`.

The following ELisp code defines a function for doing that. It basically modifies the Apropos buffer to hide the package name prefix.

(defun package-apropos (package-name)
  "Shows all meaningful Lisp symbols that are part of a package
with the name PACKAGE-NAME. When printing them out, removes the

For example, a search for ``apropos'' will display ``print'',
``command'', etc. in the *Apropos* buffer.

Returns list of symbols and documentation found."
  (interactive "sEnter the package name: ")
  (let ((package (concat package-name "-")))
    (setq apropos-accumulator (apropos (concat "^" package)))
    (apropos-print nil nil (concat "Package prefix: " package))
    (set-buffer "*Apropos*")
    (search-forward "Package prefix: ")
    (let ((start (point)))
      (put-text-property start (point) 'face apropos-symbol-face))
    (while (not (null (search-forward package nil t)))
      ;; hide the package prefix
      (let ((end (point)))
	(put-text-property (point) end 'invisible t)

CategoryDocumentation CategoryHelp