Jak zmusić Emacsa, aby nie wyświetlał bufora w określonym oknie?
Moja konfiguracja okien wygląda następująco:
<code> +----------+-----------+ | | | | | | | | | | | | | | | | +-----------+ | | | +----------+-----------+ </code>
I używam dolnego prawego okna dla specjalnych wyświetlaczy (takich jak pomoc, uzupełnianie itp.), Ale emacs nalega na używanie tego okna, gdy wywołuję polecenia (find-file-other-window
itp.), które używajądisplay-buffer
i zmień rozmiar tego okna. Jest to denerwujące ... Czy jest jakiś sposób, w jaki mogę zmusić emacsa, aby nie używał tych okien? Myślałem o doradztwiedisplay-buffer
, ale jest to funkcja w c. Jakieś myśli na ten temat?
EDYTOWAĆ:
W oparciu o odpowiedź Treya, to właśnie dla mnie działa do tej pory:
<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>