this post was submitted on 24 Oct 2023
2 points (100.0% liked)

Emacs

312 readers
1 users here now

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

founded 1 year ago
MODERATORS
 

In a 2 window setup, is there a way to make all temporary popup buffers (help, compile, occur, etc) always open in a specific window?

For example, I have a left and right window. I do most of my work in the left window. When I lookup something in help it opens in the right window which is what I want.

But let's say I'm in the right window already and look up help, it will open in the left window. Is there a way to make it always open in the right?

top 5 comments
sorted by: hot top controversial new old
[–] JDRiverRun@alien.top 2 points 1 year ago

Not sure your definition of easy, but this kind of setup (and much more) is certainly possible: https://www.masteringemacs.org/article/demystifying-emacs-window-manager

[–] nv-elisp@alien.top 2 points 1 year ago (1 children)

Customize display-buffer-alist to your liking. There is an Emacs manual section devoted to it as well as several online tutorials.

[–] 7890yuiop@alien.top 1 points 1 year ago

The display-buffer-reuse-mode-window action may be convenient for this use-case.

Many of your modes-of-interest will be derivatives of special-mode so you may (or may not) find that specifying that as a catch-all is particularly useful.

[–] olikn@alien.top 1 points 1 year ago

I am looking for something similar, I also do my edits in the left window, if I open a read-only buffer (man page, help, helpfull, info ...) I would prefer it will always open on the right side. I can't help you, but I hope someone else can.

[–] Tibblediggins@alien.top 1 points 1 year ago

Thank you all for tips. My elisp skills are pretty poor so I'm having trouble figuring out how to make this work, even copying examples online. For example:

(add-to-list 'display-buffer-alist '("*help*"
                                     (display-buffer-reuse-window)
                                     (display-buffer-in-side-window . ((side . right)
                                                                       (window-width . 0.5)))))

(add-to-list 'display-buffer-alist '("*info*"
                                     (display-buffer-reuse-window)
                                     (display-buffer-in-side-window . ((side . right)
                                                                       (window-width . 0.5)))))

With that in my init.el, if I open emacs and look up "help" it creates a new window on the right, which is the default behavior so I can't say for sure if the code is doing anything. If I select a link in the help file (like the manual) that opens "info" it opens it back in the left window.

What am I doing wrong here?