Vim esconder buffer como no emacs?

8

Estou tentando descobrir como o conceito vim de buffers, janelas e guias é mapeado no emacs.

Parece-me isso <c-w>se <c-w>vé aproximadamente equivalente ao Emacs C-x 2e C-x 3. Eles não são exatamente equivalentes, pois as divisões do vim são igualmente espaçadas por padrão e o emacs dividirá a janela atual.

Qual é o equivalente a C-x 0(fechar esta janela), C-x 1(fechar tudo, exceto esta janela) para o vim? Eu gostaria de poder ocultar os buffers que não estou procurando atualmente sem fechá-los, para que eles ainda possam ser convocados mais tarde com o bufexplorer ou algo semelhante.

Gregory Nisbet
fonte
3
:h CTRL-W_c, :h CTRL-W_o.
Sato Katsura

Respostas:

15

Por padrão, o Vim se recusará a substituir o buffer atual por outro se ele contiver alterações não salvas. Você precisará adicionar a opção abaixo ao seu vimrccaso não queira esse comportamento (e não o deseja):

set hidden

Buffers são o equivalente do Vim a documentos em outros programas. Quando você alterna para outro documento, alterna para outro buffer. Isso é feito com comandos como:

:b2            switch to buffer number 2
:b#            switch to previous buffer
:b foo<tab>    switch to buffer with foo in its name + tab completion
...

O Windows é uma abstração limitada criada sobre buffers. São viewports usadas para exibir buffers, mas não estão e não podem ser vinculadas a nenhum buffer específico . Mudar para uma janela ou fechar uma janela definitivamente não é o mesmo que mudar para o buffer ou fechar um buffer. Você pode trabalhar com janelas com os comandos listados em :help ctrl-w:

<C-w>s    split current window in two, focus on the new one
<C-w>c    close the current window
<C-w>o    closes all other windows
<C-w>p    switch to previous window
...

As páginas de guias são outra abstração limitada criada no Windows. São espaços de trabalho projetados para conter uma ou mais janelas. Como o Windows, eles não podem ser usados ​​como proxies de arquivo / documento.

Veja :help windowse :help tab-pagepara uma descrição completa.

romainl
fonte
2
Felizmente, Emacs (algo que o OP parece estar familiarizado com) tem um conceito tampão semelhante :)
VanLaser
4

Janela fechada: Ctrl-w c

Feche todas as outras janelas:, Ctrl-w o( opara "apenas")

Para mais informações vim aberta e digite o comando :help window. Veja particularmente as seções 3 e 4.

lwassink
fonte