Eu precisava editar muitos arquivos recentemente para uma pequena alteração em cada arquivo. Para acessar cada arquivo, naveguei no NERDtree e abri um arquivo após o outro. Ao abrir mais e mais arquivos, notei que meu uso de memória aumentou muito. Fechar o vim me devolveu muita memória.
Eu tenho alguns plugins instalados, mas acho que o motivo pelo qual o uso da minha memória aumentou drasticamente foi devido ao número de buffers que eu abri depois de algumas edições.
Existe uma maneira de limitar o número de buffers que o vim permite que sejam abertos ao mesmo tempo, fechando automaticamente os buffers antigos em relação ao tempo de edição?
b:variables
mass:plugin[bufid]
se o mantenedor do plug-in preferir não poluir ob:
"espaço para nome" público . Nesse caso, a exclusão do buffer não coletará necessariamente todas as variáveis / memória relacionadas.O seguinte deve responder sua pergunta.
Isso deve ser descartado em um plugin. Então, você terá que escolher como usá-lo.
fonte
Não sei como obter os buffers mais antigos em relação ao tempo de edição, mas, em vez disso, é possível tentar fechar os buffers mais antigos não editados. Algo como:
Notas:
vim.buffers
é uma lista de todos os buffers abertos na sessão atual, portanto, também inclui buffers não listados. Não é o mesmo que a lista retornada por:ls
.options['buflisted']
.options['modified']
vamos verificar se o buffer está modificado.N
é o número de buffers listados não modificados que você deseja abrir.Graças à resposta de Luc Hermitte, da qual aprendi como obter os carimbos de data e hora, você pode usar o seguinte, para eliminar primeiro o inativo mais antigo:
fonte
:let buffers = filter(range(0, bufnr('$')), 'buflisted(v:val) && ! getbufvar(v:val, "&modified")')
+:exe 'bw '.join(buffers, ' ')
bw
A ajuda do IIRC diz que você não deve usá-lo "a menos que saiba o que está fazendo". Eu não. :):bw
, e nunca:bd
. Eu nunca vi o ponto de excluir quase tudo de um buffer, mas na verdade não tudo.