Comandos Vim: inner, outer, until, find e search

Dicas - 10/Mai/2020 - por André Kanamura

O Vim é conhecido por permitir que pessoas que trabalham com código possam escrevê-lo com mais eficiência, evitando que precisem tirar as mãos do teclado. Claro, o Vim é muito mais do que isso. É uma ferramenta extremamente flexível, personalizável e leve. Qualidades muito apreciadas por desenvolvedores. No entanto, sua curva de aprendizado pode ser um empecilho para muitos.

Se você já conheceu os movimentos básicos (e sabe como sair do Vim), aqui seguem algumas dicas de comandos preciosos que vão ajudar a aumentar sua produtividade.

Inner (i) e Outer (a)

Inner e outer – do inglês "interno" e "externo" – permitem que você execute ações dentro de um determinado seletor. Por exemplo, considere a seguinte linha:

pergunta = "Como apagar todo o conteúdo entre aspas?"

Com o cursor em "ú", podemos apagar todo o conteúdo entre as aspas com o comando di". E se quisermos apagar a frase incluindo as aspas: da". O comando pode ser utilizado com outros seletores, como parênteses ou chaves, além de ações como editar ou selecionar, por exemplo, ci) ou va].

Until (t), Find (f)

Com o comando find – encontrar em inglês –, o Vim busca pelo seletor na linha atual e move o cursor até ele. Por exemplo, o comando f? move o cursor para a primeira ocorrência de ? que encontrar na linha. Além de mover o cursor, o f pode ser usado em combinação com outras ações como deletar ou editar: df? para deletar tudo até ?, ou vfh para selecionar até a primeira ocorrência de h.

Outro comando que funciona de forma semelhante ao find é o until, que pode ser traduzido como "até". Da mesma maneira que o comando anterior, o comando dt? também executa a ação escolhida até a primeira ocorrência do seletor.

Search (/)

Os comandos t e f se limitam a encontrar o seletor na linha atual do cursor e a apenas um caractere. Caso você precise de uma função mais abrangente, o Vim fornece, nesse caso, o comando de pesquisa /. Se você usar /, o editor vai aguardar que você escreva o termo que deseja pesquisar e apertar Enter. Logo em seguida todas as ocorrências do termo serão destacadas no arquivo corrente.

Esse comando também pode ser usado em combinação com outras ações de forma bastante flexível. Considere o código abaixo, por exemplo:

    data_states = [StateInfo.new(state_id: 11,
                                uf: "Rondônia",
                                abbreviation: "RO",
                                cases: 1,
                                deaths: 0,
                                suspicions: 61),
                 StateInfo.new(state_id: 12,
                                uf: "Acre",
                                abbreviation: "AC",
                                cases: 2,
                                deaths: 1,
                                suspicions: 12)]

Com o cursor sobre a vírgula após "Rondônia", podemos usar o comando c/"Acre" + Enter para apagar tudo até a vírgula depois de "Acre" e entrar em modo de edição.

Foto de perfil do autor
André Kanamura

Dev na Campus Code