Movendo-se no Vim

editar

Estando em modo insert

<ESC> lhe leva para o modo normal

as letras h,k,l,j funcionam como setas:

        k
    h       l
        j

ou seja, a letra k é usada para subir no texto a letra j para descer, a letra h para mover-se para a esquerda e a letra l para mover-se para a direita. A idéia é que se consiga ir para qualquer lugar do texto sem tirar as mão do teclado.

A maioria dos comandos do vim pode ser precedida por um quantificador

j ............... em modo normal desce uma linha
5j .............. descer 5 linhas
k ............... em modo normal sobe uma linha
Ctrl-f .......... avança uma página (equivale a PAGEDOW)
Ctrl-b .......... retrocede uma página (equivale a PAGEUP)

Em modo normal

fx ............... move o cursor até a próxima ocorrência de x
Fx ............... move o cursor até a ocorrência anterior de x
tx ............... move o cursor até um caractere antes de 'x'
Tx ............... move o cursor até um caractere depois de 'x' anterior
w ................ move o cursor para o início da próxima palavra
W ................ pula para próxima palavra (desconsidera hifens)
E ................ pula para o final de próxima palavra (desconsidera hifens)
e ................ move o cursor para o final da próxima palavra
zt ............... posiciona o cursor no topo da página
zm ............... posiciona o cursor no meio da página

Em modo normal 'dd' deleta uma linha, ou seja o 'd' está associado a deleção, portanto você pode fazer conbinações do tipo...

dfx .............. deleta até o próximo x
d5j .............. deleta 5 linhas

Em modo normal 'yy' copia a linha atual, ou seja o 'y' estão associado a cópia, portanto você pode fazer conbinações do tipo...

yfx .............. copia até o próximo x
y5j .............. copia 5 linhas

O que foi deletado ou copiado pode ser colado

p ................ cola o que foi copiado ou deletado abaixo
P ................ cola o que foi copiado ou deletado acima

Big word's

editar

Para o vim 'palavras-separadas-por-hifen' são consideradas em separado, portanto se você usar, em modo normal 'e' avançar entre as palavras ele pulará uma de cada vez, no entanto, se usar 'E' em maiúsculo (como visto), ele pulará a "grande palavra :)

E .......... pula para o final de palavras com hifen
B .......... pula palavras com hifen (retrocede)
W .......... pula palavras hifenizadas

Podemos pular sentenças (até ponto ou vírgula usando parênteses

) .......... pula uma sentença para frente
( .......... pula uma sentença para tráz
} .......... pula um parágrafo para frente
{ .......... pula um parágrafo para tráz

Dica: Você pode combinar o comando de deleção 'd' com o comando de movimento (considere o modo normal) para apagar até a próxima vírgula use: df,

Para entrar em Modo de Edição, pressione

i ................inicia o modo insert na posição atual
I ................inicia o modo insert no início da linha atual
a ................inicia o modo insert após o caractere atual
A ................inicia o modo insert no final da linha atual
o ................inicia o modo insert na linha abaixo
O ................inicia o modo insert uma linha acima

Para ir para linhas específicas, digite

:n<ENTER>

onde n corresponde ao número da linha

Para retornar ao modo normal, pressione ESC ou use Control+L ^L (letra minúscula)

Em modo normal você pode ir para uma linha qualquer digitando

ngg

Onde n é o número da linha que você deseja

Saltos no documento

editar
  gg ............. vai para o início do arquivo
  G .............. vai para o final do arquivo
  25gg ........... salta para a linha 25
  '' ............. salta para a linha da última posição em que o cursor estava
  `' ............. salta exatamente para a posição em que o cursor estava
  0 .............. vai para o início da linha
  $ .............. vai para o final da linha
  gi ............. entra em modo insert no ponto da última edição
  gv ............. repete a última seleção visual e posiciona o cursor neste local
  gf ............. abre o arquivo sob o cursor
  gd ............. salta para declaração de variável sob o cursor
  gD ............. salta para declaraçao (global) de variável sob o cursor

Caso tenha uma estrutura como abaixo:

 def pot(x):
     return x**2

E tiver uma referência qualquer para a função 'pot' e desejar mover-se até sua definição, basta posicionar o cursor sobre a palavra 'pot' e pressionar (em modo normal)

gd

Se a variável for global, ou seja, estiver fora do documento (provavelmente em outro) use...

gD

Quando definimos uma variável tipo

var = 'teste'

e em algum ponto do documento houver referência a esta variável e quisermos ver seu conteúdo, fazemos

[i

Obs: observe a barra de status do vim se o tipo de arquivo está certo, tipo

 ft=python

a busca por definições de função só funciona se o tipo de arquivo estiver correto

 :set ft=python

outro detalhe para voltar ao último ponto em que você estava

  ''

Paginando

editar

Para rolar uma página de cada vez (em modo normal)

Ctrl-f
Ctrl-b

Lista de saltos

editar
 :h jumps ........ ajuda sobre a lista de saltos
 :jumps .......... exibe a lista de saltos
 control-i ....... salta para a posição mais recente 
 control-o ....... salta para a posição mais antiga

Usando marcadores

editar

No vim podemos marcar o ponto em que o cursor está, você deve estar em modo normal, portanto pressione

 <ESC>

você estará em modo normal, assim podemos pressionar a tecla 'm' seguida de uma das letras do alfabeto

 ma  "cria uma marca 'a"
 `a  move o cursor para a marca 'a'

Marcas globais

editar

Marcas globais são marcas que permitem pular de um arquivo a outro.

Para criar uma marca global use a letra que designa a marca em maiúsculo

 mA  "cria uma marca global 'A' "

Veja também

editar

Para ler mais sobre como mover-se veja a seção os saltos.