Meine Fenster Konfiguration sieht wie folgt aus:Wie erzwinge ich, dass Emacs keinen Puffer in einem bestimmten Fenster anzeigt?
+----------+-----------+
| | |
| | |
| | |
| | |
| | |
| +-----------+
| | |
+----------+-----------+
Und ich verwende die untere rechte Fenster für spezielle Displays (wie Hilfe, Abschluss etc.), aber Emacs besteht auf das Fenster zu verwenden, wenn ich Befehle aufrufen (find-file-other-window
, etc .) das display-buffer
verwenden, und die Größe dieses Fensters auch ändern. Es ist nervig ... Gibt es eine Möglichkeit, dass ich emacs zwingen kann, diese Fenster NICHT zu benutzen? Ich dachte an Beratung display-buffer
, aber es ist eine Funktion in c. Irgendwelche Gedanken dazu?
EDIT:
Basierend stark auf Trey Antwort, das ist was für mich so weit:
(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))))))
Ich sah die andere Frage und tatsächlich Ihre Lösung verwendet; aber meine Frage ist nicht die gleiche. Ich frage nicht, Emacs zu zwingen, ein Fenster zu verwenden, sondern auf Emacs, um ein bestimmtes Fenster NICHT zu verwenden. – polyglot
Richtig, ich denke nicht, dass Emacs Windows ausschließen kann, also müssen Sie eine modifizierte Version verwenden, um das Fenster unten rechts aus der Fensterliste auszuschließen. Ich bemerke, dass ich vergessen habe, das in meinem Cut/Paste Eile zu tun, lemme Update das. –
Wenn Sie (Autofenster) tun, gibt es tatsächlich die aktuellen Fenster zurück. Aber (Auto (CDR Windows)) wird perfekt funktionieren. Auch (- (frame-height) 2) findet manchmal stattdessen den Mini-Puffer (da er manchmal auf 2 Zeilen erweitert wird), also benutze ich 4 statt 2. – polyglot