apropos- are not enough. How can I search the Emacs Lisp Reference Manual (C-h i m elisp) from within emacs?
EDIT: I just found the wonderful
M-x info-apropos which searches full text over all info documents and returns the relevant nodes. Seems this gem is relatively unknown.
If you use
helm package from MELPA with
helm-mode on, using either
i (info-index) or
I (info-virtual-index) pops up a helm window with the index terms. You can then use typical helm completion patterns to discover and browse the index.
In addition to what others have mentioned, Icicles facilitates browsing and searching Info manuals.
Info-index) is your friend in Info. Start your search with it. It is typically more useful than a brute-force text search, because a human has indexed useful terms.
iin vanilla index accepts a substring of an index entry as input (using
RET), it does not provide substring, let along regexp, completion. In Icicle mode,
iin Info is bound to
icicle-Info-index, which provides such completion, and it also lets you filter using multiple patterns (progressive completion). It is also a multi-command, which means that with a single
iinvocation you can visit any number of occurrences for any number of index entries.
With Icicles, you can optionally have
iand other Info commands highlight a bit differently, in buffer
*Completions*, completion candidates that correpond to Info nodes that you have already visited. This is handy to avoid revisiting a node that you have already consulted, when searching in different ways. It helps especially with double-entry indexing, that is, multiple index entries to the same node.
In addition to index lookup, you can search an Info manual. In vanilla Emacs you can use
C-M-srepeatedly to do this. This can be handy in cases where
idoes give you the help you want.
With Icicles, you can limit searching to a particular set of nodes.
Info-goto-node) accepts multi-completion input. You can provide a pattern (regexp, substring, etc.) that matches node names or a pattern that matches node content, or both. Matching a pattern against node content means searching manual content. The completion candidates shown in
*Completions*are the node names.
You can search a set of nodes or an entire manual. After you choose one of the matching nodes to visit, you can use
C-M-sto find each match of the content-search pattern within the node. And just as for
gis a multi-command, which means that you can visit any number of nodes in a single
You can create virtual books composed of different sets of nodes (even from different manuals), and save these persistently, for reuse later. Searching a smaller set of nodes (a sub-manual) can be faster.
See here for more info about Icicles Info enhancements.
You can also use
s to search the current document for the next instance of a given regular expression. Repeated presses of
s-<RET> will iteratively search for the next instance of the same expression. https://www.gnu.org/software/emacs/manual/html_node/info/Search-Text.html#Search-Text