Emacs Info Buffers: Putting the Manual Name Inside the Buffer Name (publ. 2024-10-11)

I always view info manuals inside of Emacs, and there are about a dozen advantages to doing that. But one thing that I find annoying in the default Emacs configuration is that the info buffer name does not include the manual name. To clarify: the manual name is shown on the mode line, but it is not part of the buffer name itself. Consequently if you have multiple info buffers open — very common in my case — and you want to switch to the buffer you opened for the elisp manual, the buffer completion list might show something like info, info<1>, info<2>, which is not very helpful.

This snippet of elisp will but the info manual name — or, more precisely, the manual's file name — into the buffer name:

(add-hook
 'Info-selection-hook
 (lambda ()
   (rename-buffer
    (concat
     "*info "
     (replace-regexp-in-string
      "\\..*\\'" ""
      (file-name-nondirectory Info-current-file))
     "*"))))

Caveat emptor: under some circumstances, like following a link from one manual to another manual, you might get an error related to buffer names. E.g., if you are in the Emacs manual and follow a link to the Elisp manual, but you already have another buffer open to the Elisp manual, you would get an error saying that the buffer name "info elisp is already in use. I imagine there are a few ways to fix this with some error handling, but I'm not sure if I'll get around to coding that.

Copyright

This work © 2024 by Christopher Howard is licensed under Attribution-ShareAlike 4.0 International.

=> CC BY-SA 4.0 Deed

Proxy Information
Original URL
gemini://gem.librehacker.com/gemlog/starlog/20241011-0.gmi
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
803.048092 milliseconds
Gemini-to-HTML Time
0.307912 milliseconds

This content has been proxied by September (ba2dc).