Pesquisa de site

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!

Artigos relacionados