Imagine que você esteja até o pescoço no seu sistema Linux, tentando desesperadamente editar um arquivo e cada tentativa parece decifrar um código antigo. Se quanto mais você clica, mais se perde, por que não recorrer ao Vim para Linux?
Neste tutorial, você desvendará os segredos do Vim, um editor de texto amplamente aclamado, transformando você de um andarilho do Linux em um virtuoso da linha de comando.
Pegue sua espada metafórica (também conhecida como seu teclado) e embarque no mundo do Vim!
Pré-requisitos
Abaixo estão alguns pré-requisitos para dominar o Vim no seu sistema Linux:
- A Linux OS – This tutorial uses an Ubuntu 22.04 LTS.
- Vim instalado em sua máquina – consulte a documentação oficial sobre como instalar o Vim.
Criando e Editando Arquivos com o Vim para Linux
O Vim opera em diferentes modos, cada um oferecendo capacidades de edição únicas. Mas antes de avançar para esses modos, você primeiro precisa aprender como criar e editar arquivos com o Vim no Linux.
Para criar e editar um arquivo com o Vim, siga estas etapas:
1. Abra um terminal e execute o seguinte comando vim
para criar um arquivo chamado sshd_config
(arbitrário) com o Vim. Este comando cria automaticamente o arquivo se ele não existir. Caso contrário, o arquivo existente será aberto no Vim.
A interface do Vim parece com a abaixo se você criou um novo arquivo, o que indica que o Vim está atualmente no modo de comando. O modo de comando é um dos modos principais nos quais você interage com o texto no editor Vim.

2. Em seguida, copie o texto abaixo para a área de transferência, que contém configurações de servidor SSH de exemplo apenas para demonstração e não reflete configurações reais do servidor.
3. No Vim, pressione i
, o comando para entrar no modo de inserção. O modo de inserção também é um dos modos principais no Vim, que permite que você digite e modifique o conteúdo do seu documento.
Assim que você entrar no modo de inserção, verá que a linha de status exibe — INSERT — como no seguinte exemplo.

4. Agora, pressione Ctrl+Shift+V ou Shift+Insert para colar o texto que você copiou no passo dois no editor Vim, e pressione Esc para sair do modo de inserção (altera para o modo de comando).
Observe que o status — INSERT — desaparece, o que indica que você está de volta ao modo de comando.

5. Por fim, digite o comando :w
e pressione Enter para salvar as alterações no arquivo sem fechar o editor.
Quando necessário, você pode executar os outros comandos abaixo:
Command | Details |
---|---|
:q! |
Quit the editor without saving the changes. |
:w! |
Write the current file changes forcefully. |
:wq |
Save the changes and quit the editor (or :wq! to save and quit forcefully). |
e! |
Revert to the last saved version of the file. |

A linha de status exibe o tamanho dos dados escritos no arquivo, que, neste caso, são 23 linhas (23L) e 624 bytes (624B).

Navegando pelos Textos no Vim
Depois de dominar a arte de criar e editar arquivos com o Vim, você mergulhará em uma habilidade crucial que elevará sua habilidade de edição de texto – navegar no Vim. A navegação eficaz é a chave para desbloquear o potencial do Vim, como explorar uma vasta paisagem.
Para ver como navegar pelos textos no Vim, siga o seguinte:
1. Agora, digite o comando :set nu
e pressione Enter para definir a numeração das linhas no Vim. A numeração das linhas é uma característica crucial do editor ao lidar com código ou documentos grandes.
Se bem-sucedido, você verá os números das linhas no editor, como mostrado abaixo.

2. Em seguida, mude para o modo de comando (Esc
) e pressione o comando gg
para pular para o início do arquivo.

3. Em seguida, pressione qualquer um dos seguintes comandos até chegar ao início do parâmetro MaxSessions, e pressione $
para mover o cursor para o final da linha.
Command | Details |
---|---|
h |
Move the cursor to the left or the previous character. |
j |
Move the cursor one line down. |
k |
Move the cursor one line up. |
l |
Move the cursor to the right or the next character. |

4. Agora, substitua um texto pelo seguinte:
- Pressione
i
para mudar para o modo de inserção. - Exclua o valor (Backspace ou Delete), que é 10, e substitua-o por 25.
- Mude para o modo de comando (
Esc
) e salve as alterações (:w
).

Inserindo Textos em Pontos Específicos
O Vim oferece uma variedade de comandos que permitem um controle preciso sobre onde e como inserir novos textos (exatamente onde você precisa). Essa função funciona se você deseja inserir no início de uma linha, logo após a posição atual do cursor, ou no final de uma linha.
Para ver como funciona a inserção de textos em pontos específicos, siga estas etapas:
1. Pressione I
(Shift+I) enquanto o cursor estiver no final da linha para entrar no modo de inserção e simultaneamente posicione o cursor no início da linha.

2. Mude para o modo de comando (Esc
), mova o cursor para qualquer outro caractere na linha atual de texto (ou seja, no início) e pressione o comando a
.
Este comando muda o Vim para o modo de inserção e coloca o cursor no próximo caractere a partir de sua posição anterior. Este comportamento é útil para adicionar rapidamente texto no meio de uma linha sem perturbar o texto existente.

3. Insira ‘y’ para soletrar a chave MaxSession como MyaxSession, como mostrado abaixo, e retorne ao modo de comando (Esc
).
Você notará que o novo caractere ‘y’ aparece imediatamente após o primeiro.

4. Agora, modifique a linha de texto da seguinte forma:
- Pressione Shift+A para executar o comando
A
, que permite ao Vim entrar no modo de inserção e mover o cursor para o final da linha. Este comportamento é ideal para adicionar rapidamente conteúdo como um ponto e vírgula ou para terminar uma frase. - Acrescente 0 ao final da linha, o que muda o valor para 250.
- Retorne ao modo de comando (`Esc`) e salve as alterações (`:w`).

Abrindo Novas Linhas
Agora que você dominou o posicionamento estratégico de texto nos seus arquivos do Vim, é hora de explorar uma habilidade que manterá seu conteúdo bem estruturado e organizado. A capacidade de abrir novas linhas no Vim é o seu bilhete para um texto mais legível e esteticamente agradável.
Para abrir novas linhas, acima ou abaixo, siga os passos abaixo:
1. Enquanto estiver no modo de comando, pressione o
para abrir uma nova linha abaixo da linha de texto atual e adicione o seguinte comentário sobre as MyaxSessions.

2. Mude para o modo de comando (`Esc`), posicione o cursor em outra linha de texto e pressione O
(Shift+O) para adicionar uma nova linha acima da linha de texto atual.

3. Agora, adicione o seguinte comando ao arquivo e salve as alterações (`:w`).

Excluindo Palavras e Linhas de Texto
O Vim fornece comandos eficientes para excluir e substituir texto além das teclas básicas de Delete ou Backspace. Esses comandos são acessíveis a partir do modo de comando, o que permite fazer modificações e correções rapidamente, permitindo que você exclua ou substitua caracteres, palavras ou linhas inteiras.
Para excluir e substituir textos no Vim para Linux, execute o seguinte:
1. Mova o cursor para o parâmetro MyaxSessions, especificamente no caractere ‘y‘.

2. Em seguida, pressione x
para remover instantaneamente o caractere sob o cursor, que, neste caso, é ‘y‘.
O parâmetro volta ao seu texto original como MaxSessions, conforme mostrado abaixo.

3. Mova o cursor para a linha PermitRootLogin no:.

4. Agora, pressione "_dd
para excluir toda a linha de texto, independentemente da posição do cursor.
A parte "_
no comando especifica o registro do buraco negro, que descarta o texto excluído (não será armazenado em nenhum registro).
O Vim tem seu próprio conjunto de registros onde você pode armazenar textos, e não especificar o registro do buraco negro faz com que o comando corte o texto em vez de excluí-lo.
Se bem-sucedido, você notará que a linha PermitRootLogin no: desapareceu.

5. Enquanto estiver no modo de comando, coloque o cursor no início da palavra Specifies na linha # Specifies whether root can log in using ssh.

6. Por fim, execute o comando "_dw
, que remove a palavra Specifies, conforme mostrado abaixo:

Opcionalmente, você pode optar pelos seguintes comandos para operações adicionais de exclusão:
Command | Details |
---|---|
"_d$ |
Delete texts from the cursor position to the end of the line. |
"_D |
Deletes from the cursor position to the end of the line. |
"_d^ |
Deletes from the cursor position to the first non-whitespace character of the line |
"_dgg |
Deletes from the cursor position to the beginning of the file. |
"_dG |
Deletes from the cursor position to the end of the file. |
Substituindo Caracteres e Linhas de Texto
Do ponto de vista das deleções estratégicas no Vim, direcione sua atenção para o outro lado da moeda — a substituição de caracteres e linhas de texto. A substituição é o traço de pincel que permite refinar e redefinir seu texto com precisão. A boa notícia é que o Vim permite que você faça substituições pontuais de caracteres ou de linhas inteiras de texto.
Para substituir caracteres e linhas de texto, siga estas etapas:
1. Posicione o cursor na linha AuthorizedKeysFile .ssh/authorized_keys, especificamente no caractere ‘z’ em authorized, como mostrado abaixo:

2. Uma vez posicionado, pressione r
, indicando ao Vim que você está prestes a substituir o caractere sob o cursor e insira o caractere ‘s’. O comando r
permite que você substitua um caractere sem entrar no modo de inserção (i
) primeiro.
Observe que o caractere ‘z’ em authorized foi substituído pelo caractere ‘s’, alterando a palavra para authorised.

3. Em seguida, posicione o cursor no caractere ‘z‘ em AuthorizeKeysFile.

4. Pressione R
(Shift+R) para entrar no modo de substituição, digite ‘s’ para substituir o caractere, mas não saia do modo de substituição ainda.
Ao contrário do comando r
, que só permite substituir um caractere, o comando R
permite que você sobrescreva textos existentes conforme digita continuamente.

5. Por fim, copie o seguinte texto para a área de transferência, mova o cursor para o início do arquivo e cole o texto copiado (Ctrl+Shift+V ou Shift+Insert).
Como você ainda está no modo de substituição, colar o texto substitui a primeira linha no arquivo.

Procurando Textos Dentro de um Arquivo
Envolvido em refazer ou desfazer ações, a habilidade de procurar textos dentro de um arquivo é útil. O Vim permite que você busque por palavras específicas, frases ou padrões no seu arquivo.
Imagine o aumento de produtividade quando você pode localizar e manipular rapidamente seções de texto específicas sem rolar sem rumo.
Para buscar textos dentro de um arquivo, siga estes passos:
1. Mova o cursor para o início do arquivo (comando gg
), pressione /
(barra invertida) para iniciar o modo de busca, digite o termo de busca log e pressione Enter.
Este comando busca o termo especificado (log), movendo o cursor para a próxima ocorrência do termo.

2. Em seguida, pressione n
para ir para a próxima ocorrência do termo.

3. Agora, pressione N
(Shift+N) para voltar à ocorrência anterior.

Além disso, o Vim oferece outros atalhos de busca, como os seguintes, para mais flexibilidade na busca:
Command | Details |
---|---|
? |
Initiates a reverse search of a term. |
* |
Performs a forward search for the word under the cursor. Continue pressing * to cycle through further occurrences of the word until it loops back to the first instance. |
# |
Performs a backward search for the word under the cursor. Continuously pressing # works similarly to the * command but cycles until it loops back to the last instance. |
Combinando Busca com Outros Comandos no Vim
Ao navegar pelas paisagens intricadas do Vim, por que não adicionar mais uma camada à sua maestria em edição de texto — combinando a busca com outros comandos?
O Vim permite que você realize ações, desde substituir ocorrências específicas até excluir linhas que correspondem a um padrão.
Para presenciar a sinergia entre pesquisa e ação no Vim, execute o seguinte:
1. Enquanto estiver no modo de comando, posicione o cursor no ponto de partida de onde deseja começar a exclusão (ou seja, a primeira ocorrência do termo de pesquisa log).

2. Em seguida, digite d/log
e pressione Enter para excluir tudo da posição do cursor até a próxima ocorrência do termo log, como mostrado abaixo.

3. Desfaça a ação anterior (comando u
) e posicione o cursor na primeira instância do termo de pesquisa log.

4. Agora, execute o comando abaixo para buscar e substituir textos dentro de uma faixa específica, onde:
:.
– Entra no modo de comando (:
) na linha atual (.
).,$
– Especifica a faixa para a substituição.s/log/logs/g
– Substitute all occurrences of the old word (log
) with new (logs
) globally (g
) within the specified range.

Selecionando Textos no Modo Visual no Vim
Além de misturar a arte da busca com outros comandos no Vim, você deve descobrir um recurso que transforma sua experiência de edição de texto. O modo visual do Vim permite que você manipule o texto de maneira mais interativa e visual. O modo visual oferece um método flexível e eficiente para destacar e operar em porções do seu texto.
Para selecionar e editar texto, você pode optar por selecionar e editar caracteres individuais ou selecionar e editar blocos de texto, conforme segue:
1. Mova o cursor para o início do arquivo (comando gg
) e pressione v
para ativar o modo visual, como mostrado abaixo.

2. Pressione $
para mover o cursor para o final da linha. Como você está no modo visual, o comando destaca a linha de texto.

3. Agora, execute uma ação de copiar e colar da seguinte forma:
- Pressione
y
para copiar o texto destacado para o registro do Vim. - Pressione
G$
para mover o cursor para o final da última linha no arquivo. - Pressione
p
para colar o texto que você copiou (especificamente após o cursor).
Observe que o comandop
difere das teclas de atalho para colar textos (Ctrl+Shift+V ou Shift+Insert). Ao copiar o texto com o comandoy
, o texto é armazenado no registro do Vim, e o comandop
cola o texto do registro.


4. Desfaça (u
) sua ação anterior, mova o cursor para o início do arquivo (gg
), e pressione V
(Ctrl+V) para entrar no modo de linha visual.
Ao contrário de selecionar uma única linha no modo visual, o modo de linha visual permite selecionar várias linhas de texto, como você verá no próximo passo.

5. Use a tecla de seta para baixo para selecionar os caracteres do início do arquivo até a linha Protocolo 2.

6. Pressione d
para cortar as múltiplas linhas de texto selecionadas.

7. Por fim, cole o texto que você cortou no passo seis da seguinte forma:
- Mova para a última linha no arquivo (
G
) e crie uma nova linha abaixo (o
). - Volte ao modo de comando (\code{Esc}), e cole o texto (\code{p}).

Conclusão
Parabéns! Você navegou pelos intricados reinos do Vim para Linux, desbloqueando um tesouro de sabedoria em edição de texto ao longo do caminho. Desde a criação e edição de arquivos até dominar a arte do modo visual, você vestiu o chapéu de um virtuoso do Vim.
Mas suas aventuras na linha de comando estão apenas começando. Por que não explorar recursos avançados como macros e plugins para personalizar o Vim conforme suas necessidades?
Use essas habilidades fundamentais para explorar aspectos mais profundos do Vim, como gerenciamento de arquivos, padrões de busca complexos e scripting do Vim para personalização.