Vim múltiples ventanas / ocultar

9

Si tuviera x o más ventanas abiertas en una sesión de VIM y quisiera ocultar rápidamente todas, excepto la activa, por un momento y luego regresar las ventanas al diseño, las tendría en int ¿cómo lo haría?

MagoProspero
fuente
El complemento zoomwin hace esto.
Stabledog

Respuestas:

8

En Vim 7 y versiones posteriores, puede utilizar una "página de pestaña" para esto (es decir, pestaña "estilo GUI"). Puede usar el :tabcomando con :splito :sbuffer:

:tab split
:tab sp      " shorter version

:tab sbuffer
:tab sb      " shorter version

Ambos splity sbufferhacen casi lo mismo cuando se usan sin argumentos adicionales (dividir el búfer actual). Probablemente querrá usarlo splitsi anticipa que quiere cargar algún nombre de ruta (posiblemente no cargado) ( split path/to/some/fileaunque podría usarlo :tabeen su lugar ya que esto es en el contexto de abrir una nueva pestaña); sbufferhace que sea más fácil cambiar a un búfer existente ( sb {bufnum}o sb {bufname}).

Una vez que tenga su nueva pestaña abierta, puede usar gTy gtcambiar entre las pestañas resultantes (o los controles de la GUI si está usando una versión de la GUI de Vim). Cuando haya terminado con su pestaña de ventana única, solo :qpara cerrar la ventana (y, por lo tanto, la pestaña) y volver a su pestaña original (con su diseño de ventana original), o use :tabclose( :tabc), o vuelva a su pestaña original y use :tabonly( :tabo)

Chris Johnsen
fuente
10

Utilizo CTRL-W _ para "empujar" horizontalmente las otras ventanas para que la ventana actual se expanda al área más grande disponible. Utilice CTRL-W | hacer lo mismo verticalmente. Estoy seguro de que probablemente haya una manera de hacer ambas cosas a la vez, pero no lo he notado ni lo he buscado. Buscar en: ayuda CTRL-W

Para restaurarlos, haga CTRL-W =. Sin embargo, una advertencia es que no se restauran a su configuración original. CTRL-W = en realidad vuelve a calcular el mejor ajuste para todas las ventanas en la pantalla.

frogstarr78
fuente
Verifique que sea un buen truco para implementar.
MageProspero
7

Hasta donde sé, no hay forma de cambiar simplemente entre dos diseños de ventana diferentes, pero puede ocultar todas las demás ventanas emitiendo el comando :only(o :on). Vea la ayuda de Vim para este comando .

Kusalananda
fuente
2
No es posible volver al diseño anterior con esto. La respuesta de Chris Johnsen nos permite hacer eso también.
Phani