Fora do modo de inserção (i), dentro do modo de comando (Esc), é possível movimentar o cursor através das teclas direcionais do seu teclado ou usando teclas de comando para isto.
As teclas direcionais são as setinhas
↓ → ← ↑
Há também as teclas de comando:
- h ← move o cursor um caractere para a esquerda
- j ↓ move o cursor uma linha para baixo
- k ↑ move o cursor uma linha para cima
- l → move o cursor um caractere para a direita
As teclas de movimentação do cursor vão muito além disto no Vim.
Além de poder “andar” um caractere de cada vez, também há comandos para:
- se mover entre blocos de texto, como palavras, sentenças ou parágrafos
- se mover entre telas de um mesmo arquivo
Por que usar as teclas de comando em vez das direcionais do teclado?
Não se esqueça: tudo no Vi ou no Vim, é pensado para a máxima produtividade de quem digita.
Claro que “o que é produtivo e satisfatório para um, pode não ser para outro”.
Cabe a você decidir se vale a pena incorporar uma maneira nova de fazer as coisas ou não.
Aprender a usar este método de movimentação dentro do texto, vai tomar alguns minutos ou talvez mais.
Ao se permitir o aprendizado, você pode perceber que ele poupa tempo, no modo de comando.
A principal vantagem é que este caminho possibilita posicionar o cursor aonde você quiser no texto, sem precisar retirar a mão do centro do teclado.
Use valores numéricos para ter mais controle sobre a movimentação
Você pode indicar por quantos caracteres ou linhas o cursor irá se mover, dentro do seu texto.
Veja estes exemplos:
- 4l — o comando faz o cursor ‘andar’ 4 espaços para a direita
- 5j — o comando faz o cursor se mover 5 linhas para cima
Desta maneira, o Vim oferece meios de multiplicar os efeitos de um comando antes de sua execução.
Mais comandos para mover o cursor no Vim
Para se movimentar por entre blocos de texto, use os seguintes comandos de teclado:
- 0 — (zero) para ir para o início de uma sentença ou parágrafo. Equivale a Home.
- $ — para ir para o final de um parágrafo. Equivale a End.
- w — (word) se move uma palavra de cada vez para frente.
- b — (backwards?) se move uma palavra de cada vez para trás.
- – — sobe uma linha.
- + — desce uma linha.
Obviamente, as teclas + e – fogem daquele objetivo de realizar uma movimentação mais natural no teclado.
Uma linha, no Vim, não é a mesma coisa que a sua representação visível, na tela, com 80 colunas.
Uma linha é um bloco de texto compreendido entre uma quebra de linha e outra.
Em outras palavras, começa com um Enter e termina no próximo Enter.
Em todas estas teclas é possível acrescentar argumentos numéricos para multiplicar os efeitos de cada comando. Por exemplo:
- 4b — para mover 4 palavras para trás
- 5- — para subir 5 linhas
Você pode usar o comando G para ir até o fim do arquivo.
Com argumentos numéricos, é possível dizer ao comando G exatamente em que linha o cursor deve ficar.
Desta forma, 1G leva o cursor para o início do arquivo e 42G leva até a linha 42.