Vim várias janelas / ocultar

9

Se eu tivesse x ou mais janelas abertas em uma sessão do VIM e quisesse ocultar rapidamente todas, exceto a ativa, por um momento, retorne as janelas ao layout que eu tinha para elas, como eu faria isso?

MageProspero
fonte
O plugin zoomwin faz isso.
precisa saber é o seguinte

Respostas:

8

No Vim 7 e posterior, você pode usar uma "página de guia" para isso (por exemplo, guia "estilo GUI"). Você pode usar o :tabcomando com :splitou :sbuffer:

:tab split
:tab sp      " shorter version

:tab sbuffer
:tab sb      " shorter version

Ambos splite sbufferfazem quase a mesma coisa quando usados ​​sem argumentos adicionais (divida o buffer atual). Você provavelmente desejará usá- splitlo se antecipar o desejo de carregar algum nome de caminho (possivelmente ainda não carregado) ( split path/to/some/file; embora você possa apenas usá-lo, :tabepois esse é o contexto de abrir uma nova guia); sbufferfacilita mudar para um buffer existente ( sb {bufnum}ou sb {bufname}).

Depois de abrir sua nova guia, você pode usar gTe gtalternar entre as guias resultantes (ou a GUI controla se você estiver usando uma versão da GUI do Vim). Quando terminar sua guia de janela única, basta :qfechar a janela (e, portanto, a guia) e retornar à guia original (com o layout original da janela), ou use :tabclose( :tabc), ou volte para a guia original e use :tabonly( :tabo)

Chris Johnsen
fonte
10

Uso CTRL-W _ para "empurrar" horizontalmente as outras janelas para fora do caminho, fazendo com que a janela atual se expanda para a maior área disponível. Use CTRL-W | para fazer o mesmo verticalmente. Tenho certeza de que provavelmente há uma maneira de fazer as duas coisas ao mesmo tempo, mas não percebi ou procurei. Procure em: ajuda CTRL-W

Para restaurá-los, faça CTRL-W =. Uma ressalva é que eles não são restaurados à sua configuração original. CTRL-W = realmente recalcula o melhor ajuste para todas as janelas na tela.

frogstarr78
fonte
Verifique se é um hack puro para implementar.
MageProspero
7

Até onde eu sei, não há como simplesmente alternar entre dois layouts de janela diferentes, mas você pode ocultar todas as outras janelas emitindo o comando :only(ou :on). Consulte a ajuda do Vim para este comando .

Kusalananda
fonte
2
Não é possível voltar ao layout anterior com isso. A resposta de Chris Johnsen também nos permite fazer isso.
Phani