Quiero cerrar todas mis ventanas excepto la actual y maximizar el marco para poder ver rápidamente todo en el búfer en esa ventana, y luego volver a la configuración de mi ventana anterior. ¿Cómo haría para hacer esto?
Quiero cerrar todas mis ventanas excepto la actual y maximizar el marco para poder ver rápidamente todo en el búfer en esa ventana, y luego volver a la configuración de mi ventana anterior. ¿Cómo haría para hacer esto?
Respuestas:
Las diferentes secciones de texto que ves en tu Emacs son ventanas . Puede, por ejemplo, crear una nueva ventana con C-x 2
. Sí, esta terminología es confusa. Es anterior a la mayoría de los sistemas GUI, por lo que es comprensible si aún es confuso.
Pero una vez que sabemos que estamos hablando de Windows, podemos hacer los cambios que desee. Para deshacerse de todas las ventanas excepto en la que está ese punto, ejecutar C-x 1
, mapeado delete-other-windows
.
Luego, para volver a lo que tenía antes, hay una biblioteca bastante útil llamada modo ganador . Le permite deshacer y rehacer cambios en la configuración de su ventana.
Por lo tanto, habilite el modo ganador con M-x winner-mode
, y luego, después de llamar C-x 1
, puede presionar C-c left
para deshacer el cambio en la configuración de la ventana, configurando las ventanas nuevamente a lo que eran.
Si desea habilitar permanentemente el modo ganador, (winner-mode)
ingrese su archivo init.
El uso winner-mode
es útil, pero si realmente solo desea alternar entre una ventana y una configuración de múltiples ventanas, aquí hay algo que he usado antes:
(defvar window-split-saved-config nil)
(defun window-split-toggle-one-window ()
"Make the current window fill the frame.
If there is only one window try reverting to the most recently saved
window configuration."
(interactive)
(if (and window-split-saved-config (not (window-parent)))
(set-window-configuration window-split-saved-config)
(setq window-split-saved-config (current-window-configuration))
(delete-other-windows)))
Podría vincular eso a, por ejemplo, C-x 1
y usar esa misma tecla para alternar los estados.
Yo uso lo siguiente, copiado de la web. Es una forma rápida de salir de su configuración de ventana actual. Una vez que haya terminado, use exit-recursive-edit
para regresar.
;; http://www.emacswiki.org/emacs/RecursiveEditPreservingWindowConfig
;; inspired by Erik Naggum's `recursive-edit-with-single-window'
(defmacro recursive-edit-preserving-window-config (body)
"*Return a command that enters a recursive edit after executing BODY.
Upon exiting the recursive edit (with\\[exit-recursive-edit] (exit)
or \\[abort-recursive-edit] (abort)), restore window configuration
in current frame."
`(lambda ()
"See the documentation for `recursive-edit-preserving-window-config'."
(interactive)
(save-window-excursion
,body
(recursive-edit))))
(global-set-key (kbd "C-c 0") (recursive-edit-preserving-window-config (delete-window)))
(global-set-key (kbd "C-c 1") (recursive-edit-preserving-window-config
(if (one-window-p 'ignore-minibuffer)
(error "Current window is the only window in its frame")
(delete-other-windows))))