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