Como editar vários arquivos usando o Editor Vim
Às vezes, você se encontrará em uma situação em que deseja fazer alterações em vários arquivos. Ou você pode querer copiar o conteúdo de um arquivo para outro. Se você estiver no modo GUI, você pode simplesmente abrir os arquivos em qualquer editor de texto gráfico, como o gedit, e usar CTRL+C e CTRL+V para copiar/colar o conteúdo. No modo CLI, você não pode usar esses editores. Sem problemas! Onde existe o editor vim, existe um caminho! Neste tutorial, aprenderemos como editar vários arquivos ao mesmo tempo usando o editor Vim. Acredite em mim, este é um recurso muito interessante do Vim!
Instale o Vim no Linux
O editor Vim está disponível nos repositórios oficiais da maioria das distribuições Linux. Portanto, você pode instalá-lo usando o gerenciador de pacotes padrão.
Por exemplo, no Arch Linux e suas variantes você pode instalá-lo usando o comando:
sudo pacman -S vim
No Debian, Ubuntu:
sudo apt-get install vim
No RHEL, CentOS:
sudo yum install vim
No Fedora:
sudo dnf install vim
No openSUSE:
sudo zypper install vim
Edite vários arquivos de uma vez usando o editor Vim no Linux
Pode haver muitas maneiras de editar múltiplos com o editor Vim. Eu conheço dois métodos.
Método 1
Eu tenho dois arquivos, nomeadamente file1.txt e file2.txt, com um monte de palavras aleatórias. Vamos dar uma olhada neles.
$ cat file1.txt
ostechnix
open source
technology
linux
unix
$ cat file2.txt
line1
line2
line3
line4
line5
Agora, vamos editar esses dois arquivos por vez usando o editor Vim. Para fazer isso, execute:
vim file1.txt file2.txt
O Vim exibirá o conteúdo dos arquivos em uma ordem. O conteúdo do primeiro arquivo será mostrado primeiro e depois do segundo arquivo e assim por diante.
Edite vários arquivos usando o Editor Vim
Alternar entre arquivos
Para passar para o próximo arquivo, digite:
:n
Alternar entre arquivos no editor Vim
Para voltar ao arquivo anterior, digite:
:N
Aqui, N é maiúsculo (tipo SHIFT+n).
Comece a editar os arquivos como você faz com o editor Vim. Pressione 'i' para mudar para o modo interativo e modificar o conteúdo conforme sua preferência. Uma vez feito isso, pressione ESC para voltar ao modo normal.
O Vim não permitirá que você passe para o próximo arquivo se houver alguma alteração não salva. Para salvar as alterações no arquivo atual, digite:
ZZ
Observe que são letras maiúsculas duplas ZZ (SHIFT + zz).
Para abandonar as alterações e passar para o arquivo anterior, digite:
:N!
Para visualizar os arquivos que estão sendo editados no momento, digite:
:buffers
Ver arquivos em buffer no VIm
Você verá a lista de arquivos carregados na parte inferior.
Lista de arquivos em buffer no Vim
Para mudar para o próximo arquivo, digite :buffer seguido do número do buffer. Por exemplo, para mudar para o primeiro arquivo, digite:
:buffer 1
Ou apenas faça:
:b 1
Mudar para o próximo arquivo no Vim
Apenas lembre-se destes comandos para alternar facilmente entre buffers:
:bf # Go to first file.
:bl # Go to last file
:bn # Go to next file.
:bp # Go to previous file.
:b number # Go to n'th file (E.g :b 2)
:bw # Close current file.
Abrindo arquivos adicionais para edição
No momento, estamos editando dois arquivos, nomeadamente arquivo1.txt, arquivo2.txt. Você pode querer abrir outro arquivo chamado file3.txt para edição. O que você vai fazer? É fácil! Basta digitar :e seguido do nome do arquivo como abaixo.
:e file3.txt
Abra arquivos adicionais para edição no Vim
Agora você pode editar o arquivo3.txt.
Para ver quantos arquivos estão sendo editados atualmente, digite:
:buffers
Veja todos os arquivos em buffers no Vim
Observe que você não pode alternar entre arquivos abertos com :e usando :n ou :N. Para mudar para outro arquivo, digite :buffer seguido do número do buffer do arquivo.
Copiando o conteúdo de um arquivo para outro
Você sabe como abrir e editar vários arquivos ao mesmo tempo. Às vezes, você pode querer copiar o conteúdo de um arquivo para outro. Também é possível. Mude para um arquivo de sua escolha. Por exemplo, digamos que você deseja copiar o conteúdo do arquivo1.txt para o arquivo2.txt.
Para fazer isso, primeiro mude para file1.txt:
:buffer 1
Coloque o cursor de movimento na frente de uma linha que deseja copiar e digite yy para arrancar (copiar) a linha. Em seguida, vá para file2.txt:
:buffer 2
Coloque o cursor do mouse onde deseja colar as linhas copiadas do arquivo1.txt e digite p. Por exemplo, você deseja colar a linha copiada entre a linha2 e a linha3. Para fazer isso, coloque o cursor do mouse antes da linha e digite p.
Exemplo de saída:
line1
line2
ostechnix
line3
line4
line5
Copiando o conteúdo de um arquivo para outro usando o Vim
Para salvar as alterações feitas no arquivo atual, digite:
ZZ
Novamente, observe que este é ZZ maiúsculo duplo (SHIFT + z).
Para salvar as alterações em todos os arquivos e sair do editor vim. tipo:
:wq
Da mesma forma, você pode copiar qualquer linha de qualquer arquivo para outros arquivos.
Copiando todo o conteúdo do arquivo para outro
Sabemos como copiar uma única linha. E quanto a todo o conteúdo do arquivo? Isso também é possível. Digamos que você queira copiar todo o conteúdo do arquivo1.txt para o arquivo2.txt.
Para fazer isso, abra primeiro o arquivo2.txt:
vim file2.txt
Se os arquivos já estiverem carregados, você pode mudar para file2.txt digitando:
:buffer 2
Mova o cursor para o local onde deseja copiar o conteúdo do arquivo1.txt. Quero copiar o conteúdo do arquivo1.txt após a linha 5 no arquivo2.txt, então movi o cursor para a linha 5. Em seguida, digite o seguinte comando e pressione a tecla ENTER:
:r file1.txt
Copiando todo o conteúdo de um arquivo para outro arquivo
Aqui, r significa ler.
Agora você verá que o conteúdo do arquivo1.txt é colado após a linha5 no arquivo2.txt.
line1
line2
line3
line4
line5
ostechnix
open source
technology
linux
unix
Copiando todo o conteúdo do arquivo para outro arquivo usando Vim
Para salvar as alterações no arquivo atual, digite:
ZZ
Para salvar todas as alterações em todos os arquivos carregados e sair do editor vim, digite:
:wq
Método 2
O outro método para abrir vários arquivos de uma vez é usar os sinalizadores -o ou -O.
Para abrir vários arquivos em janelas horizontais, execute:
vim -o file1.txt file2.txt
Abra vários arquivos de uma vez no Vim
Para alternar entre janelas, pressione CTRL-w w (ou seja, pressione CTRL+w e pressione novamente w). Ou use os seguintes atalhos para mover-se entre as janelas.
- CTRL-w k - janela superior
- CTRL-w j - janela inferior
Para abrir vários arquivos em janelas verticais, execute:
vim -O file1.txt file2.txt file3.txt
Abra vários arquivos em janelas verticais no Vim
Para alternar entre janelas, pressione CTRL-w w (ou seja, pressione CTRL+w e pressione novamente w). Ou use os seguintes atalhos para mover-se entre as janelas.
- CTRL-w l - janela esquerda
- CTRL-w h - janela direita
Todo o resto é igual ao descrito no método 1.
Por exemplo, para listar os arquivos carregados atualmente, execute:
:buffers
Para alternar entre arquivos:
:buffer 1
Para abrir um arquivo adicional, digite:
:e file3.txt
Para copiar todo o conteúdo de um arquivo para outro:
:r file1.txt
A única diferença no método 2 é que depois de salvar as alterações no arquivo atual usando ZZ, o arquivo será fechado automaticamente. Além disso, você precisa fechar os arquivos um por um digitando :wq. Mas, se você seguiu o método 1, ao digitar :wq todas as alterações serão salvas em todos os arquivos e todos os arquivos serão fechados de uma vez.
Para obter mais detalhes, consulte as páginas de manual.
man vim
Leitura sugerida:
- Como comentar várias linhas de uma vez no editor Vim
- Como gerenciar plug-ins Vim usando Vundle no Linux
- Como usar o recurso de verificação ortográfica no editor de texto Vim
Agora você sabe como editar vários arquivos usando o editor vim no Linux. Como você pode ver, editar vários arquivos não é tão difícil. O editor Vim possui recursos mais poderosos.
Escreveremos mais dicas do Vim nos próximos dias. Fique atento!