Vim plusieurs fenêtres / masquer

9

Si j'ai eu x ou plusieurs fenêtres ouvertes dans une session VIM et que je voulais masquer rapidement toutes les fenêtres sauf la active pendant un moment, puis remettre les fenêtres dans la disposition que je leur avais, comment faire?

MageProspero
la source
Le plugin zoomwin fait cela.
Stabledog

Réponses:

8

Dans Vim 7 et versions ultérieures, vous pouvez utiliser une «page à onglet» pour cela (c'est-à-dire un onglet «de style GUI»). Vous pouvez utiliser la :tabcommande avec :splitou :sbuffer:

:tab split
:tab sp      " shorter version

:tab sbuffer
:tab sb      " shorter version

Les deux splitet sbufferfont presque la même chose lorsqu'ils sont utilisés sans arguments supplémentaires (diviser le tampon actuel). Vous voudrez probablement utiliser splitsi vous prévoyez de charger un nom de chemin (peut-être pas déjà chargé) ( split path/to/some/file; bien que vous puissiez simplement utiliser à la :tabeplace car c'est dans le contexte de l'ouverture d'un nouvel onglet); sbufferfacilite le passage à un tampon existant ( sb {bufnum}ou sb {bufname}).

Une fois votre nouvel onglet ouvert, vous pouvez utiliser gTet gtpour basculer entre les onglets résultants (ou les contrôles GUI si vous utilisez une version GUI de Vim). Lorsque vous avez terminé avec votre onglet de fenêtre unique, il suffit :qde fermer la fenêtre (et donc l'onglet) et de revenir à votre onglet d'origine (avec sa disposition de fenêtre d'origine), ou utilisez :tabclose( :tabc), ou revenez à votre onglet d'origine et utilisez :tabonly( :tabo).

Chris Johnsen
la source
10

J'utilise CTRL-W _ pour "pousser" horizontalement les autres fenêtres de manière à ce que la fenêtre en cours se développe dans la plus grande zone disponible. Utilisez CTRL-W | faire la même chose verticalement. Je suis sûr qu'il y a probablement un moyen de faire les deux à la fois, mais je ne l'ai pas remarqué ou cherché. Regardez dans: aidez CTRL-W

Pour les restaurer, faites CTRL-W =. Une mise en garde est cependant qu'ils ne sont pas restaurés à leur configuration d'origine. CTRL-W = recalcule en fait le meilleur ajustement pour toutes les fenêtres de l'écran.

frogstarr78
la source
Vérifiez qu'il s'agit d'un hack soigné à mettre en œuvre.
MageProspero
7

Pour autant que je sache, il n'y a aucun moyen de basculer simplement entre deux dispositions de fenêtres différentes, mais vous pouvez masquer toutes les autres fenêtres en exécutant la commande :only(ou :on). Voir l' aide de Vim pour cette commande .

Kusalananda
la source
2
Il n'est pas possible de revenir à la disposition précédente avec cela. La réponse de Chris Johnsen nous permet également de le faire.
Phani