Saltar para o conteúdo

Vim/Os saltos

Origem: Wikilivros, livros abertos por um mundo aberto.

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