Tableless

Busca Menu

Vim: o poder dos macros

Seja o primeiro a comentar por

No nosso dia-a-dia em muitas situações diferentes temos que executar a mesma ação em um arquivo por diversas vezes, e com certeza o seu editor oferece à sua maneira uma forma muito eficiente de lidar com isso.

No vim isso não é diferente, uma feature muito poderosa e ainda pouco explorada são os macros. Legal, mas o que é isso?

Esses macros são uma sequencia de comandos que vão ser gravados numa espécie de buffer do vim e você pode executa-los quantas vezes desejar.

Em prática

Vamos supor que temos uma lista de itens como strings escrito dessa maneira:

'foo', 'bar', 'example', 'text'

e o nosso objetivo é que cada item dessa lista fique uma abaixo da outra, também queremos que a primeira letra de cada item seja convertida para maiúscula:

'Foo',
'Bar',
'Example',
'Text'

Para iniciarmos a gravação de um macro deve ser pressionada tecla q, note que a palavra recording vai aparecer na parte inferior do editor:

macro-01

A partir desse momento qualquer tecla pressionada vai ser gravada, e se mais uma vez pressionarmos q em NORMAL MODE a gravação vai ser concluída.

O que devemos fazer agora é executar um conjunto de comandos para atingirmos o nosso objetivo, que nesse caso seria algo como:

  • q : inicia a gravação do macro
  • w : move uma “palavra” no cursor
  • v : entra no “VISUAL MODE” (automaticamente seleciona o caractere em que o cursor está em foco)
  • U: transforma o que foi selecionado em maiúsculo
  • w: move uma “palavra” no cursor
  • w: move uma “palavra” no cursor
  • i: entra no “INSERT MODE
  • <backspace>: deleta o espaço entre a virgula e a próxima palavra
  • <enter>: insere a quebra da linha
  • <esc>: volta para o “NORMAL MODE
  • q: finaliza a gravação do macro

Executando isso temos:

macro-02

Bacana! Ja temos os comandos gravados em memória, agora vamos usar o atalho @q para a execução em cada item:

macro-03

e voilà, temos nossa lista como queriamos 🙂

Conclusão

Com o tempo o uso do macro dentro do vim se torna algo automático, você começa a perceber padrões e cada vez mais começa a usar essa feature de maneira inteligente que vai poupar muito do seu tempo.

Nesse artigo foi utilizado um exemplo muito simples, mas imagine quantas possibilidades você pode alcançar com os macros desde tarefas complexas como copy/paste em arquivos diferentes, alinhamentos e etc.

Se você achou interessante entenda mais sobre as diversas açoes dos macros na documentação oficial do vim nesse link.

Publicado no dia