Frequentemente, carregarei algumas informações em um buffer temporário e depois as fecharei :clo!
. Mas isso oculta o buffer em vez de descarregá-lo completamente, mesmo que eu tenha nohidden
definido. Acho isso cansativo, pois recebo uma confirmação extra ao sair do Vim, sobre o conteúdo que eu já (pensei ter) descartado.
Em :q!
vez disso, eu poderia usar , mas esse é um mau hábito, porque ele sairá completamente do Vim se houver apenas um buffer restante, o que também é irritante. Pior, se eu digitar :qa!
, poderia perder muito trabalho.
Existe um meio termo? Eu realmente gostaria de algum comando que mata o buffer atual, mas não sai do Vim. Não sou contra escrever no Vimscript, mas prefiro evitá-lo se o comando já existir.
fonte
:ls
é mais fácil (imo) para lembrar e faz o mesmo que:buffers
Você pode apagar completamente um buffer usando o comando: bwipeout (ou: bw). Isso remove completamente o buffer da memória, incluindo quaisquer marcas, configurações de opções etc. que você adicionou a ele. Da mesma forma,: bdelete (ou: bd) remove o buffer, mas o deixa na memória e mantém marcas e configurações de opções.
Conforme o comentário de Tom Hale, a documentação do Vim recomenda o uso de: bd over: bw, a menos que você saiba o que está fazendo. Eu costumo usar: bw porque gosto da idéia de remover completamente o buffer da memória e não uso muito de marcas, configurações de opções específicas do buffer, etc., a ponto de precisar que eles permaneçam após o fechamento do buffer.
Como o comando: quit (: q), o Vim apresentará um erro se o buffer tiver sido alterado. Para resolver isso, você pode acrescentar um ponto de exclamação após o comando para suprimir o prompt. Outra opção, em vez de adicionar pontos de exclamação a tudo, é adicionar "set confirm" ao seu vimrc. Com esse conjunto, o vim solicitará que você salve as alterações do arquivo ao fechar.
: bufdo é um comando útil que executa outro comando em todos os buffers ativos. A combinação do comando: bufdo com o comando: bw /: bd permite remover todos os buffers ativos de uma só vez. Ainda é possível usar o ponto de exclamação para suprimir erros, mas se você o colocar depois de: bufdo, after: bw ou after causa resultados diferentes para cada um:
Aqui estão alguns outros comandos úteis do buffer:
Há muito mais para lidar com buffer que está fora do escopo desta questão. Dê uma olhada em:
http://vim.wikia.com/wiki/Vim_buffer_FAQ http://vimdoc.sourceforge.net/htmldoc/windows.html#buffers
fonte
:bd
é preferido na maioria dos casos:bw
faz além de "Tudo relacionado ao buffer está perdido. Todas as marcas nesse buffer se tornam inválidas, as configurações de opções são perdidas etc.". Isso me parece perfeitamente razoável se eu quiser fechar um buffer como seria se eu deixasse o Vim completamente.