Ok, eu estava apenas sendo um idiota. Eu não queria set bufhidden=hide
no meu vimrc - isso é apenas para um único buffer. Agora que eu mudei para set hidden
, tudo funciona como eu senti que deveria.
Eu recentemente mudei do Emacs para o Vim, então isso pode ser apenas um mal-entendido de como o Vim funciona.
Eu abri um arquivo no Vim e fiz algumas alterações, mas não salve-as. Em seguida, uso :e otherfile
para abrir um segundo arquivo e fazer algumas alterações nele. Novamente, sem salvar as alterações, gostaria de voltar ao primeiro buffer. Estou usando :bn
para isso, mas quando eu obtenho E37: No write since last change ...
. Se eu fizer :bn!
, poderei voltar ao primeiro buffer. Do primeiro buffer eu posso mudar de volta para o segundo buffer com um :bn
direto, mas eu tenho que fazer :bn!
para ir do segundo buffer para o primeiro toda vez.
Eu tenho set bufhidden=hide
no meu vimrc, mas se eu executar :set bufhidden?
no Vim, eu recebo bufhidden=
. Esse é o problema talvez?
Editar: reduzi o problema um pouco. No primeiro arquivo, :set bufhidden?
retorna bufhidden=hide
, mas no segundo arquivo, retorna bufhidden=
. O que há com isso? Estou sentindo falta de algo fundamental sobre os buffers Vim aqui?
Edit2: Ok, parece que set bufhidden=hide
se aplica apenas ao primeiro buffer aberto. Ele precisa ser explicitamente chamado nos buffers subsequentes. Eu devo estar perdendo completamente o ponto aqui, porque isso não parece útil.
Ok, eu estava apenas sendo um idiota. Eu não queria set bufhidden=hide
no meu vimrc - isso é apenas para um único buffer. Agora que eu mudei para set hidden
, tudo funciona como eu senti que deveria.