Wie kann ich Emacs zwingen, den Puffer nicht in einem bestimmten Fenster anzuzeigen?

Meine Windows-Konfiguration sieht folgendermaßen aus:

<code>          +----------+-----------+
      |          |           |
      |          |           |
      |          |           |
      |          |           |
      |          |           |
      |          +-----------+
      |          |           |
      +----------+-----------+
</code>

Und ich benutze das untere rechte Fenster für spezielle Anzeigen (wie Hilfe, Vervollständigung usw.), aber Emacs besteht darauf, dieses Fenster zu verwenden, wenn ich Befehle aufrufe (find-file-other-windowusw.), die verwendendisplay-bufferund ändern Sie auch die Größe dieses Fensters. Es ist ärgerlich ... Gibt es eine Möglichkeit, Emacs dazu zu zwingen, diese Fenster NICHT zu verwenden? Ich dachte darüber nach zu beratendisplay-buffer, aber es ist eine Funktion in c. Irgendwelche Gedanken dazu?

BEARBEITEN:

Basierend auf Treys Antwort funktioniert das für mich bisher:

<code>(setq special-display-function 'my-display-buffer)
(setq special-display-regexps '(".*"))

(defun display-special-buffer (buf)
  "put the special buffers in the right spot (bottom rigt)"
    (let ((target-window (window-at (- (frame-width) 4) (- (frame-height) 4)))
          (pop-up-windows t))
      (set-window-buffer target-window buf)
      target-window))

(defun my-display-buffer (buf)
  "put all buffers in a window other than the one in the bottom right"
  (message (buffer-name  buf))
  (if (member (buffer-name buf) special-display-buffer-names)
      (display-special-buffer buf)
      (progn
        (let ((pop-up-windows t)
              (windows (delete (window-at (- (frame-width) 4) (- (frame-height) 4))
                         (delete (minibuffer-window) (window-list)))))
          (message (buffer-name (window-buffer (car windows))))
          (set-window-buffer (car (cdr windows)) buf)
          (car (cdr windows))))))
</code>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage