Mi configuración de las ventanas se ve así:¿Cómo forzar a Emacs a no mostrar el búfer en una ventana específica?
+----------+-----------+
| | |
| | |
| | |
| | |
| | |
| +-----------+
| | |
+----------+-----------+
Y uso la ventana inferior derecha para pantallas especiales (como ayuda, terminación, etc.), pero emacs insiste en usar esa ventana cuando llamo comandos (find-file-other-window
, etc. .) que usan display-buffer
, y cambiar el tamaño de esa ventana también. Es molesto ... ¿Hay alguna manera de forzar a emacs a NO usar esa ventana? Estaba pensando en avisar display-buffer
, pero es una función en c. Tiene alguna idea sobre esto?
EDIT:
Basado en gran medida de la respuesta de Trey, esto es lo que funciona para mí hasta ahora:
(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))))))
Vi la otra pregunta y de hecho usé su solución; pero mi pregunta no es la misma No estoy pidiendo forzar a emacs a usar una ventana, sino a emacs para NO usar una ventana específica. – polyglot
Correcto, no creo que Emacs tenga la capacidad de excluir ventanas, por lo que tendrá que usar una versión modificada para excluir la ventana inferior derecha de la lista de ventanas. Noté que olvidé hacer eso en mi apuración de cortar/pegar, déjame actualizar eso. –
Cuando lo hace (ventanas del automóvil), en realidad devuelve las ventanas actuales. Pero (car (cdr windows)) funcionará perfectamente. También (- (frame-height) 2) a veces encuentra el mini-buffer en su lugar (ya que a veces se expande a 2 líneas), así que uso 4 en vez de 2. – polyglot