Aprenda dicas e truques úteis do editor 'Vi/Vim' para aprimorar suas habilidades - Parte 1
A necessidade de aprender a usar editores de texto no Linux é indiscutível. Todo administrador e engenheiro de sistema lida diariamente com arquivos de configuração (texto simples) e, na maioria das vezes, isso é feito apenas usando uma ou mais ferramentas de uma interface de linha de comando (como nano, vim ou emacs).
Embora nano seja talvez mais adequado para novos usuários, vim ou emacs são a ferramenta preferida para usuários mais experientes devido aos seus recursos avançados.
Mas há ainda outra razão pela qual aprender como usar um desses editores de texto deve ser uma prioridade para você: você pode se deparar com um servidor somente CLI ou ter um problema com o gerenciador de desktop em seu servidor Linux baseado em GUI. ou desktop 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 em vim. Presume-se que você já esteja familiarizado com este editor de texto. Caso contrário, faça um favor a si mesmo e familiarize-se com o vim antes de prosseguir: você pode consultar Como usar o vi/vim como editor de texto completo para obter um guia muito detalhado sobre como começar com o vim.
Parte 2: 8 dicas e truques interessantes do editor ‘Vi/Vim’
DICA nº 1: usando a ajuda online
Depois de iniciar o vim, pressione F1 ou use :h no modo ex para entrar na ajuda online. Você pode pular 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
.
Por exemplo,
:h x
exibirá a ajuda do comando x (delete):
e
:h substitute
trará a ajuda sobre o comando substitute (nossa dica final neste artigo).
DICA nº 2: pule para frente e para trás usando marcas
Se você estiver editando um arquivo maior que uma tela, apreciará a funcionalidade fornecida pelas marcas. Você pode pensar em uma marca no vim como um marcador – depois de colocá-la em algum lugar, você pode voltar a ela de forma rápida e fácil. Suponha que você esteja editando um arquivo de configuração de 300 palavras e por algum motivo precise alternar repetidamente entre as linhas 30 e 150, por exemplo.
Primeiro, vá para a linha #30 digitando :30 no modo ex, depois retorne ao modo de comando e pressione ma > (m, depois a) para criar uma marca chamada “a” na linha 30.
Então vá para a linha 250 (com :250 no modo ex) e pressione `a
(crase e depois a) para retornar à marca a na linha 30. Você pode usar letras minúsculas e maiúsculas para identificar marcas no vim (agora repita o processo para criar uma marca chamada A na linha #250).
Você pode ver suas marcas com
:marks aA
Como você pode ver, cada marca é referenciada por uma posição específica de linha/coluna no arquivo, não apenas por linha.
DICA #3: Repita o último comando
Suponha que você esteja editando um script de shell e perceba que o desenvolvedor anterior era péssimo no que diz respeito ao recuo. Vamos ver como você pode consertar isso com alguns comandos do vim.
Primeiro, selecione um bloco visual colocando o cursor no início do bloco e pressionando Ctrl+v (Ctrl, depois v).
- Para recuar para a esquerda: pressione
- Para recuar para a direita: pressione
Em seguida, pressione o comando .
(ponto) para repetir qualquer recuo. O bloco selecionado irá mover-se para a direita ou para a esquerda com apenas um toque de 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).
DICA #4: Inserindo caracteres Unicode especiais
Se o layout do seu teclado não permitir inserir facilmente caracteres Unicode especiais em um arquivo, ou se você se encontrar diante de um servidor com configurações de idioma diferentes daquelas com as quais 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 verificar os gráficos Unicode para obter uma lista de caracteres especiais e seus códigos numéricos correspondentes.
Por exemplo,
- Ctrl+v followed by
-
retorna
- u0040
@
- u00B5
μ
- u20AC
€
DICA #5: Invoque binários externos de dentro do vim
Haverá momentos em que você precisará inserir a saída de comandos externos diretamente em um arquivo que está sendo editado com o 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, eu uso:
:r! pwd
no modo ex. Assim, o diretório de trabalho atual é inserido.
Outro exemplo: se você precisar usar o gateway padrão em algum lugar de um script, poderá inseri-lo facilmente no arquivo atual sem sair do vim da seguinte maneira:
:!r ip route show | grep default | cut -f 3 -d " "
DICA #6: Insira o arquivo existente
Se você precisar anexar o conteúdo de um arquivo separado àquele que está editando no momento, a sintaxe será semelhante à dica anterior. Basta omitir o sinal de exclamação e pronto.
Por exemplo, para copiar o conteúdo de /etc/passwd:
:r /etc/passwd
Você pode achar esta dica útil quando precisar modificar os arquivos de configuração, mas quiser manter os originais para reverter para as “configurações de fábrica”, por assim dizer.
DICA #7: Pesquise e substitua (substitua)
História verídica. Certa vez, durante um exame, fui solicitado a abrir um grande arquivo de texto contendo dados aleatórios. A tarefa atribuída consistia em substituir cada ocorrência da palavra Globo por Terra (sim, ainda me lembro das palavras exatas). Para aqueles familiarizados com sed, isso soará como uma campainha – no modo ex, digite:
:%s/old/new/g
onde antigo é o padrão a ser pesquisado e novo é a string que irá substituí-lo.
No caso descrito acima, usei:
:%s/Globe/Earth/g
para fazer o trabalho.
Então, que tal você querer ser avisado antes de fazer substituições? Fácil. Basta adicionar um c no final do comando acima, como segue:
:%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
onde
- s: sim
- n: não
- a: substitua todos
- q: sair
- l: substitua esta ocorrência e saia
- ^E (Ctrl+E): rola uma tela para cima
- ^Y (Ctrl+Y): rola uma tela para baixo
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 usando o formulário abaixo e considerarei abordá-los no próximo e último artigo desta série do vim. Estou ansioso para ouvir de você.