reddit / emacs

Help with using Info in Emacs

polaris64 · 2022-11-09 07:59
I've never quite figured out how to search for Info nodes reliably in Emacs. I understand that Emacs is self-documenting and that the Info system is very comprehensive, so I always try to use Emacs and Info to search for answers before resorting to a web search. However I sometimes find it quite difficult to find what I need which makes me feel like I'm missing something. I was reading the Emacs development mailing list this morning and came across messages about "EUDC", but I didn't know what that was. So I hit `C-h i` to run `info`. I first tried `m` to select a manual, but EUDC did not appear in this list. I assumed that it would be part of the Emacs manual, so I tried to select "Emacs" from this list but that too did not appear. I closed `info` and instead hit `C-h r` to run `info-emacs-manual` and I then searched through the list from `m` for EUDC but found nothing. I then tried `i` (`Info-index`) but again EUDC did not appear in the list. I then tried `a` (`info-apropos`) but again nothing was found for "EUDC". Finally I got somewhere with `s` (`Info-search`); this took me to a page "33.4.2 Mail Header Editing" which had a comment about EUDC at the very bottom. There finally I saw the text "see EUDC (eudc)" which was a link to the correct "Emacs Unified Directory Client" info page. As you can see, my method for finding the correct Info manual was far from optimal. My question therefore is, what is the correct way of finding manuals like this using Info in Emacs?
bhrgunatha · 2022-11-09 09:11
I'd say you can use info pretty well. What version of emacs are you using? I think EUDC is quite new and the manuals probably haven't been updated to fully include it in older versions. For what it's worth using a recent build of emacs from master (29.0.50) . `C-h i` has and EUDC entry right there at the top level. `m eudc` returns a single result which then shows the `Emacs Unified Directory Client` info document. Looking up some random function e.g. `M-x eudc-expand-try-all` displays documentation that states: Probably introduced at or before Emacs version **29.1** which will be the first officially released version of emacs 29 probably later this year.
franburstall · 2022-11-09 09:13
This is odd: I get a lot of hits for `info-apropos EUDC`.
polaris64 · 2022-11-09 09:26
This is all I get: - File: *Apropos*, Node: Index for ‘EUDC’, Up: Top Apropos Index Index entries that match ‘EUDC’: No matches found.
polaris64 · 2022-11-09 09:34
>I'd say you can use info pretty well. Thanks! :) >What version of emacs are you using? I usually use 28.2 but this example was in Emacs 29.0.50 from the head of master. >`C-h i` has and EUDC entry right there at the top level. `m eudc` returns a single result which then shows the `Emacs Unified Directory Client` info document. Hmm there must be something strange happening then. I don't see an EUDC entry anywhere on the `C-h i` page and there are no matches for `m eudc`. It's odd though because the EUDC info manual does exist because I can read it if I evaluate `(info "eudc")` (which I eventually found via the method in my post). This happens for other things too like `modus-themes`, which I think have been a part of Emacs since 28.1. If I evaluate `(info "modus-themes")` then I can see the manual but it doesn't appear in apropos, the index or the menu.
polaris64 · 2022-11-09 09:46
I've just checked `/usr/local/share/info` and I can see both `eudc.info.gz` and `modus-themes.info.gz`. So they're definitely there, but I don't know why I can't find them without knowing their names first, very strange!
polaris64 · 2022-11-09 10:22
Ah... $ strace -e trace=openat info -k 'EUDC' [...snip...] openat(AT_FDCWD, "/usr/share/info/dir", O_RDONLY) = 3 openat(AT_FDCWD, "/usr/local/share/info/dir", O_RDONLY) = 3 [...snip...] $ ls -l /usr/local/share/info/dir lrwxrwxrwx 1 root root 60 Sep 26 07:39 /usr/local/share/info/dir -> /var/guix/profiles/per-user/root/current-guix/share/info/dir I have GNU Guix installed on a foreign distribution (Arch) and it looks like this provides its own `dir` file. Examining this file shows that only Guix-related info nodes are present. `/usr/share/info/dir` is unaffected and contains all of the system-level nodes. So this is my best guess at the moment: info no longer knows about nodes installed under `/usr/local/share/info` as the `dir` file is overridden by Guix. So this doesn't look like an Info/Emacs issue after all. Surely just installing Guix on a foreign distribution shouldn't override whatever info nodes are installed by other means?
bhrgunatha · 2022-11-09 10:26
Oh, that's weird. What does your top level show after `C-h i` I see the built-in documents and packages I've installed that provide an info manual: File: dir, Node: Top This is the top of the INFO tree This (the Directory node) gives a menu of major topics. Typing "q" exits, "H" lists all Info commands, "d" returns here, "h" gives a primer for first-timers, "mEmacs<Return>" visits the Emacs manual, etc. In Emacs, you can click mouse button 2 on a menu item or cross reference to select it. * Menu: Emacs * BNF Mode: (bnf-mode). Major mode for editing BNF grammars. * Company: (company). A modular text completion framework. * Ef-Themes: (ef-themes). Colorful and legible themes. * Geiser: (geiser). Emacs environment for Scheme hacking. * Haskell Mode: (haskell-mode). Haskell Development Environment for Emacs(en) * Magit: (magit). Using Git from Emacs with Magit. * Magit-Section: (magit-section). Use Magit sections in your own packages. * Modus Themes: (modus-themes). Elegant, highly legible and customizable themes. * Racket Mode: (racket-mode). Edit and REPL major modes for Racket lang. * RG: (rgel.info). Search like a King with ripgrep in Emacs. * Ivy: (ivy). Using Ivy for completion. * Transient: (transient). Transient Commands. * use-package: (use-package). Declarative package configuration for Emacs. * Dash: (dash.info). A modern list library for GNU Emacs. * With-Editor: (with-editor). Using the Emacsclient as $EDITOR. * Compat: (compat). Compatibility Library for Emacs Lisp. * Emacs: (emacs). The extensible self-documenting text editor. * Emacs FAQ: (efaq). Frequently Asked Questions about Emacs. * IDN Library: (libidn)Emacs API. Emacs API for IDN functions. * CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, Java, Pike, AWK, and CORBA IDL code. * IDLWAVE: (idlwave). Major mode and shell for IDL files. * Octave mode: (octave-mode). Emacs mode for editing GNU Octave files. * Org Mode: (org). Outline-based notes management and organizer. * VHDL Mode: (vhdl-mode). Emacs mode for editing VHDL code. * nXML Mode: (nxml-mode). XML editing mode with RELAX NG support. * Elisp: (elisp). The Emacs Lisp Reference Manual. * Emacs Lisp Intro: (eintr). A simple introduction to Emacs Lisp programming. * Auth-source: (auth). The Emacs auth-source library. * CL-Lib: (cl). Partial Common Lisp support for Emacs Lisp. * D-Bus: (dbus). Using D-Bus in Emacs. * Emacs MIME: (emacs-mime). Emacs MIME de/composition library. * SMTP: (smtpmail). Emacs library for sending mail via SMTP. * URL: (url). URL loading package. * Widget: (widget). The "widget" package used by the Emacs Customization facility. * Autotype: (autotype). Convenient features for text that you enter frequently in Emacs. * Bovine: (bovine). Semantic bovine parser development. * Calc: (calc). Advanced desk calculator and mathematical tool. * Dired-X: (dired-x). Dired Extra Features. * EDE: (ede). The Emacs Development Environment. * EDT: (edt). An Emacs emulation of the EDT editor. * EIEIO: (eieio). An objects system for Emacs Lisp. * ERT: (ert). Emacs Lisp regression testing tool. * EWW: (eww). Emacs Web Wowser * EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard. * Ebrowse: (ebrowse). A C++ class browser for Emacs. * Ediff: (ediff). A visual interface for comparing and merging programs. * Eglot: (eglot). Language Server Protocol client for Emacs. * Eshell: (eshell). A command shell implemented in Emacs Lisp. * Flymake: (flymake). A universal on-the-fly syntax checker. * Forms: (forms). Emacs package for editing data bases by filling in forms. * Htmlfontify: (htmlfontify). Convert source code to html. * Ido: (ido). Interactively do things with buffers and files. * PCL-CVS: (pcl-cvs). Emacs front-end to CVS. * RefTeX: (reftex). Emacs support for LaTeX cross-references and citations. * Remember: (remember). Simple information manager for Emacs. * SES: (ses). Simple Emacs Spreadsheet. * SRecode: (srecode). Semantic template code generator. * Semantic: (semantic). Source code parser library and utilities. * Speedbar: (speedbar). File/Tag summarizing utility. * Todo Mode: (todo-mode). Make and maintain todo lists. * VIP: (vip). An obsolete VI-emulation for Emacs. * VIPER: (viper). A VI-emulation mode for Emacs. * Wisent: (wisent). Semantic Wisent parser development. * WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man". * vtable: (vtable). Variable Pitch Tables. * ERC: (erc). Powerful and extensible IRC client for Emacs. * EUDC: (eudc). Emacs client for directory servers (LDAP, BBDB). * Emacs GnuTLS: (emacs-gnutls). The Emacs GnuTLS integration. * Gnus: (gnus). The newsreader Gnus. * MH-E: (mh-e). Emacs interface to the MH mail system. * Mairix: (mairix-el). Emacs interface to the Mairix mail indexer. * Message: (message). Mail and news composition mode that goes with Gnus. * Newsticker: (newsticker). A feed reader for Emacs. * PGG: (pgg). An obsolete Emacs interface to various PGP implementations. * Rcirc: (rcirc). Internet Relay Chat (IRC) client. * SASL: (sasl). The Emacs SASL library. * SC: (sc). Supercite lets you cite parts of messages you’re replying to, in flexible ways. * Sieve: (sieve). Managing Sieve scripts in Emacs. * Tramp: (tramp). Transparent Remote Access, Multiple Protocol Emacs remote file access via ssh and scp. ... ... then a whole bunch of system info documents.
polaris64 · 2022-11-09 10:41
Mine just shows Emacs (with headings for external packages that I've installed), then Guix-related sections, then the system info documents. I think that's caused by Guix (see [my comment below](https://www.reddit.com/r/emacs/comments/yqc9ft/comment/ivo00d5/?utm_source=share&utm_medium=web2x&context=3)). So it looks like Emacs knows about the packages that I've installed (e.g. evil) as well as the system packages, but not those in `/usr/local/share/info` because of Guix.
eli-zaretskii · 2022-11-09 14:35
Something is wrong with your installation of Info manuals. I type `M-x info-apropos RET EUDC RET` and get a 60-line menu of links to EUDC-related issues, all of them pointing into the `eudc` manual which comes with Emacs. So you need to take this up with whoever prepared the distro you are using. Maybe you need to install more manuals or something. In any case`M-x info-apropos` *is* the right way of finding stuff in the case like yours.
polaris64 · 2022-11-09 14:52
>In any case `M-x info-apropos` *is* the right way of finding stuff in the case like yours. Thanks for the confirmation, at least I'm not doing anything wrong! &#x200B; >Something is wrong with your installation of Info manuals. Yes, it appears to be GNU Guix which is overriding the info `dir` file. I've [raised an issue](https://www.reddit.com/r/GUIX/comments/yqfx9w/guix_installation_on_a_foreign_distro_arch/) in /r/GUIX to see if I can get any further help.
sneakpeekbot · 2022-11-09 14:53
Here's a sneak peek of /r/GUIX using the [top posts](https://np.reddit.com/r/GUIX/top/?sort=top&t=year) of the year! \#1: [I Love Arch, But GNU Guix Is My New Distro](https://boilingsteam.com/i-love-arch-but-gnu-guix-is-my-new-distro/) | [10 comments](https://np.reddit.com/r/GUIX/comments/qwp8gu/i_love_arch_but_gnu_guix_is_my_new_distro/) \#2: [5 Reasons to Try Guix in 2022](https://www.youtube.com/watch?v=7ZdMRLPZhFs) | [8 comments](https://np.reddit.com/r/GUIX/comments/rxbq9a/5_reasons_to_try_guix_in_2022/) \#3: [In-built docker image support is truly an amazing feature](https://i.redd.it/kiu8rthup5181.png) | [5 comments](https://np.reddit.com/r/GUIX/comments/qzmlft/inbuilt_docker_image_support_is_truly_an_amazing/) ---- ^^I'm ^^a ^^bot, ^^beep ^^boop ^^| ^^Downvote ^^to ^^remove ^^| ^^[Contact](https://www.reddit.com/message/compose/?to=sneakpeekbot) ^^| ^^[Info](https://np.reddit.com/r/sneakpeekbot/) ^^| ^^[Opt-out](https://np.reddit.com/r/sneakpeekbot/comments/o8wk1r/blacklist_ix/) ^^| ^^[GitHub](https://github.com/ghnr/sneakpeekbot)
franburstall · 2022-11-09 17:27
This suggests that yr emacs installation is broken is some way.