Vim/Os saltos

Origem: Wikilivros, livros abertos por um mundo aberto.
< Vim
Ir para: navegação, pesquisa

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]

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

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<------------------------------------------