VIM - CARTÃO DE REFERÊNCIA


Movimentos básicos
h l k jcaracter esq., dir., linha acima, abaixo
b wpalavra/token esquerda, direita
ge efim palavra/token esquerda, direita
{  }começo parágrafo anterior, posterior
( )começo sentença anterior, posterior
0 gmcomeço, meio da linha
^  $primeiro, último caracter da linha
nG ngglinha n, padrão o último, primeiro
n%porcentagem n do arquivo (n deve existir)
n|coluna n da linha atual
%acha próximo parêntese, colchete, coment., #define
nH nLlinha n do topo, base da janela
Mlinha do meio da janela

Inserção & substituição modo insert
i ainsere antes, depois do cursor
I Ainsere no início, fim da linha
gIinsere texto na primeira coluna
o Oabre nova linha abaixo, acima da linha atual
rcsubstitui caracter sob cursor por c
grccomo r, mas sem afetar o layout
Rsubstitui caracteres começando do cursor
gRcomo R, mas sem afetar o layout
cmmuda texto do comando de movimento m
cc or Smuda linha atual
Cmuda até o fim da linha
smuda um caracter e insere
~muda maiúsc./minúsc. e avança cursor
g~mmuda maiúsc./minúsc. do movimento m
gum gUmtexto do movim. m minúsculo, maiúsculo
<m >mdesloca esq., dir. texto do movimento m
n<< n>>desloca n linhas esquerda, direita

Eliminação
x Xapaga caracter sob, antes do cursor
dmapaga texto do comando movimento m
dd Dapaga linha atual, até fim da linha
J gJjunta linha atual com próxima, sem espaço
:rdapaga r linhas
:rdxapaga r linhas, põe registrador x

Modo Inserção
^Vc ^Vninsere caracter c literalmente, valor decimal n
^Ainsere texto inserido anteriormente
^@mesmo que ^A e pára insert modo comando
^Rx ^R^Rxinsere conteúdo registrador x, literalmente
^N ^Pcompleta texto antes, depois do cursor
^Wapaga palavra antes do cursor
^Uapaga todos caracteres inseridos linha atual
^D ^Tdesloca esquerda, direita largura 1 desloc.
^Kc1c2 or c1c2entra dígrafo \c1,c2\
^Ocexecuta c em modo comando temporário
^X^E ^X^Yrola acima, abaixo
<esc> or ^[abandona edição modo comando

Copiando
"xusa registrador x para próximo delete, yank, put
:regmostra o conteúdo de todos os registradores
:reg xmostra conteúdo dos registradores x
ymcopia texto do comando de movimento m
yy or Ycopia texto da linha atual no registrador
p Pcola registrador depois, antes da posição cursor
]p [pcomo p, P com recuo ajustado
gp gPcomo p, P deixando cursor depois texto novo

Inserção Avançada
g?mfaz codificação rot13 no movimento m
n^A n^X+n, -n no número sob o cursor
gqmformata linhas do mov. m com largura fixada
:rce wcentra linhas na faixa r para largura w
:rle ialinha esq. linhas na faixa r com recuo i
:rri walinha dir. linhas na faixa r para largura w
!mcfiltra linhas do mov. m através comando c
n!!cfiltra n linhas através do comando c
:r!cfiltra faixa de r linhas através do comando c

Modo Visual
v V ^Vcomeça/pára destaque caract., linhas, bloco
otroca posição do cursor com início do destaque
gvinicia destaque na area visual anterior
aw as apseleciona uma palavra, sentença, parágrafo
ab aBseleciona um bloco ( ), um bloco { }

Comandos desfazer & repetir
u Udesfaz último cmd, restaura última linha mudada
.  ^Rrepete últimas mudanças, refaz último desfazer
nrepete últimas mudanças com cont. trocado por n
qc qCgrava, anexa caracteres digitados no regist. c
qpára de gravar
@cexecuta o conteúdo do registrador c
@@repete comando @ anterior
:@cexecuta registrador c como comando Ex
:rg/p/cexecuta comando Ex c na faixa r
onde padrão p combinar

Movimento complexo
- +linha acima/abaixo no 1o caracter não-branco
B Wpalavra separada por espaço a esq., a dir.
gE Efim de palavra separada por espaço a esq., a dir.
n_desce n-1 linhas no 1o caracter não-branco
g0início da linha screen
g^  g$primeiro, último caracter da linha screen
gk gjlinha screen acima, abaixo
fc Fcocorrência seguinte, anterior do caracter c
tc Tcantes da ocorrência seguinte, anterior de c
; ,repete último fFtT, na direção oposta
[[ ]]começo de seção atrás, a frente
[] ][fim de seção atrás, a frente
[( ])(, ) não fechado atrás, a frente
[{  [}{, } não fechado atrás, a frente
[m ]mcomeço, fim de java method atrás, a frente
[# ]##if, #else, #endif não fechado atrás, a frente
[* ]*começo, fim de /* */ atrás, a frente

Busca & substituição
/s  ?sprocura a frente, atrás por s
/s/o  ?s?oprocura s atrás, frente com desloc. o
or /repete última busca a frente
or ?repete última busca atrás
# *procura atrás, a frente palavra sob o cursor
g# g*o mesmo, mas busca também parcial
gd gDdefinição local, global de símbolo sob cursor
:rs/f/t/xsubstitui f por t na faixa r
x: g-todas as ocorrências, c-confirma mudanças
:rs xrepete substituição com novos r & x

Caracteres especiais em padrões de busca
.   ^  $qualquer caracter, começo, fim de linha
\< \>início, fim de linha
[c1-c2]um caracter na faixa c1..c2
[^c1-c2]um caracter fora da faixa
\i \Ium identificador, excluindo dígitos
\k \Kuma palavra-chave, excluindo dígitos
\f \Fum nome de arquivo, excluindo dígitos
\p \Pum caracter imprimível, excluindo dígitos
\s \Sum espaço em branco, um espaço não-branco
\e \t \r \b<esc>, <tab>, <>, <>
\= * \+combina 0..1, 0.., 1.. de átomos preced.
\|separa dois ramos (  or)
\( \)agrupa padrões em um átomo

Deslocamentos em comandos de busca
n or +nlinha n abaixo na coluna 1
-nlinha n acima na coluna 1
e+n e-nn caracteres a dir., esq. do fim da combin.
s+n s-nn caracteres a dir., esq. do começo combin.
;scexecuta comando de busca sc próximo

Marcas e movimentos
mcmarca posição atual com marca [a..Z]
`c `Cvai para marca c no arquivo atual, C em qualquer arq.
`0..9vai para última posição
`` `"vai para posição antes salto, na última edição
`[ `]vai para começo, fim texto operado anterior
:marksmostra lista de marcas ativas
:jumpsmostra lista de saltos
n^Ovai para na posição mais velha na lista saltos
n^Ivai para na posição mais nova na lista saltos

Mapeamento de teclas & abreviações
:map c emapeia e em modo normal & visual
:map!  c emapeia e em modo & linha-cmd
:unmap c  :unmap!  cremove mapeamento c
:mk fescreve mapeamentos, ajustes... atuais no arquivo f
:ab c eadiciona abreviação para e
:ab cmostra abreviação começando com c
:una cremove abreviação c

Tags
:ta tpula para tag t
:ntapula para na tag mais nova na lista
^] ^Tpula para tag sob cursor, retorna da tag
:ts tlista tags que comb. e seleciona uma p/ pular
:tj tpula para tag ou seleciona uma se várias
:tagsmostra lista de tags
:npo  :n^Tpula atrás de, para na tag antiga
:tlpula para última tag que combina
^W}  :pt tprevê tag sob cursor, tag t
^W]divide janela e mostra tag sob cursor
^Wz or :pcfecha janela visualização tag

Rolagem & multi-janela
^E ^Yrola linha acima, abaixo
^D ^Urola meia página acima, abaixo
^F ^Brola página acima, abaixo
zt or zpõe linha atual topo da janela
zz or z.  põe linha atual centro da janela
zb or z-põe linha atual base da janela
zh zlrola um caracter a direita, esquerda
zH zLrola meia tela a direita, esquerda
^Ws or :splitdivide janela em duas
^Wn or :newcria nova janela vazia
^Wo or :oncoloca janela atua em uma tela
^Wj ^Wkmove para janela abaixo, acima
^Ww ^W^Wmove para janela abaixo, acima (troca)

Comandos Ex ()
:e fedita arquivo f, a menos que modificado
:e!  fedita arq. f sempre (por padrão relê atual)
:wn :wNgrava arquivo e edita próximo, anterior
:n :Nedita arquivo seguinte, anterior na lista
:rwgrava faixa r no arquivo atual
:rw fgrava faixa r no arquivo f
:rw>>fadiciona faixa r no arquivo f
:q :q!sai e confirma, sai e descarta mudanças
:wq or :x or ZZgrava no arquivo atual e sai
<up> <down>chama comandos começando com atual
:r finsere conteúdo do arquivo f abaixo cursor
:r!  cinsere saída comando c abaixo cursor
:allabre janela para cada arquivo na lista argtos.
:argsmostra a lista de argumentos

Faixas Ex
, ;  separa dois números linhas, def. para 1a linha
num número de linha n absoluto
.   $linha atual, última linha no arquivo
% *arquivo todo, area visual
'tposição da marca t
/p/ ?p?linha seguinte, anterior onde p combina
+n -n+n, -n até número linha precedente

Miscelânea
:sh  :!ccomeça shell, executa cmdo. c em shell
Kprocura palavra-chave sob cursor com man
:makecomeça make, lê erros e vai ao primeiro
:cn  :cpmostra erro seguinte, anterior
:cl  :cflista erros, lê erros do arquivo
^L ^Gredesenha tela, mostra nome arquivo e posição
g^Gmostra coluna cursor, linha e posição caracter
gamostra valor ASCII do caracter sob cursor
gfabre arquivo cujo nome está sob cursor
:redir>fredireciona saída para arquivo f
^@ ^K ^_  \teclas sem uso, disponíveis para mapear


Copyright (C) 2005 by Laurent GRÉGOIRE (laurent.gregoire@icam.fr)
Translated from English by Paulo R. Ormenese
Converted from vimqrc-pt.tex using a Python script.
You can find the latest revision at http://tnerual.eriogerg.free.fr