Começando com Vim para Linux

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.

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.

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 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.

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

Observe que o status — INSERT — desaparece, o que indica 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ê 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.

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.
  • 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).
Editing a text in Vim

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.

Inserting at the beginning of the line

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.

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 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`).
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 é 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.

# Nota: Ajuste maxSessions conforme 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

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‘.

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, conforme 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.

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.

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 fim, execute o comando "_dw, que remove a palavra Specifies, conforme 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

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:

Positioning the cursor

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.

Replacing a character within a line of text

3. Em seguida, posicione o 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 só permite substituir um caractere, o comando R permite que você sobrescreva textos existentes conforme digita continuamente.

Entering replace mode

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.

Overwriting an entire line of text via the replace mode

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.

Searching for the term “log”

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

Moving to the next occurrence of the term “log”

3. Agora, pressione N (Shift+N) para voltar à 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

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

Positioning the cursor at the first occurrence of the term “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.

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 instância do termo de pesquisa 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 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.

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 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 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 (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.

Entering visual line mode

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

Selecting multiple lines of text via visual line mode

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

Cutting multiple lines of text

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}).
Pasting multiple lines of text

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.

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