Série seja produtivo com o vim: #6

Leonardo Xavier
3 min readMar 6, 2019
Vim

Fala aí, “dev”. Como prometido, neste artigo vamos falar de uma das features que considero mais bacanas e úteis no Vim, a Objetos de Texto.

Antes de seguirmos, na última a gente falou bastante de alguns comandos dos mais relevantes como pesquisar, substituir entre outras coisas. Se você perdeu, pode conferir aqui.

Se quiser ver todo o sumário de artigos, pode conferir em nosso primeiro artigo da série.

Então, bora lá!

Utilização

Nos objetos de texto do Vim existe um conceito onde uma sequência na seguinte forma, comando (delete, yank, change, etc.) + a (um/uma) ou i (inner/’dentro’) + movimento/delimitador, faz aquilo que a frase formou. Tentei deixar bem explicativo mas sei que pode ter ficado confuso. Vamos dar alguns exemplos a seguir.

Objetos de Palavra

D + A + W pode ser compreendido como Delete A Word (Remova Uma Palavra). Ao fazer isso a palavra atual será removida de acordo com o movimento do comando W.

C + I + W pode ser compreendido como Change Inner Word (Substitua “dentro do movimento” Palavra). Ao fazer isso a palavra atual será removida e você estará no modo de INSERÇÃO para digitar o conteúdo desejado de acordo com o movimento do comando W.

Objetos de Bloco

É possível utilizar delimitadores de bloco ao invés de navegação/movimento como último argumento também. Isso vale para ", ', (, ), [, ], {, }, <, >. Do ponto de vista do TI isto é magnífico pois lhe permite, de forma bem fácil, fazer uma ação em todo o bloco.

Por exemplo. C + I + ) (Change Inner “)”) lhe permite substituir todo o conteúdo delimitado por “()” independente de quantas linhas forem. A diferença, neste caso, entre A e I é que A vai fazer o comando incluindo o delimitador enquanto I (Inner) vai ser dentro do delimitador sem afetá-lo.

Objetos de Tag

Para quem trabalha com documentos HTML ou XML, tenho uma excelente notícia. Há também um comando usando tag como delimitador. Você pode usar C + I + T (Change Inner Tag) para alterar todo o conteúdo de uma tag ou D + A + T (Delete A Tag) para deletar toda uma tag atualmente em foco. Lembre-se que o foco de ação é a região atual do seu cursor.

Objetos de Sentença/Frase

O Vim também pode considerar uma frase ou sentença como um objeto manipulável. Neste caso, pontuações são considerados os delimitadores de sentença. Para este exemplo vou mostrar um pouco mais de poder. Vamos guardar uma sentença em um registro personalizado do Vim.

" + S + Y + A + S (no registro ‘s’ Yank A Sentence). Como você já deve saber, você acabou de criar uma cópia da frase atual no registro personalizado ‘s’. Para conferir, lembre-se que você pode usar, no modo de “linha”, :reg s.

Objetos de Parágrafo

Parágrafos inteiros também são considerados objetos do Vim. D + A + P, por exemplo, vai apagar todo o parágrafo atual.

Finalizando

É ou não uma baita “duma” feature? Pra mim uma das mais poderosas deste editor.

No próximo artigo vamos falar um pouco sobre a gravação de macros no Vim. Sim, meu caro, é também possível. Já dá até pra imaginar esses comandos todos sendo gravados em uma macro reutilizável, “né não?”. Se quiser conferir, basta acessar aqui.

Até já já!!!

--

--