Vim/Movendo
Movendo-se no Vim
[editar | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]Para rolar uma página de cada vez (em modo normal)
Ctrl-f Ctrl-b
Lista de saltos
[editar | editar código-fonte]: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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]Para ler mais sobre como mover-se veja a seção os saltos.