Normalmente abro algumas janelas e mantenho alguns buffers abertos. Como o meu MO na exploração de buffer é usar atalhos rápidos para :bn
e :bp
, eu quero fechar buffers desnecessários para distrair minha navegação no buffer.
Mas a dor é, a emissão :bd
e :bw
resulta em fechar a janela também, caso eu tenha várias abertas. Como faço para fechar (excluir) um buffer e deixar as janelas intactas?
Solução inspirada na resposta de @ peth
:command! BW :bn|:bd#
É simples Não funciona bem com apenas um buffer aberto (o comportamento é diferente dependendo da maneira como abro os arquivos), mas não é um grande problema. :)
Eu brinquei um pouco com isso e finalmente consegui:
Aqui está a versão copiar / colar para o mapeamento de chaves:
Ou um comando para o seu .vimrc (ligue com: Bd):
Eu testei bastante e funciona de forma consistente em várias condições. Quando usado no último buffer, ele deixará um novo buffer em branco.
fonte
Uma janela é uma janela de exibição para um buffer. (Consulte
:help window
.) Você não pode ter uma janela sem um buffer associado. Você pode usar um comando como:enew
para substituir o conteúdo atual da janela por um buffer vazio.fonte
o plug- in bufkill.vim também funciona. Eu gosto de usá-lo com o vim-command-w para obter funcionalidades e detalhes adicionais (como fechará uma divisão se for o último buffer ou fecharemos o vim se for o último buffer / divisão).
fonte
Aqui está outra solução:
Digitar Ctrl + W e o silenciosamente criará uma nova janela e fechará a janela antiga. O cursor é deixado na nova janela. Há vários efeitos positivos:
fonte
Penso que o problema é que a maioria das pessoas espera que o buffer e a janela do vim sejam algo que não são.
As pessoas tendem a pensar em uma janela do vim como um processo independente que possui sua própria lista de buffers, mas, infelizmente, não é. Uma janela do vim é apenas uma viewport de seus buffers.
Portanto, muitos problemas surgem, como o seu problema ou o problema de uma janela diferente compartilhar a mesma lista de buffers, para que você não possa editar o Buffer 1 na Janela A e deixe a Janela B ignorar o Buffer 1 em sua lista de buffers.
Minha solução é abrir duas instâncias do vim, para que você possa ter o tipo de janela do vim que deseja. Funciona melhor em WMs lado a lado.
fonte
Normalmente, basta abrir o menu enquanto estiver em qualquer buffer. Isso abrirá o menu no painel esquerdo e o cursor estará ativo lá. Então, eu apenas volto para o buffer ativo e apago o buffer.
Depois disso, posso abrir outro arquivo no menu.
Meus passos é:
fonte