Vim - Guia Rapido (por Alexandre C. Leite)
Pode ser distribuido livremente.
vi arquivo abre ou cria arquivo
vi +18 arquivo abre arquivo na linha 18
vi arquivo +/”buscar” abre arquivo na ocorrencia de ”buscar”
vi -r arquivo restaura arquivo perdido
view arquivo abre arquivo para leitura
vi -u NONE arquivo: abre vim sem carregar .vimrc nenhum.
vi -u NORC arquivo: abre vim sem carregar o .vimrc do usuário.
gg move para o início do texto
G move para o final do texto
[n]G move para a linha n
[n]% move para a linha correspondente a n% do arquivo
h move para esquerda
j move para baixo
k move para cima
l move para direita
w avança uma palavra
W avança uma palavra (passa pontuação)
b retrocede uma palavra
B retrocede uma palavra (passa pontuação)
H move para o topo da tela
M move para o meio da tela
L move para o pé da tela
0 move para o início da linha
$ move para o fim da linha
e move o cursor para o final da palavra atual
Enter avança uma linha
[n]+ENTER ir para n linhas abaixo da linha atual
Backspace retrocede uma caracter
Espaço avança um caracter
( Início da frase
) Fim da frase
{ move o cursor para p início do parágrafo atual
} move o cursor para p final do parágrafo atual
zz Centraliza página no cursor
Ctrl+f rola uma tela adiante
Ctrl+d rola meia tela adiante
Ctrl+b rola uma tela para atrás
Ctrl+u rola meia tela adiante
Ctrl+L redesenha tela
a insere à direita
A insere à direita, no fim da linha
i insere à esquerda
I insere à esquerda, no início da linha
o insere linha abaixo
O insere linha acima
No modo de inserção:
Ctrl+x Ctrl+l Insere uma linha inteira (comece digitando o inicio da linha antes)
Ctrl+x Ctrl+n Insere um texto do arquivo atual
Ctrl+x Ctrl+i Insere um texto dos arquivos incluídos
Ctrl+x Ctrl+f Inserir um nome de arquivo
Ctrl+n ou Ctrl+p Abrem menu de autocompletar
Ctrl-o Entra em modo especial para inserir comandos do modo normal
Ctrl-o !! <comando> Permite inserir comandos do shell no modo de inserção
cw muda palavra (ou parte da palavra à direita)
cc muda linha
C muda parte da linha à direita do cursor
s substitui texto por caracter sob o cursor
S apaga linha e insere novo texto na linha
r substitui caracter sob o cursor
R substitui um conjunto de caracteres
x apaga caractere onde o cursor está posicionado
Enter quebra linha
J junta a próxima linha com a atual
xp transpõe caracter com o da direita
**~ (tio)** muda caixa da letra (maiuscula ou minuscula)
[n]+~+ENTER inverte a caixa (case) dos n caracteres seguintes ao cursor
u desfaz o comando prévio
U desfaz todos comandos na linha
:u desfaz o ultimo comando de linha
>> Move 1 tab na linha atual
<< Recua 1 tab na linha atual
x apaga caracter
dw apaga palavra
dd apaga linha
[n]+dd apaga N linhas
D apaga parte da linha à direita
:5,10 d apaga linha 5 a 10
yy copia linha
[n]+yy copia n linhas
Y copia linha
p cola linha copiada abaixo
P cola linha copiada acima
y$ Copia do cursor ao fim da linha
y0 Copia do cursor ao início da linha
yw Copia do cursor ao fim da palavra (ou da palavra anterior se estiver em um espaço)
yb Copia do cursor ao início da palavra (ou da palavra anterior se estiver em um espaço)
yiw Copia a palavra sob o cursor
A tecla y pode ser seguida de todas as direções antecedidas ou não de quantidades.
/texto acha texto
?texto acha texto para trás
* (asterisco) procura a palavra sob o cursor
# (tralha) procura a palavra sob o cursor na direção inversa
n encontra próxima ocorrência (ou N a ocorrência anterior)
:%s/procura/substitui/g procura e substitui em tudo
:%s/procura/substitui/gc procura e substitui, consultando
:3,10s/procura/substitui/g procura e substitui, da linha 3 a linha 10
:w salva
:w arquivo salva como novo arquivo
:wq salva e sai (:x faz o mesmo)
ZZ salva e sai
ZQ sai sem salvar
:q! sai sem salvar
:qa! sai sem salvar nenhum documento. (se tiver mais de 1 aberto)
Qq Uma outra forma de sair (mono normal)
dd Recorta a linha
[n]+dd Recorta N linhas a partir da atual (inclusive)
d$ Recorta do cursor ao fim da linha
d0 Recorta do cursor ao início da linha
dw Recorta do cursor ao fim da palavra (ou da palavra anterior se estiver em um espaço)
db Recorta do cursor ao início da palavra (ou da palavra anterior se estiver em um espaço)
diw Recorta a palavra sob o cursor
A tecla d pode ser seguida de todas as direções anteceditas ou não de quantidades.
v +direção seleciona um bloco. v novamente remove a seleção.
Ctrl+v seleciona coluna vertical.
o inverte início da seleção.
Para escrever caracteres especiais, use (no modo insert) Ctrl-k + Digrafo
Ex:
1º -> digite: 1 CTRL-k -o
1ª -> digite 1 CTRL-k -a
1² -> digite 1 CTRL-k 2S
1³ -> digite 1 CTRL-k 3S
½ -> digite CTRL-k 12
Obs: para saber mais digrafos, consulte o help do Vim: :h digraph
:r arquivo insere arquivo
:r arquivo inclui arquivo a partir da linha atual do cursor
:r! comando Insere resultado do comando
:set nu mostra números de linha
:set nonu esconde números ´ de linha
:set rnu mostra números de linha relativos
:set nornu esconde números de linha relativos
:!comando executa comando no shell
:q+ENTER sai da tela de ajuda
:X criptografa o arquivo
:set key= descriptografa o arquivo
[n]+. repete o último comando que alterou o texto n vezes a partir da posição atual do cursor
F1 exibe tela de ajuda
Ctrl-a: Em um número sob o cursor, aumenta o número.
Ctrl-x: Em um número sob o cursor, diminui o número.
:split ou :sp Split - Divide a tela no meio horizontalmente.
:vsplit ou :vsp Split - Divide a tela no meio verticalmente.
:mkview: Salva o estado atual (dobras e posição do cursor).
:loadview: Restaura o estado salvo.
:e arquivo: Abre arquivo em buffer.
Para visualizar um arquivo binário no modo Hexadecimal, abra o arquivo com vim e digite::%!xxd E para voltar-> :%!xxd -r
match Ignore /^#.*/
Para desfazer e mostrar tudo de novo, digite: :match none
Você pode enviar um texto existente para um comando do seu sistema operacional (como bash, python ou awk) e substituir o conteúdo pelo resultado retornado.
No Modo Normal, digite !!. O Vim abrirá a linha de comando na parte inferior exibindo :.!.
Digite um comando que gere texto. Exemplos:
:.!seq 1 5 (Substitui a linha atual pelos números de 1 a 5 empilhados).
:.!cal (Substitui a linha atual por um calendário do mês vigente).
:.!echo "Texto em Maiúsculo" | tr 'a-z' 'A-Z'
:put =repeat('-', 80)
g +direção (j ou k) se move nas linhas visualmente e não pela quebra de linha.
gf sob nome_arquivo abre o arquivo temporariamente. Volte com Ctrl-6 ou Ctrl-0
gv retorna para o ultimo texto selecionado e o seleciona novamente.
gq +direção (j ou k) formata linha(s) na direção.
gqq formata a linha atual.
gqap: Formata todo o parágrafo atual de uma vez.
gqi}: Formata o texto dentro das chaves {} atuais.
gqG: Formata do cursor até o final do arquivo.
Visual + gq: Selecione o texto visualmente (v ou V) e aperte gq para formatar a seleção.
gJ junta a linha de baixo com a atual sem espaço. (J sozinho da um espaço)
g& repete o ultimo comando de substituição em todo o documento.
gt: Vai para a próxima aba.
gT: Volta para a aba anterior.
3gt: Vai direto para a terceira aba.
g* ou g#: Pesquisa palavra sob o cursor de forma parcial.
g?: (modo Visual) Aplica/Remove ROT13 no texto selecionado.
Selecione a coluna de numeros (0) com Ctrl-v e depois digite g Ctrl + a
Você não precisa instalar nada para usar o autocompletar básico do Vim.
Enquanto estiver no Modo de Inserção, utilize os seguintes atalhos:
Ctrl + N: Busca a próxima palavra correspondente no arquivo atual (ou em outros buffers abertos).
Ctrl + P: Busca a palavra anterior correspondente.
Ctrl + X seguido de Ctrl + O: Ativa o Omni Completion (autocompletar inteligente para linguagens de programação).
Ctrl + X seguido de Ctrl + F: Autocompleta caminhos de arquivos e diretórios.
Ctrl + X seguido de Ctrl + L: Autocompleta uma linha inteira idêntica a alguma já escrita.
ctrl+ws: Dividir janelas horizontalmente
ctrl+wv: Dividir janelas verticalmente
ctrl+ww: Alternar entre janelas
ctrl+wq: Sair de uma janela
::tabnew ou :tabe: Abre uma nova aba em branco.
:tabnew (ou :tabe) arquivo.txt: Abre o arquivo em uma nova aba.
:tabclose ou :tabc: Fecha a aba atual.
:tabonly ou :tabo: Fecha todas as outras abas, mantendo apenas a atual.
:tabfind arquivo.txt: Procura e abre um arquivo no seu path em uma nova aba.
:tabfirst (ou :tabf): Vai para a primeira aba.
:tablast (ou :tabl): Vai para a última aba
:tabmove: Sem números, move a aba atual para o final de tudo.
:tabmove +1: Move a aba atual uma posição para a direita.
:tabmove -1: Move a aba atual uma posição para a esquerda.
:tabmove 0: Move a aba atual para o início de tudo (primeira posição).
zf: Cria uma dobra a partir da seleção atual no Modo Visual.
zo: Abre (desdobra) a dobra onde o cursor está posicionado.
zc: Fecha novamente a dobra.
za: Alterna o estado da dobra (se estiver fechada, ela abre; se estiver aberta, ela fecha).
zR: Abre todas as dobras do arquivo.
zM: Fecha todas as dobras do arquivo.
zd: Deleta a dobra sob o curso
Obs:
+: Indica uma dobra fechada.
-: Indica o início de uma dobra aberta.
|: Mostra a extensão da dobra aberta nas linhas seguintes.
Ativar: :set spell
Desativar: :set nospell
Ativar em português: :set spell spelllang=pt
Ativar em inglês: :set spell spelllang=en
]s: Pula para a próxima palavra errada.
[s: Volta para a palavra errada anterior.
z=: Abre a lista de sugestões para a palavra sob o cursor. Digite o número da opção correta e pressione
zg: Adiciona a palavra ao seu dicionário pessoal (ela deixa de ser um erro).
zw: Marca uma palavra como incorreta (caso o Vim ache que ela está certa, mas você não queira usá-la).
zuw ou zug: Desfaz a ação anterior sobre a palavra.
m{a-z}: Defina a marca {az} na posição do cursor
m{AZ} define uma marca global.
'{a-z}: Mova o cursor para o início da linha onde a marca foi inserida.
'': Retorne ao local de salto anterior
:delm {a-z}: Para deletar marcas (marks). Pode-se usar :delm a b c ou :delm a-c
:delmarks!: Deleta todas as marcas {a-z} (minúsculas) do documento atual.
:delmarks a-z A-Z: Deleta todas as marcas, inclusive maiúsculas.
:marks: Para ver quais marcas estão ativas.