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?elarson– elarson2014-10-07 20:07:18 +00:00Commented Oct 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 Lee– Xah Lee2014-10-07 20:09:12 +00:00Commented Oct 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
iin vanilla index accepts a substring of an index entry as input (usingRET), it does not provide substring, let along regexp, completion. In Icicle mode,iin 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 singleiinvocation 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-sorC-M-srepeatedly to do this. This can be handy in cases whereidoes 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-sto find each match of the content-search pattern within the node. And just as fori,gis a multi-command, which means that you can visit any number of nodes in a singleginvocation.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 RETbrings you to the right place.C-h i 5is shorter than bothC-h r TAB RETandC-h i m elisp RET.