1

I have been using MSYS2 to run Emacs. I would like to read the info documentation on E-LISP on my computer but the root node doesn't have any Emacs section. The menu command says there is [No match] for Emacs.

I haven't found a package on Emacs for the info files, nor has pacman been fruitful. Is there a package I'm forgetting? Do I simply need to accept that I have to read online documentation?

I have msys/info 6.6-1 (base) [installed]. I have GNU Emacs 26.2 (build 1, x86_64-w64-mingw32) of 2019-06-03.

2 Answers 2

1

You can download the elisp reference manual from https://www.gnu.org/software/emacs/manual/info/elisp.info.gz - or at least you would be able to if the GNU web site were up.1

Then look at the variable Info-directory-list. It shows the directories where Emacs is looking for Info files. Put the file into one of those directories, and it should show up.

(If you already have an *info* buffer open, you need to kill it and open it again for Emacs to notice the new manual.)

This is a very generic answer - I'm sure there's a way to get MSYS2 to install the manual, but I don't know it.


1 According to https://quitter.im/fsfstatus:

Most of the FSF sites are now going down for a migration to a new colocation facility. We hope to be back in a few hours. Thanks for your patience! : )
4:26 pm - 1 July 2019

2
  • I see that one of the values is "C:\\msys64\\usr\\share\\info". I added elisp.info.gz and emacs.info.gz. I also tried the .info versions of the files. After restarting Emacs from the MSYS2 terminal info still doesn't display the Emacs or a *lisp menu. Any idea what I did wrong or how a configuration value could show the downloaded files?
    – haleonj
    Jul 2, 2019 at 18:13
  • 1
    No idea, I'm afraid. One thing you can do is starting Info with a prefix command: C-u C-h i. That lets you choose the info file you want to view.
    – legoscia
    Jul 3, 2019 at 9:03
2

The problem is that MSYS overrides the INFOPATH environment variable, and doesn't properly translate trailing colons in its value (see https://lists.gnu.org/archive/html/help-gnu-emacs/2019-05/msg00000.html and followups).

Add this to your init file to work around it:

(with-eval-after-load 'info
  (info-initialize) ; Consult INFOPATH.
  ;; Always add the default value, regardless of what INFOPATH says.
  (dolist (info-dir (Info-default-dirs))
    (add-to-list 'Info-directory-list info-dir)))
9
  • That looked so promising, but it doesn't work. I put the code into my .emacs file with all the other code, ran C-x C-e and that didn't nor did a restart reveal any different results in the root info page.
    – haleonj
    Jul 5, 2019 at 12:41
  • I'm not getting any help finding info-dir using C-h C-v. Are lists not discoverable as variables?
    – haleonj
    Jul 5, 2019 at 12:42
  • I think you meant to capitalize it and give a different variable: Info-directory-list.
    – haleonj
    Jul 5, 2019 at 12:43
  • 2
    @haleonj hmm, works for me (and yes, I tested from MSYS2). info-dir is a local variable of the dolist (so you won't find any docs for it), Info-directory-list is passed to add-to-list within the loop. "any different results in the root info page" - did you try scrolling down a bit? The Emacs mauals don't get put at the top. Or just try C-h r to jump to Emacs' manual directly.
    – npostavs
    Jul 5, 2019 at 13:03
  • C-h r works! I found a link to Emacs Lisp, and that works too! I think it's strange that neither are menu items in the root menu, but I'll take the win.
    – haleonj
    Jul 5, 2019 at 13:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.