A menudo, mis ventanas se dividen automáticamente hasta que decido arbitrariamente que el marco actual no tiene suficiente espacio para todos. Cuando esto ocurre, elimino manualmente una ventana, creo un marco y cambio a esa ventana eliminada. ¿Cómo puedo escribir una función elisp que haga esto?
Lo intenté:
(defun pop-window-into-frame ()
(interactive)
(delete-window)
(make-frame-command)
(switch-to-prev-buffer))
Pero por alguna razón, esto no hace lo que creo que debería.
Este comando, así como el siguiente, que no hace nada si la ventana seleccionada está sola en su marco, están disponibles en la biblioteca
frame-cmds.el
.fuente
(select-frame-set-input-focus fr)
al final funcionó.select-frame-set-input-focus
. En MS Windows, por ejemplo, obtiene el foco, por lo que no es necesario. Además, la descripción del comando no dice que el marco se enfoca. Si se desea, se puede crear un comando diferente que llame a esto y luego enfoque el marco.