Aprenda Dicas e Truques Úteis do ‘Vi/Vim’ para Iniciantes – Parte 1

A necessidade de aprender a usar editores de texto no Linux é incontestável, pois todo administrador de sistema lida diariamente com arquivos de configuração (texto puro), e na maioria das vezes isso é feito puramente usando uma ou mais ferramentas de interface de linha de comando (como nano, vim ou emacs).

Enquanto nano é talvez mais adequado para novos usuários, vim ou emacs são a ferramenta de escolha para usuários mais experientes devido às suas capacidades avançadas.

Mas há ainda outra razão pela qual aprender a usar um desses editores de texto deve ser uma prioridade para você: você pode se deparar com um servidor apenas de CLI ou ter um problema com o gerenciador de desktop em seu servidor ou desktop baseado em Linux e o único recurso para examiná-lo e editar arquivos de configuração é a linha de comando.

Entre este artigo e o próximo desta série de 2 artigos, revisaremos 15 dicas e truques para aprimorar suas habilidades no vim. Pressupõe-se que você já esteja familiarizado com este editor de texto.

Se não, faça um favor a si mesmo e familiarize-se com o vim antes de prosseguir: você pode querer consultar como usar o editor de texto vim para um guia muito detalhado sobre como começar com o vim.

1. Acessando Ajuda Online no Vim

Depois de iniciar o vim, pressione F1 ou use :h no modo ex para acessar a ajuda online. Você pode ir para uma seção ou tópico específico colocando o cursor sobre ele e pressionando Ctrl+] (Ctrl, depois o colchete de fechamento).

Depois de terminar, pressione Ctrl+t para retornar à tela anterior. Alternativamente, você pode procurar um assunto ou comando específico com :h <tópico ou comando>.

Por exemplo,

:h x 

irá exibir a ajuda para o comando x (delete):

Vi Editor Online Help

e

:h substitute

irá trazer a ajuda sobre o comando substitute (nossa dica final neste artigo).

2. Adicionar Marcadores Dentro do Editor Vim

Se você estiver editando um arquivo que é maior do que uma tela, vai apreciar a funcionalidade fornecida pelos marcadores. Você pode pensar em um marcador no vim como um marcador de página – uma vez que você o coloca em algum lugar, pode voltar a ele rapidamente e facilmente.

Suponha que você esteja editando um arquivo de configuração com 300 palavras e por algum motivo precise alternar repetidamente entre as linhas 30 e 150, por exemplo.

Primeiro, vá para a linha #30 inserindo :30 no modo ex, depois volte para o modo de comando e pressione ma (m, depois a) para criar um marcador chamado “a” na linha 30.

Depois vá para a linha 250 (com :250 no modo ex) e pressione `a (acento grave, depois a) para retornar ao marcador a na linha 30.

Você pode usar letras minúsculas e maiúsculas para identificar marcadores no vim (repita o processo para criar um marcador chamado A na linha #250).

Você pode visualizar seus marcadores com

:marks aA
Marks Usage in Vim Editor

Como você pode ver, cada marcador é referenciado por uma posição específica de linha/coluna no arquivo, não apenas por linha.

3. Limpeza de Código sem Esforço no Vim

Suponha que você esteja editando um script de shell e perceba que o desenvolvedor anterior foi bastante desleixado com relação à indentação. Vamos ver como você pode corrigir isso com alguns comandos vim.

Primeiro, selecione um bloco visual posicionando o cursor no início do bloco e pressionando Ctrl+v (Ctrl, depois v).

  • Para indentar à esquerda: pressione <j
  • Para indentar à direita: pressione <j

Em seguida, pressione o comando . (ponto) para repetir a indentação. O bloco selecionado irá mover-se para a direita ou para a esquerda com apenas uma tecla.

Outro exemplo clássico de uso do comando ponto é quando você precisa excluir uma série de palavras: coloque o cursor na primeira palavra que deseja excluir e pressione dw.

Para continuar excluindo as próximas palavras, basta pressionar . (mais curto e mais fácil do que repetir dw várias vezes).

4. Inserindo Caracteres Unicode no Vim

Se o layout do seu teclado não permitir que você insira facilmente caracteres Unicode especiais em um arquivo, ou se você se encontrar diante de um servidor com configurações de idioma diferentes das que está acostumado, este truque será útil.

Para fazer isso, pressione Ctrl+v no modo de inserção seguido da letra u e do código numérico hexadecimal do caractere que deseja inserir.

Você pode consultar os gráficos Unicode para obter uma lista de caracteres especiais e seus códigos numéricos correspondentes.

Por exemplo,

Ctrl+v followed by returns
u0040 @
u00B5 μ
u20AC

5. Incorporando a Saída de Comandos Externos no Vim

Haverá momentos em que você precisará inserir a saída de comandos externos diretamente em um arquivo sendo editado com vim.

Por exemplo, muitas vezes crio uma variável chamada DIR em meus scripts para armazenar o caminho absoluto para o diretório onde o script reside a fim de usá-lo posteriormente no script.

Para fazer isso, uso:

:r! pwd 

no modo ex. Assim, o diretório de trabalho atual é inserido.

Outro exemplo: se você precisa usar o gateway padrão em algum lugar em um script, você pode facilmente inseri-lo no arquivo atual sem sair do vim da seguinte maneira:

:!r ip route show | grep default | cut -f 3 -d " "

6. Anexando Conteúdos de Arquivos Externos no Vim

Se você precisa anexar o conteúdo de um arquivo separado ao que você está editando atualmente, a sintaxe é semelhante à dica anterior. Basta omitir o sinal de exclamação e você está pronto para ir.

Por exemplo, para copiar o conteúdo de /etc/passwd:

:r /etc/passwd

Você pode achar essa dica útil quando precisar modificar arquivos de configuração, mas quiser manter os originais para voltar às “configurações de fábrica”, por assim dizer.

7. Pesquisar e Substituir uma Palavra no Vim

Uma vez, durante uma prova, me pediram para abrir um arquivo de texto grande contendo dados aleatórios. A tarefa atribuída consistia em substituir cada ocorrência da palavra Globe por Terra (sim, eu ainda me lembro das palavras exatas).

Para aqueles familiarizados com o sed, isso vai soar familiar – no modo ex, digite:

:%s/old/new/g

onde old é o padrão a ser procurado e new é a string que o substituirá.

No caso descrito acima, usei:

:%s/Globe/Earth/g

para fazer o trabalho.

E se você quiser ser solicitado antes de fazer as substituições? Fácil. Apenas adicione um c ao final do comando acima, da seguinte forma:

:%s/old/new/gc

As ocorrências do padrão serão destacadas e você será perguntado se deseja substituí-lo pela nova string:

:%s/gacanepa/me/gc
Search and Replace String in Vim

onde

  • y: yes
  • n: no
  • a: substitute all
  • q: quit
  • l: substitute this occurrence and quit
  • ^E (Ctrl+E): Rolar para cima uma tela
  • ^Y (Ctrl+Y): Rolar para baixo uma tela
Resumo

Neste artigo, começamos a revisar algumas dicas e truques do vim para adicionar às suas habilidades de edição de texto. Você provavelmente pensará em vários outros, então compartilhe-os no formulário de comentários abaixo e considerarei cobri-los no próximo e artigo final desta série do vim.

Source:
https://www.tecmint.com/learn-vi-and-vim-editor-tips-and-tricks-in-linux/