Comutação de buffers no Vim

2

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.

    
por Skilldrick 09.11.2010 / 15:06

1 resposta

3

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.

    
por Skilldrick 09.11.2010 / 15:33