Vim - salva e fecha o buffer em um comando

20

Eu tenho um monte de arquivos de texto em um diretório e sei que precisarei editar cada um deles individualmente.

Eu começo na linha de louvor com

vim *.txt

que abre os arquivos como buffers separados no vim e me deixa olhando para o primeiro. Eu edito - então eu uso ': w' para salvá-lo e ': bd' para fechar o buffer e passar para o próximo.

Esse ': w: bd' para salvar e fechar o buffer parece muito para mim, e eu suspeito que existe uma maneira mais ninja de fazê-lo - qual é a maneira recomendada de salvar e fechar o buffer em que você está trabalhando? sentiu swoop?

    
por Joe 26.01.2013 / 13:15

2 respostas

20

Ao passar os arquivos para o Vim na linha de comando, eles não são abertos apenas em buffers, mas também preenchem a lista de argumentos . Portanto, você pode usar comandos como :next e :first para navegar por eles (e :argdo para processamento em lote, que pode ser um truque bacana). O comando que eu recomendo para sua pergunta é :wnext (formato abreviado :wn ), que :write s é o buffer atual e depois vai para o :next one.

Você não precisa explicitamente :bdelete de um buffer, especialmente quando você está iniciando o Vim a partir da linha de comando com um conjunto de arquivos e depois o fecha quando você termina. (As únicas exceções que posso imaginar é descarregar um arquivo enorme para salvar a memória do sistema ou reutilizar uma única instância do GVIM para muitas edições diferentes.)

No entanto, se você realmente quiser isso, basta definir um comando personalizado, por exemplo,

:command Wd write|bdelete
    
por 26.01.2013 / 14:42
3

Embora eu concorde que você não tenha para excluir os buffers abertos que você não está usando no momento, eu gostaria de excluí-los porque eu tenho vim-airline ativada, que mostra todos os buffers abertos o tempo todo na parte superior da janela. Eu tenho o seguinte no meu .vimrc :

nnoremap qq :w\|bd<cr>

qq salva e fecha o buffer atual, mas também mexe com a funcionalidade de "macro de registro" do vim (o que me faz bem).

    
por 17.10.2016 / 21:52

Tags