Vim/Os saltos
Os saltos
[editar | editar código-fonte]Observaçãp: lembre-se '^' equivale a CTRL, portanto ^I = CTRL-I
Trechos entre colchetes são opcionais
Para ir para o começo do arquivo digite:
gg
Para ir para o fim do arquivo digite:
G
Para ir para o começo de uma linha digite o caractere
0
Para ir para o final de uma linha digite o caractere
$
Para ir para a próxima ocorrência de uma letra faça:
f<letra> - sentido inverso F<letra>
Para colocar o cursor uma letra antes da desejada
t<letra> - sentido inverso T<letra>
Para saltar para a próxima ocorrência da palavra onde está o cursor:
*
Para saltar para a última ocorrência da palavra onde está o cursor:
#
Para localizar o parêntese correspondente
%
Iniciar a inserção no fim da linha
A
Iniciar a inserção no começo da linha
I
Pode-se fazer combinações, por exemplo:
fx..........move até o próximo x dfx.........deleta até o próximo x
Retroceder na lista de saltos, incluindo outros arquivos,
^o
Avançar na lista de saltos
^i
Abrir o último arquivo editado "modo normal"
'0
Abrir o penúltimo arquivo editado
'1
Para pular para uma definição de função (para mais detalhes veja :h gd)
gd
Para pular para o fim do parágrafo faça
}
Para pular para a coluna 10 da linha atual
10|
Pular para definição de uma variável
[i ........ Mostra a primeira linha que contém a palavra sob o cursor
O atalho acima é útil quando se está programando, se estiver num trecho de código pode visualizar o conteúdo das variáveis que foram definidas acima
Você pode abrir vários arquivos tipo txt usando wildcards tipo *.txt e fazer algo como gravar e ir para o próximo "write + next" com o comando a seguir
:wn
Ou gravar um arquivo e voltar ao anterior
:wp
Pode ainda "rebobinar" sua lista de arquivos :)
:rew[wind]
Ou ir para o primeiro
:fir[ist]
Lista de alterações
[editar | editar código-fonte]O vim mantém uma lista de alterações, para avançar nas alterações use
g,
Para recuar nas alterações
g;
Para visualizar a lista de alterações
:changes
Para mais detalhes
:h changes
Abrindo arquivos rapidamente
[editar | editar código-fonte]Para ser capaz de saltar entre arquivos sem que o vim reclame configure estas duas opções no seu arquivo de configurração
:set hidden
:set path+=**
Ao posicionar o cursor sobre um "nome de arquivo" você pode digitar 'gf' para abrir o mesmo
gf
O comando acima abre o arquivo sob o cursor na janela atual, se preferir em nova janela use este atalho em modo normal
Ctrl-w Ctrl-f
Ao posicionar o cursor sobre o nome de um arquivo de ajuda você pode abri-lo com 'K' (maiúsculo)
K
Se passar a editar um segundo arquivo na mesma janela você pode alternar entre ambos (arquivo atual e anterior com o atalho)
CTRL+6
Ao abrir o vim você pode solicitar a reabertura do último arquivo em que estava com o atalho
'0
Lista de saltos
[editar | editar código-fonte]O vim mantém uma listta de saltos, para vê-la digite
:h jumplist
Para avançar e retroceder a lista de saltos use:
Ctrl-o
Ctrl-i
Função para buscar arquivos
[editar | editar código-fonte]Observação: Esta função depende de programas externos (leia seu conteúdo) fonte: http://www.vim.org/tips/tip.php?tip_id=1432
Se desejar faça este mapeamento em seu ~/.vimrc map ,f :Fi Para usá-lo basta colar estas linhas no vimrc e fazer: :Find nome -------------------8<------------------------------------------ function! Find(name) let l:_name = substitute(a:name, "\\s", "*", "g") let l:list=system("find . -iname '*".l:_name."*' -not -name \"*.class\" -and -not -name \"*.swp\" | perl -ne 'print \"$.\\t$_\"'") let l:num=strlen(substitute(l:list, "[^\n]", "", "g")) if l:num < 1 echo "'".a:name."' not found" return endif if l:num != 1 echo l:list let l:input=input("Which ? (<enter>=nothing)\n") if strlen(l:input)==0 return endif if strlen(substitute(l:input, "[0-9]", "", "g"))>0 echo "Not a number" return endif if l:input<1 || l:input>l:num echo "Out of range" return endif let l:line=matchstr("\n".l:list, "\n".l:input."\t[^\n]*") else let l:line=l:list endif let l:line=substitute(l:line, "^[^\t]*\t./", "", "") execute ":e ".l:line endfunction command! -nargs=1 Find :call Find("<args>") -------------------8<------------------------------------------