A maestria do Vim continua: 8 dicas mais poderosas para administradores do Linux (Parte 2)

No artigo anterior desta série, revisamos 7 dicas e truques para adicionar ao seu conjunto de habilidades vi/m, além das razões dadas anteriormente, aprender a usar eficientemente um editor de texto no Linux é uma habilidade essencial para um administrador de sistemas ou engenheiro e é uma competência obrigatória para passar qualquer grande programa de certificação Linux (tales como LFCS, LFCE, RHCSA, e RHCE).

Dito isso, vamos começar.

8. Criar Janelas Horizontais ou Verticais do Vim

Esta dica foi partilhada por Yoander, um de nossos leitores, em Parte 1. Você pode iniciar vi/m com múltiplas divisões horizontais ou verticais para editar arquivos separados dentro da mesma janela principal:Inicie vi/m com duas janelas horizontais, com test1 no topo e test2 no fundo.

Inicie o vi/m com duas janelas horizontais, com test1 no topo e test2 na parte inferior

vim -o test1 test2 
Launch Vim Editor in Horizontal Windows

Inicie o vi/m com duas janelas verticais, com test3 à esquerda e test4 à direita:

vim -O test3 test4 
Launch Vim Editor in Vertical Windows

Você pode alternar o cursor de uma janela para outra com a rotina de movimentação usual do vi/m (h: direita, l: esquerda, j: baixo, k: cima):

  • Ctrl+w k – topo
  • Ctrl+w j – inferior
  • Ctrl+w l – esquerda
  • Ctrl+w h – direita

9. Alterar maiúsculas ou minúsculas no Vim

Por favor, note que esta dica só funciona no vim. Nas próximas exemplos, X é um número inteiro.

  • Para alterar uma série de letras para maiúsculas, posicione o cursor na primeira letra, depois digite gUX no modo ex e, finalmente, pressione a seta para a direita no teclado.
  • Para alterar X número de palavras, coloque o cursor no início da palavra e digite gUXw no modo ex.
  • Para alterar uma linha inteira para maiúsculas, coloque o cursor em qualquer lugar da linha e digite gUU no modo ex.

Por exemplo, para converter uma linha inteira minúscula para maiúscula, você deve colocar o cursor em qualquer lugar da linha e digitar gUU:

Change String to Uppercase in Vim Editor

Por exemplo, para converter 2 letras maiúsculas em minúsculas, você deve colocar o cursor no início da primeira palavra e digitar gu2w:

Convert String to Lowercase in Vim Editor

10. Excluir Texto no Modo de Inserção do Vim

Embora você possa excluir caracteres ou várias palavras de uma só vez no modo ex (ou seja, dw para excluir uma palavra), você também pode fazê-lo no modo de inserção da seguinte maneira:

  • Ctrl + h: exclui o caractere anterior à posição atual do cursor.
  • Ctrl + w: exclui a palavra anterior à posição atual do cursor. Para que isso funcione corretamente, o cursor deve ser colocado em um espaço vazio após a palavra que você deseja excluir.
  • Ctrl + u: exclui a linha atual começando no caractere imediatamente à esquerda da posição do cursor.

11. Mover ou Copiar Linhas Existentes Dentro do Vim

Embora seja verdade que você pode usar os bem conhecidos comandos dd, yy e p no modo ex para excluir, copiar (yank) e colar linhas, respectivamente, isso só funciona quando o cursor é colocado onde você deseja executar essas operações.

A boa notícia é que com os comandos copiar e mover, você pode fazer o mesmo independentemente de onde o cursor esteja atualmente colocado.

Para o próximo exemplo, usaremos um poema curto intitulado “Para Sempre” de Terri Nicole Tharrington. Para começar, teremos o Vim exibindo os números de linha (:set nu no modo Comando – considere isso uma dica extra). Usaremos :3copy5 (também no modo Comando) para copiar a linha 3 abaixo da linha 5:

Move Copy Existing Lines in Vim

Agora, desfaça a última alteração (Esc + u – outra dica bônus!) e digite :1move7 para substituir a linha 7 pela linha 1. Observe como as linhas 2 a 7 são deslocadas para cima e a linha anterior 1 agora ocupa a linha 7:

Move Lines in Vim Editor

12. Navegação e contagem de correspondências de padrões no Vim

Esta dica é baseada na instrução de substituição (dica #7 em Parte 1 desta série), com a exceção de que não removerá nada, pois o comportamento de substituição é anulado pela opção n, resultando na contagem de ocorrências do padrão especificado:

Certifique-se de não omitir nenhum dos barramentos em frente!

:%s/pattern//gn 

Por exemplo,

:%s/libero//gn
Count Matches by Search Pattern in Vim

Para passar de uma ocorrência do padrão para a próxima no modo ex, pressione n (minúsculo N). Para ir para a instância anterior, pressione N.

13. Abrir um arquivo no Vim em uma linha especificada

Por padrão, ao iniciar vi/m, o cursor é colocado inicialmente na última linha editada. Se você deseja abrir o programa e ter o cursor colocado diretamente em uma linha especificada, pode usar o seguinte truque:

# vim filename +line_number

Por exemplo, abra forever.txt e coloque o cursor na linha 6:

# vim forever.txt +6

Vamos ajustar um pouco esse exemplo. Suponha que queiramos abrir o arquivo na linha onde aparece a 3ª ocorrência do padrão:

# vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

Vamos dar uma olhada mais de perto no que o comando acima faz:

  • grep -in padrão nome_do_arquivo – exibe todas as linhas do nome_do_arquivo onde o padrão ocorre, com o número da linha no início de cada linha de saída.
  • sed -n 3p – exibe a 3ª linha da saída do pipeline anterior.

Finalmente,

  • cut -d: -f1 retorna o primeiro campo do pipeline anterior, onde o (:) é o separador de campo.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1
Open Vim Editor in Specified Line

O resultado do comando anterior é então passado para vi/m para abrir o programa na linha especificada.

14. Personalizando o Ambiente Vim

Se você usa vi/m para editar arquivos de configuração ou para escrever código, você desejará poder exibir o número

  • Vim for Linux Admins: 8 Powerful Tips and Tricks (Part 2)

de linhas quando você abre o programa e definir a indentação automática para que, quando pressionar a tecla Enter, o cursor seja automaticamente colocado na posição correta. Além disso, você pode querer personalizar o número de espaços em branco que uma tabulação ocupa.

Embora você possa fazer isso cada vez que iniciar vi/m, é mais fácil definir essas opções no ~/.vimrc para que sejam aplicadas automaticamente:

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

Para obter mais opções de personalização do seu ambiente vi/m, você pode consultar a documentação online do vim.

15. Obtenha Ajuda Geral do Vim/ com Vimtutor

Se a qualquer momento você precisar aprimorar suas habilidades gerais de vi/m, pode iniciar vimtutor a partir da linha de comando, que exibirá uma ajuda completa do vi/m à qual você pode recorrer sempre que desejar, sem a necessidade de abrir um navegador da web para pesquisar como realizar uma determinada tarefa no vi/m.

vimtutor
Vim Editor Help and Options

Observe que você pode navegar ou pesquisar o conteúdo do Vimtutor como se estivesse navegando um arquivo regular no vi/m.

Resumo

Nesta série de 2 artigos, compartilhei várias dicas e truques de vi/m que devem ajudá-lo a ser mais eficaz ao editar texto usando ferramentas de linha de comando.

I’m sure you must have other ones – so feel free to share them with the rest of the community in the comment form below. As always, questions and comments are also welcome.

Source:
https://www.tecmint.com/how-to-use-vi-and-vim-editor-in-linux/