Como posso maximizar uma janela dividida?

110

Invocando :helpno Vim, obtive a página de manual de ajuda com janela dividida. Quero maximizar a janela do manual de ajuda e fechar a outra janela.

Como posso fazer isso? Qual é o comando do Vim para fazer isso?

evitativamente
fonte

Respostas:

88

Com : help [tópico] você abre um tópico de seu interesse.
Ctrl-Wo irá minimizar as outras janelas (deixando apenas a janela de ajuda aberta / maximizada).
(Ctrl-Wo significa segurar Ctrl, pressione W e depois o)

Torre
fonte
39
ou,: apenas fará o trabalho.
provavelmente
14
Do arquivo de edição, como posso voltar ao manual de ajuda depois de fazer CTRL + W o?
provavelmente
3
@guru: C-w, ^, :buf OtherFile.txt, :sbuf Otherfile.txtetc. (ver ajuda para wincmd, switchbufpara mais detalhes). O engraçado é que minha resposta correta (IMHO) ainda não tinha sido dada ...
ver
2
@ldigas: essa é uma opinião (surpreendente). A menos que você cite uma fonte confiável, considerarei isso como sua preferência pessoal, na verdade. Normalmente não os uso, mas descobri recentemente que os estou usando para coisas como esta (maximizando um sidebuffer temporariamente; fazendo coisas poderosas como ter vários diffs lado a lado separados em uma única sessão do vim). As guias também são um milagre de usabilidade com gvim --remote. Estou sempre usando, se guioptions=agimporque prefiro a renderização de guias do tipo console.
ver
23
isto irá fechar outras janelas, e se você tiver uma ou mais janelas onde você fez alterações e não salvou, então isso não funcionará - também acho que a questão é sobre maximizar a janela para funcionar por um curto período de tempo naquele estado e depois voltar ao estado anterior - fechando todas as janelas, você terá que usar seu arquivo de sessão ou abrir manualmente todas as outras janelas para voltar
serup
133

Você pode usar Ctrl+WT( que é uma capitalT ) para mover qualquer janela aberta para sua própria guia.

Conforme mencionado por outros Ctrl+W_/ Ctrl+W|para maximizar dentro do layout da guia / janela atual (respeitando as configurações mínimas de altura / largura para várias outras janelas).

( Ctrl+W=redimensiona todas as janelas para o mesmo tamanho, respeitando as configurações mínimas de altura / largura)

Editar para o comentário

  1. iniciar o vim (por exemplo gvim /tmp/test.cpp)
  2. invocar ajuda :help various-motions- abre uma janela dividida
  3. mova a ajuda para uma guia separada maximizada: C-wT
  4. aproveite a leitura do bom manual :)
  5. mova a ajuda de volta para a guia original:

    mAZZ<C-w>S`A
    
    • mA: definir marca global A
    • ZZ: fechar o buffer / guia da ajuda
    • C-wS: dividir janela original
    • `A: pule para a marca A salva

Você pode evitar o uso de uma marca para buffers normais (sem ajuda). Deixe-me saber se você estiver interessado.

ver
fonte
4
Depois de obter a guia com CTRL + WT, como posso voltar para as janelas divididas originais?
provavelmente
2
@guru: basta alternar as guias como sempre (use Ctrl-PgUp, Ctrl-PgDownou :tabnext, :tabprev). Para fechar o novo (por exemplo, ajuda) guia, uso ZZ, Ctrl-W, C, :q, :clo, :tabcloseou qualquer outra forma, você geralmente perto janelas / tabs
sehe
1
Não, essa não era a questão. Suponha que você tenha duas guias, agora você quer nenhuma guia, você deseja que dois buffers como janelas divididas. Existe algum comando para fazer isso?
provavelmente
Editando questão com procedimento geral. ( Gostaria de acrescentar que o tom de seus comentários pode "No, that was not the question"soar um tanto hostil. Em linguagem escrita, pode soar como uma reprimenda. Tenho certeza de que você não quis dizer isso mal )
ver
@guru: a resposta é atualizada. Foi um pouco mais complicado do que o esperado, pois os buffers de ajuda são especiais (e você não pode usar :sbufcomo eu normalmente prefiro). Espero que isso ajude
ver
53

Você pode expandir uma janela até seu tamanho máximo usando Ctrl+W_(sublinhado). O tamanho final da janela expandida será restringido pelo valor da winminheightopção. Ao fechar a janela de ajuda, as janelas anteriores serão restauradas aos tamanhos anteriores.

Greg Hewgill
fonte
19
Ctrl+W o fecha as outras janelas, então elas desaparecem. É por isso que eu uso Ctrl+W _.
Greg Hewgill
2
Como posso recuperar as duas janelas divididas originais com o arquivo de edição e com o manual de ajuda?
provavelmente
3
O Ctrl+W =comando redimensiona as janelas para que tenham aproximadamente o mesmo tamanho.
Greg Hewgill de
14
Para divisões verticais, você vai querer usar Ctrl+W |.
Achal Dave
2
para quaisquer almas perdidas que acontecerem neste tópico ... para voltar às visualizações divididas, use ctrl+w = // isso torna todas as janelas do mesmo tamanho
duggi
19

Eu prefiro usar guias para isso. Usar

:tabedit %

para abrir um arquivo maximizado em uma nova guia, quando terminar, volte à configuração antiga com todas as janelas usando

:tabclose

Acho que é a solução ideal, pois funciona em conjunto com :cwo plugin Tagbar. Retirado de: vim.wikia

Azrael3000
fonte
13

Gosto de usar 'M' para maximizar e 'm' para minimizar.

Não ficará muito bem, pois reduzirá todas as outras janelas abertas que estão no mesmo buffer, mas descobri que é mais útil ao lidar com guias. Então, por exemplo, em vez de abrir uma nova guia para aquele arquivo e então ter que fechá-la após terminar de usá-la ou deseja minimizá-la.

nnoremap <C-W>M <C-W>\| <C-W>_
nnoremap <C-W>m <C-W>=

O motivo do nnoremap é que não me importo com o mapeamento recursivo, mas apenas o map também deve funcionar.

Gustavo Matias
fonte
1
Se você usar nnoremap <C-W>M <C-W>\|<C-W>_(sem o espaço depois |), o cursor não se moverá 1 em cada maximização.
rsanden
1
Eu gosto disso usando barra invertida ( nnoremap <C-W>\ <C-W>\|<C-W>_). É uma sensação natural com as ligações padrão |, _e =.
rsanden
6

Você pode obter a janela de ajuda em tamanho real sem fechar / redimensionar nenhuma outra janela usando

tab help {topic}

Isso abrirá a janela de ajuda em uma nova guia, outras janelas serão deixadas como estão (realmente redimensionadas para que a linha da guia possa ser exibida, mas esta é apenas uma linha adicional acima). Você pode fechar a ajuda como de costume: pelo menos :bw<CR>e <C-w>ctrabalhar para mim fechando uma nova guia também.

ZyX
fonte
5

Instale o plugin vim-maximizer , então você pode maximizar a janela atual e restaurar comF3

Searene
fonte
2

Para obter apenas o ajuda-se, em seguida, feche a outra janela, faça o seguinte: :helpCTRL-WCTRL-W:close. Então você terá apenas a ajuda para cima.

Jeff Ferland
fonte
1

no seu .vimrc, basta colocar

nmap - :res<CR>:vertical res<CR>$

Quando você quiser maximizar a janela atual, basta pressionar - no modo de comando. Pressione = quando quiser restaurar o último status de janela múltipla

Abençoado
fonte
2
Bom, mas = não restaura o 'último status'.
Majkinetor
1

De alguma forma, o plugin ZoomWin não funcionou para mim, agora vejo que existem outros plug-ins, mas já escrevi isso e me dá o efeito exato que eu queria (com uma pequena peculiaridade detalhada abaixo) :

function! ToggleZoom(zoom)
  if exists("t:restore_zoom") && (a:zoom == v:true || t:restore_zoom.win != winnr())
      exec t:restore_zoom.cmd
      unlet t:restore_zoom
  elseif a:zoom
      let t:restore_zoom = { 'win': winnr(), 'cmd': winrestcmd() }
      exec "normal \<C-W>\|\<C-W>_"
  endif
endfunction

augroup restorezoom
    au WinEnter * silent! :call ToggleZoom(v:false)
augroup END
nnoremap <silent> <Leader>+ :call ToggleZoom(v:true)<CR>

Use a tecla mapeada (Líder e + no meu caso) para alternar entre o layout maximizado / anterior. Se você mudar para outra divisão na mesma guia, a maximização será desativada.

Se você mudar as guias, a divisão permanece maximizada, embora de alguma forma não cubra mais a largura total completa, com as janelas minimizadas ganhando cerca de 4 colunas ou algo assim. De qualquer forma, funciona de forma aceitável para mim, mesmo com essa pequena peculiaridade.

editar: de alguma forma, ele funciona bem agora, deve ter bagunçado de alguma forma antes.

ata
fonte