Pulando com o Vim

Ganhe tempo usando comandos precisos para movimentar o cursor e editar textos, dispensando o uso das setas do teclado, Delete e Backspace.

Editar textos é a tarefa mais comum de qualquer usuário de computador. Seja para responder um e-mail, criar um documento ou codificar um programa, lá estará o usuário digitando texto para a máquina. Embora faça isso diariamente, a grande maioria não faz um uso otimizado do seu editor de textos. Muito tempo é perdido em tarefas repetitivas e vícios de uso.

Este artigo é um guia para acabar com o sofrimento de pessoas viciadas em segurar teclas. Seja para movimentar o cursor ou para apagar grandes quantidades de texto, lá está o usuário estático segurando uma setinha ou a tecla Del por alguns preciosos segundos. Ao longo do dia esses segundos podem se tornar minutos, e ao longo dos meses, horas.

Evitando este desperdício de tempo, entra em cena o melhor editor de textos de todos os tempos: o Vim. Concebido numa época quando conexões remotas eram muito lentas, editar um texto tinha que envolver apertar o menor número de teclas possível. Hoje as conexões são rápidas, mas o conceito de "menos teclas, melhor" ajuda a poupar tempo na rotina diária de editar textos.

As setinhas são para perdedores

Quanto mais você usa as setas, mais tempo perde. Basicamente se usam as setas para movimentar o cursor no arquivo. Para ir ao meio da frase, o usuário fica segurando a seta até chegar no ponto desejado. Para ir ao início do parágrafo anterior, seta pra cima, depois seta para a esquerda. O Vim provê vários comandos que servem para dar "pulos" a outros pontos do arquivo, evitando gastar a ponta do seu dedo segurando a seta.

Seja na alteração de um texto já existente ou na composição de um novo, a edição nunca é linear. Editar um texto consiste em visitar diversas partes do documento, alterando e inserindo letras e palavras. Saber como chegar rapidamente a qualquer ponto do documento, apertando o menor número de teclas possível, é ser ágil e economiza tempo.

Os pulos mais conhecidos e que já possuem tecla especial no teclado são Home e End, que vão ao início e fim da linha e PgUp/PgDn que pulam páginas. O Vim possui comandos para pular a outras partes do arquivo, são eles:

Comando Ação
gg Pula para a primeira linha
G Pula para a última linha
:44 Pula para a linha número 44
{ Pula para o parágrafo anterior
} Pula para o próximo parágrafo
( Pula para a frase anterior
) Pula para a próxima frase
0 Pula para o início da linha atual
$ Pula para o fim da linha atual
`` Desfaz o pulo, volta

Estes são os pulos básicos que todo usuário do Vim deve saber. Com eles é possível "navegar" no documento de maneira rápida, independente de qual o seu conteúdo. Lembre-se que eles são válidos fora do modo de inserção (é preciso apertar <Esc> antes).

Se, por exemplo, lá no meio do texto você precisar voltar à primeira linha para checar uma frase, faz <Esc>gg e depois `` para voltar a editar o texto na posição original.

Assim como outros comandos do Vim, os pulos também podem ser quantificados. Basta adicionar um número na sua frente. Assim, o comando 5{ volta cinco parágrafos.

Além destes pulos para posições fixas, também é possível pular para uma posição qualquer onde esteja o texto desejado. Basta utilizar o o comando /, que procura adiante por um texto. Para ir até a próxima palavra "Linux", digite /Linux<ENTER>. Com o comando n (de Next), pula-se para as próximas ocorrências da mesma palavra. O N (maiúsculo) volta para a anterior.

Um atalho útil é o comando *, que procura a próxima ocorrência da palavra atual do cursor. Similar ao exemplo de pesquisa anterior, bastaria posicionar o cursor sob a palavra "Linux" e apertar o asterisco. Para uma busca mais confortável, basta colocar no ~/.vimrc a seguinte linha mágica set ic is hls scs.

Um outro pulo rápido e muito útil é o comando w (de Word), que pula para o início da próxima palavra. Apertar a tecla "w" três vezes faz o cursor avançar três palavras, e o comando 7w avançará sete palavras. O comando similar é o b (de Back), que pula para palavras anteriores.

E por último, o pulo mais avançado é o de procurar um caractere na mesma linha, com o comando f (de Find). Por exemplo, para ir para a próxima vírgula, o comando é f, e para a vírgula anterior (à esquerda) é F,. A diferença é o comando em maiúscula ou minúscula. O comando 3fa pulará para a terceira letra "a" após o cursor, na mesma linha.

Para ilustrar estes pulos, uma figurinha. Com o cursor sempre sob a letra N, são citados alguns comandos e as setas indicam para onde o cursor pulará.

Pulando rapidamente para a posição certa, o próximo passo é fazer a alteração necessária no texto. Nessa hora o Vim também é imbatível.

A tecla Del é para perdedores

Ficar segurando a tecla Del até apagar o trecho desejado é demorado e impreciso, freqüentemente apagando mais do que o desejado. O Vim provê meios de apagar grandes quantidades de texto apertando somente duas ou três teclas.

O comando x apaga caracteres à direita do cursor. Se for preciso apagar 20 caracteres, em vez de ficar segurando a tecla "Del" alguns segundos, basta digitar o comando 20x.

O comando d (de Delete) apaga caracteres ou linhas, dependendo de como é utilizado. Apertando dd apaga-se a linha toda. Já 5dd apaga as próximas cinco linhas. O comando D maiúsculo, apaga do cursor até o final da linha.

Mas a brincadeira de apagar começa a ficar divertida ao combinar o comando delete com os pulos já vistos. Basta usar a forma d<pulo>.

Comando Ação
dgg Apaga até o início do arquivo
d0 Apaga até o início da linha atual
dw Apaga a palavra
d4b Apaga as quatro palavras anteriores
df. Apaga até o próximo ponto
d) Apaga até o fim da frase

O comando apagará todo o texto desde a posição do cursor até o destino do pulo. Acostume a sempre "falar" o comando, para ficar mais fácil memorizá-lo. Por exemplo, o df. é "Delete Find Ponto", ou seja "Apague até Encontrar um Ponto".

O comando d permanece no modo de comandos após apagar o texto. Caso o usuário queira acrescentar algum texto no lugar do antigo, primeiro será necessário entrar no modo de inserção (comando i). Para economizar esse passo, existe o comando c (de Change), que é idêntico do d, com a diferença de retornar automaticamente ao modo de inserção.

Uma maneira rápida de trocar a palavra "UNIX" por "Linux" é posicionar o cursor na letra "U" e digitar cwLinux. Este comando se lê "Change Word Linux".

Às vezes, não são grandes quantidades, mas alterações de um caractere que precisam ser feitas. Até nessa hora o Vim ajuda. Use o comando r (de Replace) para trocar um caractere por outro, sem precisar entrar no modo de inserção. Por exemplo, na palavra "Lenux", posicione o cursor na letra "e" e aperte ri.

Cada texto removido com os comandos x, d, c e r, é automaticamente copiado, e pode ser colado em outra parte do arquivo com o comando p (de Paste). Então a operação de mover texto no arquivo envolve apagá-lo, pular para a posição nova e colar.

Outro comando muito frequente de utilizar é o xp, que apaga um caractere e o cola uma posição à direita. Para corrigir a palavra "Liunx", basta posicionar o cursor na letra "u" e apertar xp. Parece bobo, mas é muito comum encontrar erros desse tipo em textos, onde duas letras estão com a posição trocada.

Para finalizar, uma tarefa corriqueira que é apagar trechos grandes de um arquivo, como "todas as linhas daqui até o início do arquivo" ou "todas daqui até o fim". Um verdadeiro pesadelo para os seguradores de teclas; já imaginou ficar segurando o Del ou o BackSpace durante minutos num arquivo grande?

Em alguns editores, pode-se usar o mouse para selecionar texto. Com um pouco de paciência e persistência, em alguns segundos consegue-se selecionar todo o texto e apertar Del. Outros mais espertos podem usar o teclado segurando o Shift para selecionar e apertar Ctrl+End para espichar a seleção até o fim do arquivo, e finalmente apertar a tecla Del. No Vim, basta um simples dG para apagar até o fim e um dgg para apagar até o começo. Mais prático impossível.

Todos estes comandos poupam tempo e têm precisão, mas seu uso deve ser forçado, pois é muito difícil abandonar o vício de segurar teclas. Depois de memorizar estes comandos e se disciplinar a usá-los, você não terá mais paciência de usar "outros editores" que lhe fazem perder segundos preciosos.

Artigo originalmente publicado na Revista do Linux edição 49 (a última), de janeiro de 2004.
— EOF —

Aprenda mais sobre Vim

comments powered by Disqus