Começando com Vim para Linux

Imagine-se mergulhado até os joelhos no seu sistema Linux, tentando desesperadamente editar um arquivo, e cada tentativa parece decifrar um código antigo. Se quanto mais você clicar, mais perdido ficar, por que não recorrer ao Vim para Linux?

Neste tutorial, você irá desvendar os segredos do Vim, um editor de texto amplamente aclamado, transformando-o de um explorador do Linux em um virtuoso da linha de comando.

Pegue sua espada metafórica (também conhecida como teclado) e embarque no mundo do Vim!

Pré-requisitos

Abaixo estão alguns pré-requisitos para preparar o terreno para dominar o Vim no seu sistema Linux:

  • A Linux OS – This tutorial uses an Ubuntu 22.04 LTS.

Criando e Editando Arquivos com 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 se parece com a abaixo se você criou um novo arquivo, o que significa que o Vim está atualmente no modo de comando. O modo de comando é um dos principais modos nos quais você interage com o texto no editor Vim.

Creating a new file via Vim for Linux

2. Em seguida, copie o texto abaixo para a área de transferência, que contém configurações de servidor SSH de exemplo puramente para demonstração e não reflete as 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 principais modos no Vim, que permite digitar e modificar o conteúdo do seu documento.

Depois de entrar no modo de inserção, você verá que a linha de status exibe — INSERT — como no seguinte.

Entering the insert mode on Vim

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 (muda para o modo de comando).

Observe que o status — INSERT — desaparece, o que significa que você está de volta ao modo de comando.

Inserting the copied text into Vim

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.
Saving the changes

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

Verifying the changes are saved

Navegando pelos Textos no Vim

Depois de dominar a arte de criar e editar arquivos com o Vim, você entrará em uma habilidade crucial que elevará sua destreza na edição de texto – navegar no Vim. Uma navegação eficaz é a chave para desbloquear o potencial do Vim, assim 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.

Setting the line numbering

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

Jumping to the beginning of the file

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.
Placing the cursor at the end of the MaxSessions line

4. Agora, substitua um texto pelo seguinte:

  • Pressione i para mudar para o modo de inserção.
  • Apague 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).
Editing a text in Vim

Inserindo Textos em Pontos Específicos

O Vim oferece uma variedade de comandos que permitem controle preciso sobre onde e como inserir novos textos (exatamente onde você precisa). Esta função funciona tanto 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 a inserção de textos em pontos específicos funciona, siga estas instruções:

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.

Inserting at the beginning of the line

2. Mude para o modo de comando (Esc), mova o cursor para qualquer outro caractere na linha de texto atual (ou seja, no início), e pressione o comando a.

Este comando alterna 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.

Inserting at the current cursor point

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.

Inserting a character within a line of text

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 finalizar uma frase.
  • Acrescente 0 ao final da linha, o que altera o valor para 250.
  • Retorne ao modo de comando (`Esc`) e salve as alterações (`:w`).
Appending text to the end of the line

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 é seu passe 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 sessões Myax.

# Nota: Ajuste maxSessions de acordo com a carga do servidor
Adding a new line below the current line of text

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.

Adding a new line above the current line of text

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

# Tenha cautela com os níveis de log para evitar problemas de desempenho
Populating the new line of text

Apagando Palavras e Linhas de Texto

O Vim fornece comandos eficientes para apagar 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, que permite que você faça modificações e correções rapidamente, permitindo que você apague ou substitua caracteres, palavras ou linhas inteiras.

Para apagar e substituir textos no Vim para Linux, execute o seguinte:

1. Mova o cursor para o parâmetro MyaxSessions, especificamente no caractere ‘y‘.

Placing the cursor at a specific character

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, como mostrado abaixo.

Deleting a character under the cursor

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

Positioning the cursor

4. Agora, pressione "_dd para excluir toda a linha de texto, independentemente da posição do cursor.

O "_ na instrução especifica o registro do buraco negro, que descarta o texto excluído (não será armazenado em nenhum registro).

O Vim possui 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ê perceberá que a linha PermitRootLogin no: desapareceu.

Deleting an entire line of text

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.

Placing the cursor at the beginning of a word

6. Por último, execute o comando "_dw, que remove a palavra Specifies, como mostrado abaixo:

Deleting a word

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

Das exclusões estratégicas no Vim, volte sua atenção para o outro lado da moeda — substituindo caracteres e linhas de texto. Substituir é a pincelada que permite refinar e redefinir seu texto precisamente. A boa notícia é que o Vim permite que você faça substituições de caracteres isoladas ou 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, conforme mostrado abaixo:

Positioning the cursor

2. Uma vez posicionado, pressione r, o que informa 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.

Replacing a character within a line of text

3. Em seguida, coloque seu cursor no caractere ‘z’ em AuthorizeKeysFile.

Placing the cursor on another character

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 permite apenas substituir um caractere, o comando R permite que você substitua textos existentes enquanto digita continuamente.

Entering replace mode

5. No 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).

Já que você ainda está no modo de substituição, colar o texto substitui a primeira linha do arquivo.

Overwriting an entire line of text via the replace mode

Buscando Textos Dentro de um Arquivo

Envolvido em refazer ou desfazer ações, a habilidade de buscar textos dentro de um arquivo é útil. O Vim permite que você busque por palavras específicas, frases ou padrões em seu arquivo.

Imagine o aumento de produtividade quando você pode localizar e manipular rapidamente seções específicas de texto 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 pelo termo que você especificou (log), movendo o cursor para frente até a próxima ocorrência do termo.

Searching for the term “log”

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

Moving to the next occurrence of the term “log”

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

Moving back to the previous occurrence of the term “log”

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

Enquanto você navega pelos intricados terrenos do Vim, por que não adicionar mais uma camada ao seu domínio na edição de texto — combinando a busca com outros comandos?

O Vim permite que você execute ações desde a substituição de ocorrências específicas até a exclusão de linhas que correspondem a um padrão.

Para testemunhar a sinergia entre busca e ação no Vim, execute o seguinte:

1. Enquanto estiver no modo de comando, posicione o cursor no ponto de partida a partir do qual você deseja começar a exclusão (ou seja, a primeira ocorrência do termo de busca log).

Positioning the cursor at the first occurrence of the term “log”

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

Deleting everything from the cursor up to the next occurrence of “log”

3. Desfaça a ação anterior (comando u) e posicione o cursor na primeira ocorrência do termo de busca log.

Placing the cursor at the first instance of the search term “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.
Replacing all occurrences of the term “log” with “logs” within a specified rage

Selecionando Textos no Modo Visual do Vim

Além de combinar 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 forma mais interativa e visual. O modo visual fornece um método flexível e eficiente para destacar e operar em porções do seu texto.

Para selecionar e editar texto, você pode escolher selecionar e editar caracteres individuais ou selecionar e editar blocos de texto, conforme a seguir:

1. Mova o cursor para o início do arquivo (comando gg) e pressione v para ativar o modo visual, conforme mostrado abaixo.

Entering visual mode

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

Highlighting a line of text

3. Agora, execute a 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).
    Note que o comando p difere das teclas de atalho para colar textos (Ctrl+Shift+V ou Shift+Insert). Ao copiar o texto com o comando y, o texto é armazenado no registro do Vim, e o comando p cola o texto do registro.
Copying and pasting a line of text after the cursor
Copying and pasting a line of text at the cursor’s position

4. Desfaça (u) sua ação anterior, mova o cursor para o início do arquivo (comando 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 verá na etapa seguinte.

Entering visual line mode

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

Selecting multiple lines of text via visual line mode

6. Pressione d para cortar as várias linhas de texto selecionadas.

Cutting multiple lines of text

7. Por fim, cole o texto cortado na etapa seis da seguinte forma:

  • Mova para a última linha no arquivo (G) e crie uma nova linha abaixo (o).
  • Retorne ao modo de comando (Esc), e cole o texto (p).
Pasting multiple lines of text

Conclusão

Parabéns! Você navegou pelos reinos intrincados do Vim para Linux, desbloqueando um tesouro de sabedoria sobre edição de texto ao longo do caminho. Desde criar e editar arquivos até dominar a arte do modo visual, você colocou o chapéu de um virtuoso do Vim.

Mas suas aventuras na linha de comando estão apenas começando. Que tal explorar recursos avançados como macros e plugins para personalizar o Vim de acordo com suas necessidades?

Use essas habilidades fundamentais para explorar aspectos mais profundos do Vim, como gerenciamento de arquivos, padrões de busca complexos e scripting no Vim para personalização.

Source:
https://adamtheautomator.com/vim-for-linux/