Sometimes describe-
or apropos-
are not enough. How can I search the Emacs Lisp Reference Manual (C-h i m elisp) from within emacs?
7 Answers
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.
You can use elisp-index-search
. I use it daily.
I use it mostly when I already know a function name and want to see it in emacs lisp manual.
-
Does this essentially do an info-apropos and jump to what it deems the best match?– elarsonOct 7, 2014 at 20:07
-
I just tried info-apropos. It seems to search all info doc, but elisp-index-search only search elisp manual. I tried to find the doc for elisp-index-search but wasn't successful. I learned about it by calling describe-key on the menu 【Help→Search Documentation→Lookup Subject in Elisp Manual…】– Xah LeeOct 7, 2014 at 20:09
More of a full text search but C-s (isearch-forward
) will search through the whole info document if you repeat enough times. I use it mostly as a desperation measure when I can't work out the actual term that appears in the index.
The closest I know of is searching the index by running Info-virtual-index
(bound to I
) from within the manual.
In addition to what others have mentioned, Icicles facilitates browsing and searching Info manuals.
Remember that
i
(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.Unfortunately, although
i
in vanilla index accepts a substring of an index entry as input (usingRET
), it does not provide substring, let along regexp, completion. In Icicle mode,i
in Info is bound toicicle-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 singlei
invocation you can visit any number of occurrences for any number of index entries.With Icicles, you can optionally have
i
and 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-s
orC-M-s
repeatedly to do this. This can be handy in cases wherei
does give you the help you want.With Icicles, you can limit searching to a particular set of nodes.
g
(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-s
to find each match of the content-search pattern within the node. And just as fori
,g
is a multi-command, which means that you can visit any number of nodes in a singleg
invocation.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
Go to EmacsDocs.org
Go to emacsdocs.org/docs/elisp/Emacs-Lisp where they've republished the Emacs Lisp docs in a readable way and added a decent full-text search engine to query its contents.
You can find the source on GitHub at tefkah/emacs-docs.
C-h r TAB RET
.C-h r
(commandinfo-emacs-manual
) reaches the Emacs manual, not the Elisp manual.TAB RET
brings you to the right place.C-h i 5
is shorter than bothC-h r TAB RET
andC-h i m elisp RET
.