Make *Help*
use a dedicated window.
One easy way to do this is to customize option special-display-buffer-names
to add "*Help*"
to the list value. Takes about 20 seconds...
(And yes, I don't support the idea that this option is "obsolete", personally. It should continue to be supported forever, just like the other special-display-*
options. That we now have a fine general tool for doing this and much more, display-buffer-alist
is not a good reason to forego the simple, easy-to-use special-display-*
options. Just one opinion.)
C-h v special-display-buffer-names
:
List of names of buffers that should be displayed specially.
Displaying a buffer with display-buffer
or pop-to-buffer
, if
its name is in this list, displays the buffer in a way specified
by special-display-function
. special-display-popup-frame
(the default for special-display-function
) usually displays
the buffer in a separate frame made with the parameters specified
by special-display-frame-alist
. If special-display-function
has been set to some other function, that function is called with
the buffer as first, and nil as second argument.
Alternatively, an element of this list can be specified as
(BUFFER-NAME FRAME-PARAMETERS)
, where BUFFER-NAME
is a buffer
name and FRAME-PARAMETERS
an alist of (PARAMETER . VALUE)
pairs.
special-display-popup-frame
will interpret such pairs as frame
parameters when it creates a special frame, overriding the
corresponding values from special-display-frame-alist
.
As a special case, if FRAME-PARAMETERS
contains (same-window . t)
special-display-popup-frame
displays that buffer in the
selected window. If FRAME-PARAMETERS
contains (same-frame . t)
,
it displays that buffer in a window on the selected frame.
If special-display-function
specifies some other function than
special-display-popup-frame
, that function is called with the
buffer named BUFFER-NAME
as first, and FRAME-PARAMETERS
as second
argument.
Finally, an element of this list can be also specified as
(BUFFER-NAME FUNCTION OTHER-ARGS)
. In that case,
special-display-popup-frame
will call FUNCTION
with the buffer
named BUFFER-NAME
as first argument, and OTHER-ARGS
as the
second.
Any alternative function specified here is responsible for
setting up the quit-restore parameter of the window used.
If this variable appears "not to work", because you added a
name to it but the corresponding buffer is displayed in the
selected window, look at the values of same-window-buffer-names
and same-window-regexps
. Those variables take precedence over
this one.
See also special-display-regexps
.
You can customize this variable.
switch-to-buffer-preserve-window-point nil
. I had some troubles with buffers and windows after migrated to emacs26.