Eu tenho um monte de arquivos de texto em um diretório e sei que precisarei editar cada um individualmente.
Eu começo na linha de elogio com
vim *.txt
que abre os arquivos como buffers separados no vim e me deixa olhando para o primeiro. Eu o edito - depois uso ': w' para salvá-lo e ': bd' para fechar o buffer e passar para o próximo.
Isso ': w: bd' para salvar e fechar o buffer parece longo para mim, e eu suspeito que haja uma maneira mais vim ninja de fazê-lo - qual é a maneira recomendada de salvar e fechar o buffer em que você está trabalhando em um único golpe?
:next
buffer e gravar / fechar tudo assim que sua tarefa terminar:wqa
. Isso supõe que você tenha o:set hidden
seu~/.vimrc
.Respostas:
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
é o buffer atual e depois vai para:next
aquele.Você não precisa explicitamente de
:bdelete
um buffer, especialmente quando está iniciando o Vim a partir da linha de comando com um conjunto de arquivos e o encerra quando terminar. (As únicas exceções em que posso pensar são descarregar um arquivo enorme para economizar memória do sistema ou reutilizar uma única instância do GVIM para várias edições diferentes.)No entanto, se você realmente deseja isso, basta definir um comando personalizado, por exemplo
fonte
:w|bd
.:next
faça mais sentido em alguns casos.Embora eu concorde que você não precisa excluir os buffers abertos que não está usando no momento, gosto de excluí-los porque tenho a linha de guia da vim-airlines habilitada, que mostra todos os buffers abertos o tempo todo na parte superior do janela. Eu tenho o seguinte no meu
.vimrc
:qq
salva e fecha o buffer atual, mas também mexe com a funcionalidade "macro de registro" do vim (com a qual estou bem).fonte
ZZ
vem à mente, mas isso acaba salvando e saindo completamente do Vim, em vez de apenas excluir o buffer. Letras minúsculaszz
podem ser um mapeamento alternativo interessante, para quem acha as macros mais valiosas do que centralizar a exibição na linha atual do cursor.Q
, depois de perceber o quão valiosa a gravação no Vim pode ser.