La forma integrada de hacer esto es con registros.
Por ejemplo, use C-xrwapara guardar la configuración de ventana actual para registrar a.
Luego puede usar el enlace incorporado C-x1para ejecutardelete-other-windows
una vez que haya terminado de mirar el archivo único, use C-xrjapara volver a la configuración de ventana guardada en el registro a.
En breve:
C-xrwa (guardar configuración en el registro)
C-x1 (eliminar otras ventanas)
C-xrja (vuelva a aplicar la configuración de la ventana guardada)
Sin embargo, creo que los registros son difíciles de manejar, uso una pila de configuración de ventana personalizada para administrar mis configuraciones.
Tengo dos enlaces que empujan la configuración actual a la pila, y hacen estallar y aplican la configuración superior.
Entonces, en su escenario, realizaría mi enlace push, luego Cx 1, luego realizaría mi enlace pop.
Aquí está el código:
(defvar winstack-stack '()
"A Stack holding window configurations.
Use `winstack-push' and
`winstack-pop' to modify it.")
(defun winstack-push()
"Push the current window configuration onto `winstack-stack'."
(interactive)
(if (and (window-configuration-p (first winstack-stack))
(compare-window-configurations (first winstack-stack) (current-window-configuration)))
(message "Current config already pushed")
(progn (push (current-window-configuration) winstack-stack)
(message (concat "pushed " (number-to-string
(length (window-list (selected-frame)))) " frame config")))))
(defun winstack-pop()
"Pop the last window configuration off `winstack-stack' and apply it."
(interactive)
(if (first winstack-stack)
(progn (set-window-configuration (pop winstack-stack))
(message "popped"))
(message "End of window stack")))
A continuación, puede unirse winstack-push
a algo así C-cC-u, y winstack-pop
al C-cC-osaltar fácilmente alrededor.
Yo uso
winner-mode
. Aquí está mi configuración:No sé si hay una manera de marcar un diseño o algo así, pero ser capaz de cambiar continuamente al diseño anterior es suficiente para mí.
fuente
Emacs ofrece registros para guardar y aplicar datos como la configuración de su ventana actual, esto se puede hacer con
C-x r w
yC-x r j
. Sin embargo, este enfoque se vuelve difícil de manejar ya que debe recordar los registros de la ventana.Hay algunos paquetes para mejorar esto. iregister hace que esta característica básica sea más inspeccionable e interactiva. Los otros que conozco lo usan sin afectar los registros, como elscreen y escreen que usan la barra de encabezado para mostrar las pestañas. Los grupos de trabajo y los grupos de trabajo2 son dos enfoques más nuevos y más amplios para este problema. Personalmente, tampoco me gustó y, por lo tanto, escribí el mío que está en algún punto intermedio y es de esperar que tenga menos errores y complejidad.
fuente
(window-configuration-to-register "1")
como un comando en mi .emacs, pero no funcionóPuede guardar el diseño de la ventana actual en un registro y luego restaurarlo usando
jump-to-register
. El comandowindow-configuration-to-register
está vinculadoC-x r w
de forma predeterminada.Por ejemplo, cuando tiene sus ventanas organizadas de una manera útil, puede guardarlas para registrarlas
i
usando:C-x r w i
y restaurar el diseño más tarde usandoC-x r j i
.fuente
Zygospore proporciona una solución rápida para la situación en la que tiene varias ventanas abiertas y desea maximizar temporalmente una de ellas. Modifica el comportamiento de
C-x 1
. Cuando tiene varias ventanas abiertas, se comporta como el predeterminadodelete-other-windows
y elimina todas las ventanas excepto la que está viendo. Cuando lo golpeas de nuevo, restaura las otras ventanas.El modo ganador proporciona una solución más general, pero zygospore es excelente para hacer zoom temporalmente en una sola ventana en un marco. Lo mejor es que no utiliza ninguna combinación de teclas nueva: se redefine
C-x 1
de una manera muy intuitiva, por lo que no hay nuevas combinaciones para aprender.fuente
Esta es una pregunta interesante. Hace varios años investigué todas las soluciones. Solo workgroups2.el es lo suficientemente pesado como para cubrir todas las esquinas.
Pero la interfaz de usuario de workgroups2 es un desastre. Por ejemplo, si habilita el modo de grupo de trabajo (como sugiere el archivo README), el diseño anterior se cargará automáticamente durante el inicio de emacs. Eso hace que el inicio sea extremadamente lento CADA vez.
Mi solución es tratar los grupos de trabajo2 como una colección de API en lugar de una herramienta utilizable lista para usar. Así que cambio su interacción de UI predeterminada usando el modo ivy ( https://github.com/abo-abo/swiper ) de @ abo-abo
Alternar la ventana completa es fácil, usar las API del modo ganador es suficiente.
Aquí está el código completo (solo uso
M-x toggle-full-window
,M-x wg-create-workgroup
yM-x my-wg-switch-workgroup
también necesita instalar swiper, como mencioné anteriormente),fuente