Modos
Troca de Modo
iModo de inserção (antes do cursor)
aModo de inserção (após o cursor)
oInserir linha abaixo e entrar no modo de inserção
OInserir linha acima e entrar no modo de inserção
vModo visual (caractere)
VModo visual (linha)
Ctrl+vModo de bloco visual
:Modo de linha de comando
RModo de substituição
EscVoltar ao modo normal
Navegação
Movimento por Caractere e Linha
h j k lEsquerda, baixo, cima, direita
0 / ^Início da linha / primeiro não-espaço
$Fim da linha
w / WPróxima palavra / PALAVRA
b / BPalavra anterior / PALAVRA
e / EFim da palavra / PALAVRA
f{c} / F{c}Encontrar caractere para frente / trás
t{c} / T{c}Até o caractere para frente / trás
Movimento por Tela e Arquivo
gg / GIr para a primeira / última linha
:{n}Ir para a linha n
Ctrl+d / Ctrl+uMeia página abaixo / acima
Ctrl+f / Ctrl+bPágina completa abaixo / acima
H / M / LTopo / meio / base da tela
%Pular para o delimitador correspondente
Edição
Inserir e Acrescentar
IInserir no início da linha
AAcrescentar no fim da linha
eaAcrescentar no fim da palavra
giInserir na última posição de inserção
Excluir e Alterar
x / XExcluir caractere sob / antes do cursor
ddExcluir linha
dwExcluir palavra
d$ / DExcluir até o fim da linha
cc / SAlterar linha inteira
cwAlterar palavra
c$ / CAlterar até o fim da linha
ci" / ci(Alterar dentro de aspas / parênteses
Copiar e Colar
yyCopiar (yank) linha
ywCopiar palavra
y$Copiar até o fim da linha
p / PColar após / antes do cursor
JUnir a linha de baixo à atual
Desfazer e Repetir
uDesfazer
Ctrl+rRefazer
.Repetir último comando
Busca e Substituição
Busca
/patternBuscar para frente
?patternBuscar para trás
n / NPróxima / ocorrência anterior
*Buscar palavra sob o cursor (para frente)
#Buscar palavra sob o cursor (para trás)
Substituição
:s/old/new/ " substituir primeiro na linha :s/old/new/g " substituir todos na linha :%s/old/new/g " substituir todos no arquivo :%s/old/new/gc " substituir todos, confirmar cada um
Modo Visual
Seleção
vIniciar seleção de caractere
VIniciar seleção de linha
Ctrl+vIniciar seleção de bloco
oMover para o outro extremo da seleção
gvReselecionar última seleção visual
Ações na Seleção
dExcluir seleção
yCopiar seleção
cAlterar seleção
>Indentar seleção
<Remover indentação da seleção
~Alternar maiúsculas/minúsculas
U / uMaiúsculas / minúsculas da seleção
Buffers e Janelas
Buffers
:lsListar buffers abertos
:bn / :bpPróximo / buffer anterior
:b{n}Ir para o buffer n
:bdFechar buffer atual
:e fileAbrir arquivo em novo buffer
Janelas
:sp fileDivisão horizontal
:vsp fileDivisão vertical
Ctrl+w h/j/k/lNavegar para janela
Ctrl+w =Equalizar tamanhos de janela
Ctrl+w qFechar janela
Abas
:tabnew fileAbrir arquivo em nova aba
gt / gTPróxima / aba anterior
:tabcloseFechar aba atual
Registros
Usando Registros
"ayCopiar para o registro a
"apColar do registro a
"AyAcrescentar cópia ao registro a
:regMostrar todos os registros
Registros Especiais
""Sem nome (último excluído/copiado)
"0Última cópia
"+Área de transferência do sistema
"/"Último padrão de busca
".Último texto inserido
"_Buraco negro (descartar)
Macros
Gravar e Reproduzir
q{a}Iniciar gravação de macro no registro a
qParar gravação
@{a}Reproduzir macro do registro a
@@Repetir última macro
5@aReproduzir macro a 5 vezes
Exemplo de Macro
qa " iniciar gravação em a I// " inserir // no início da linha Esc j " voltar ao normal, descer q " parar gravação 10@a " comentar as próximas 10 linhas
Configurações
Opções Comuns
:set number " mostrar números de linha :set relativenumber " números de linha relativos :set tabstop=4 " largura do tab :set expandtab " espaços em vez de tabs :set ignorecase " busca sem distinção de maiúsculas
Exibição e Comportamento
:set wrap / nowrap " alternar quebra de linha :set hlsearch " realçar correspondências de busca :set incsearch " busca incremental :set cursorline " realçar linha atual :syntax on " ativar realce de sintaxe
Operações de Arquivo
Salvar e Sair
:wSalvar
:w fileSalvar como arquivo
:qSair (falha se não salvo)
:q!Sair sem salvar
:wq / :x / ZZSalvar e sair
:waSalvar todos os buffers
:qaSair de todos os buffers
Informações do Arquivo e Externo
Ctrl+gMostrar informações do arquivo
:!cmdExecutar comando do shell
:r !cmdInserir saída do comando
:r fileInserir conteúdo do arquivo
Objetos de Texto
Objetos Internos e ao Redor
iw / awDentro / ao redor da palavra
is / asDentro / ao redor da sentença
ip / apDentro / ao redor do parágrafo
i" / a"Dentro / ao redor de aspas duplas
i' / a'Dentro / ao redor de aspas simples
i( / a(Dentro / ao redor de parênteses
i{ / a{Dentro / ao redor de chaves
it / atDentro / ao redor de tag HTML
Combinações Comuns
ciw " alterar palavra interna di" " excluir dentro de aspas ya{ " copiar ao redor de chaves vip " selecionar parágrafo interno
Marcas e Saltos
Marcas
m{a}Definir marca a na posição do cursor
'aSaltar para a linha da marca a
`aSaltar para a posição exata da marca a
:marksListar todas as marcas
Lista de Saltos
Ctrl+oSaltar para posição anterior
Ctrl+iSaltar para próxima posição
:jumpsMostrar lista de saltos
''Saltar para a última posição de salto