Questão Vim: como fazer buffers dividir automaticamente o espaço uniformemente no redimensionamento da janela


Agora, quando eu aumentar o tamanho da janela no vim (rodando a partir do terminal), um buffer recebe todo o espaço extra enquanto o outro permanece amassado. Existe uma maneira de redimensionar automaticamente os buffers para que cada buffer fique metade do tamanho da janela (ou 1 / N espaço para N buffers).


3


origem




Respostas:


Boa pergunta! Eu nunca tinha pensado nisso, mas agora que penso nisso, a mesma coisa me incomodou também!

Você pode usar a combinação de teclas ctrl-w= para redimensionar todas as divisões para o tamanho apropriado. A partir de :help CTRL-W_=

                        *CTRL-W_=*
CTRL-W =    Make all windows (almost) equally high and wide, but use
        'winheight' and 'winwidth' for the current window.
        Windows with 'winfixheight' set keep their height and windows
        with 'winfixwidth' set keep their width.

No entanto, isso é chato ter que fazer toda vez que você redimensionar sua tela. Você pode automatizar isso com autocommands:

autocmd WinResize * wincmd =

Isso fará com que toda vez que você redimensionar o vim, automagicamente pressione ctrl-w= para você, para que você não tenha que se preocupar com isso.

Confirmei que isso funciona nas versões terminal e GUI.

Essa é uma ótima configuração. Na verdade, acabei adicionando-o às minhas configurações pessoais, então obrigado por fazer esta pergunta!


2



Não prob, obrigado pela resposta detalhada. Ainda bem que minha ignorância poderia ser útil! - Rdesmond
Eu não tenho WinResize evento no Vim 8.0.0019, instalado via Homebrew 1.0.6-31-gfaebc64. Eu era no entanto capaz de usar o VimResized evento. - David Kennedy