Global
- :h[elp] palavra chave - abrir a página de ajuda para um termo
- :sav[eas] arquivo - salvar um arquivo como
- :clo[se] - fechar o painel atual
- :ter[minal] - open a terminal window
- K - abrir a página do manual para a palavra abaixo do cursor
Movimento do cursor
- h - movimenta o cursor para esquerda
- j - movimenta o cursor para baixo
- k - movimenta o cursor para cima
- l - movimenta o cursor para direita
- gj - movimenta o cursor para baixo (texto multilinha)
- gk - movimenta o cursor para cima (texto multilinha)
- H - movimenta o cursor até a parte superior da tela
- M - movimenta o cursor até o meio da tela
- L - movimenta o cursor até a parte inferior da tela
- w - pula para frente até o inicio de uma palavra
- W - pula para frente até o inicio de uma palavra (palavras podem ter pontuação)
- e - pula para frente até o fim de uma palavra
- E - pula para frente até o fim de uma palavra (palavras podem ter pontuação)
- b - pula para trás até o início de uma palavra
- B - pula para trás até o início de uma palavra (palavras podem ter pontuação)
- ge - pula para trás até o fim de uma palavra
- gE - pula para trás até o fim de uma palavra (palavras podem ter pontuação)
-
% - movimenta o cursor para o caracter correspondente (pares parão suportados: '()', '{}', '[]' - use
:h matchpairs
no vim para mais informações) - 0 - pula até o início da linha
- ^ - pula até o primeiro caractere não vazio da linha
- $ - pula até o fim da linha
- g_ - pula até o último character não vazio da linha
- gg - vai para a primeira linha do documento
- G - vai para a última linha do documento
- 5gg or 5G - vai para a linha 5
- gd - movimenta para a declaração local
- gD - movimenta para a declaração global
- fx - pula para a próxima ocorrência do caractere x
- tx - pula para antes da próxima ocorrência do caractere x
- Fx - pula para a ocorrência anterior do caractere x
- Tx - pula para depois da ocorrência anterior do caractere x
- ; - repete o último movimento de f, t, F ou T
- , - repete o último movimento de f, t, F ou T para trás
- } - pula para o próximo parágrafo (ou função/bloco, ao editar o código)
- { - pular para o parágrafo anterior (ou função/bloco, ao editar o código)
- zz - centraliza o cursor na tela
- zt - posiciona o cursor no início da tela
- zb - posiciona o cursor no fim da tela
- Ctrl + e - movimenta a tela uma linha para baixo (sem mover o cursor)
- Ctrl + y - movimenta a tela uma linha para cima (sem mover o curso)
- Ctrl + b - movimenta a tela uma página para cima (cursor na última linha)
- Ctrl + f - movimenta a tela uma página para baixo (cursor na primeira linha)
- Ctrl + d - movimenta a tela e o cursor 1/2 página para baixo
- Ctrl + u - movimenta a tela e o cursor 1/2 página para cima
Modo de inserção - inserir/acrescentar texto
- i - insere antes do cursor
- I - insere no começo da linha
- a - insere depois do cursor
- A - insere no final da linha
- o - insere uma nova linha abaixo da linha atual
- O - insere uma nova linha acima da linha atual
- ea - insere no final da palavra
- Ctrl + h - apaga o caractere antes do cursor no modo de inserção
- Ctrl + w - apaga a palavra antes do cursor no modo de inserção
- Ctrl + j - adiciona uma quebra de linha na posição do cursor no modo de inserção
- Ctrl + t - recuar (mover para a direita) uma linha em um shiftwidth durante o modo de inserção
- Ctrl + d - desrecuar (mover para a esquerda) uma linha em um shiftwidth durante o modo de inserção
- Ctrl + n - inserir (auto-completar) a próxima correspondência antes do cursor durante o modo de inserção
- Ctrl + p - inserir (auto-completar) a correspondência anterior antes do cursor durante o modo de inserção
- Ctrl + rx - inserir o conteúdo do registrador x
- Ctrl + ox - Entrar temporariamente no modo normal para executar um comando do modo normal x.
- Esc or Ctrl + c - sair do modo de inserção
Editando
- r - substituir um único caractere
- R - substituir mais de um caractere, até pressionar ESC.
- J - juntar a linha abaixo da linha atual
- gJ - juntar a linha abaixo à linha atual sem espaço entre elas
- gwip - refazer parágrafo
- g~ - alternar maiúsculas e minúsculas até o movimento
- gu - alterar para minúsculas até o movimento
- gU - alterar para maiúsculas até o movimento
- cc - substituir toda a linha
- c$ or C - substituir até o final da linha
- ciw - substituir a palavra inteira
- cw or ce - substituir até o final da palavra
- s - deletar um caractere e substituir texto
- S - deletar a linha e substituir texto (igual ao comando cc)
- xp - trocar duas letras (deletar e colar)
- u - desfazer
- U - restaurar a linha inteira
- Ctrl + r - refazer
- . - repetir o último comando
Marcação de texto (modo visual)
- v - iniciar modo visual, selecionar linhas e executar um comando (como y-yank)
- V - iniciar modo visual selecionando a linha inteira
- o - mover para o fim/início da seleção
- Ctrl + v - iniciar modo de bloco visual
- O - mover para o fim/início do bloco
- aw - selecionar uma palavra
- ab - selecionar um bloco com ()
- aB - selecionar um bloco com {}
- at - selecionar um bloco com tags <>
- ib - selecionar um bloco interno com ()
- iB - selecionar um bloco interno com {}
- it - selecionar um bloco interno com tags <>
- Esc or Ctrl + c - sair do modo visual
Comandos visuais
- > - deslocar texto para direita
- < - deslocar texto para esquerda
- y - copiar texto marcado
- d - deletar texto marcado
- ~ - alterar entre maiúscula e minúscula
- u - alterar o texto marcado para minúsculas
- U - alterar o texto marcado para maiúsculas
Registradores
- :reg[isters] - mostrar conteúdo dos registradores
- "xy - colar no registrador x
- "xp - colar o conteúdo do registrador x
- "+y - copiar para a área de transferência do sistema
- "+p - colar da área de transferência do sistema
0 - último yank
" - registrador sem nome, último delete ou yank
% - nome do arquivo atual
# - nome do arquivo alternativo
* - conteúdo da área de transferência (primário do X11)
+ - conteúdo da área de transferência (área de transferência do X11)
/ - último padrão de busca
: - último comando de linha
. - último texto inserido
- - última exclusão pequena (menos que uma linha)
= - registrador de expressão
_ - registrador buraco negro
Marcadores
- :marks - listar todos os marcadores
- ma - atribuir a posição atual no marcador A
- `a - pular para a posição do marcador A
- y`a - copiar (yank) texto para a posição do marcador A
- `0 - vai para a posição onde o Vim foi anteriormente encerrado
- `" - vai para a posição quando foi editado este arquivo pela última vez
- `. - vai para a posição da última alteração neste arquivo
- `` - vai para a posição antes do último salto
- :ju[mps] - lista de saltos
- Ctrl + i - vai para a posição mais recente na lista de saltos
- Ctrl + o - vai para a posição mais antiga na lista de saltos
- :changes - lista de alterações
- g, - vai para a posição mais recente na lista de alterações
- g; - vai para a posição mais antiga na lista de alterações
- Ctrl + ] - vai para a tag sob o cursor
Macros
- qa - gravar o macro a
- q - parar a gravação do macro
- @a - executar o macro a
- @@ - re executar o último macro
Copiar e colar
- yy - copiar uma linha
- 2yy - copiar duas linhas
- yw - copiar uma palavra
- yiw - copiar palavra sob o cursor
- yaw - copiar palavra sob o cursor e o espaço depois ou antes dela
- y$ or Y - copiar até o final da linha
- p - colar depois do cursor
- P - colar antes do cursor
- gp - colar o conteúdo da área de transferência após o cursor e deixar o cursor após o novo texto
- gP - colar o conteúdo da área de transferência antes do cursor e deixar o cursor após o novo texto
- dd - deletar (cortar) uma linha
- 2dd - deletar (cortar) duas linhas
- dw - deletar (cortar) uma palavra
- diw - deletar (cortar) a palavra sob o cursor
- daw - deletar (cortar) a palavra sob o cursor e o espaço depois ou antes dela
- :3,5d - deletar linhas do 3 ao 5
e.g.
:.,$d - Da linha atual até o final do arquivo
:.,1d - Da linha atual até o início do arquivo
:10,1d - Da 10ª linha até o final do arquivo
- :g/{pattern}/d - deletar todas as linhas que contêm o padrão
- :g!/{pattern}/d - deletar todas as linhas que não contêm o padrão
- d$ or D - deletar (cortar) até o final da linha
- x - deletar (cortar) caractere
Indentar texto
- >> - indentar (mover para a direita) uma linha com um shiftwidth
- << - desindentar (mover para a esquerda) uma linha com um shiftwidth
- >% - indentar um bloco com () ou {} (cursor na chave)
- <% - desindentar um bloco com () ou {} (cursor na chave)
- >ib - indentar bloco interno com ()
- >at - indentar um bloco com tags <>
- 3== - re-indentar 3 linhas
- =% - re-indentar um bloco com () ou {} (cursor na chave)
- =iB - re-indentar bloco interno com {}
- gg=G - re-indentar o buffer inteiro
- ]p - colar e ajustar a indentação para a linha atual
Saindo
- :w - escrever (salvar) arquivo, mas não sair
- :w !sudo tee % - escrever o arquivo atual usando sudo
- :wq or :x or ZZ - escrever (salvar) arquivo e sair
- :q - sair (não funciona se existirem mudanças não salvas)
- :q! or ZQ - sair e descartar mudanças não salvas
- :wqa - escrever (salvar) e sair em todas as abas
Procurar e substituir
- /pattern - procurar por padrão
- ?pattern - procurar por padrão na direção oposta
- \vpattern - padrão `mágico`: caracteres não-alfanuméricos são interpretados como símbolos especias de expressões regulares (sem necessidade de escapar os caracteres)
- n - repetir busca na mesma direção
- N - repetir busca na direção oposta
- :%s/old/new/g - substituir todas as ocorrências de old por new dentro do buffer
- :%s/old/new/gc - substituir todas as ocorrências de old por new dentro do buffer pedindo confirmação
- :noh[lsearch] - remover o destaque dos resultados de busca
Procurar em múltiplos arquivos
- :vim[grep] /pattern/ {`{file}`} - procurar por padrão em múltiplos arquivos
- :cn[ext] - pular para próxima ocorrência
- :cp[revious] - pular para ocorrência anterior
- :cope[n] - abrir uma janela com a lista de ocorrências
- :ccl[ose] - fechar a janela de resultados rápidos
Abas
- :tabnew or :tabnew {page.words.file} - abrir um arquivo em uma aba nova
- Ctrl + wT - mover a janela atual para uma aba própria
- gt or :tabn[ext] - mover para a próxima aba
- gT or :tabp[revious] - mover para a aba anterior
- #gt - mover para a aba de número #
- :tabm[ove] # - mover aba atual para posição # (indexado do 0)
- :tabc[lose] - fechar a aba atual e todas suas janelas
- :tabo[nly] - fechar todas as abas exceto a aba atual
-
:tabdo command - executar o
comando
em todas as abas (e.g.:tabdo q
- fechar todas as abas abertas)
Trabalhando com múltiplos arquivos
- :e[dit] arquivo - editar um arquivo em um novo buffer
- :bn[ext] - ir para o próximo buffer
- :bp[revious] - ir para o buffer anterior
- :bd[elete] - deletar um buffer (fechar um arquivo)
- :b[uffer]# - ir para um buffer pelo número
- :b[uffer] file - ir para um buffer pelo arquivo
- :ls or :buffers - listar todos os buffers abertos
- :sp[lit] arquivo - abrir um arquivo em um novo buffer e dividir a janela
- :vs[plit] arquivo - abrir um arquivo em um novo buffer e dividir as janelas verticalmente
- :vert[ical] ba[ll] - editar todos os buffers como janelas verticais
- :tab ba[ll] - editar todos os buffers como abas
- Ctrl + ws - dividir janela
- Ctrl + wv - dividir janelas verticalmente
- Ctrl + ww - trocar de janelas
- Ctrl + wq - fechar janela
- Ctrl + wx - trocar janela atual com a próxima
- Ctrl + w= - tornar todas as janelas de altura e largura iguais
- Ctrl + wh - mover o cursor para a janela à direita (vertical)
- Ctrl + wl - mover o cursor para a janela a esquerda (vertical)
- Ctrl + wj - mover o cursor para a janela abaixo (horizontal)
- Ctrl + wk - mover o cursor para a janela acima (horizontal)
- Ctrl + wH - tornar a janela atual com altura total à extrema esquerda (janela vertical mais à esquerda)
- Ctrl + wL - tornar a janela atual com altura total à extrema direita (janela vertical mais à direita)
- Ctrl + wJ - tornar a janela atual com largura total na parte inferior (janela horizontal mais abaixo)
- Ctrl + wK - tornar a janela atual com largura total na parte superior (janela horizontal mais acima)
Diferenças
- zf - definir manualmente um fold até o movimento
- zd - excluir o fold sob o cursor
- za - alternar o fold sob o cursor
- zo - abrir o fold sob o cursor
- zc - fechar o fold sob o cursor
- zr - reduzir (abrir) todos os folds em um nível
- zm - reduzir (fechar) todos os folds em um nível
- zi - alternar a funcionalidade de folding
- ]c - ir para o início da próxima alteração
- [c - ir para o início da alteração anterior
- do or :diffg[et] - obter a diferença (do outro buffer)
- dp or :diffpu[t] - colocar a diferença (no outro buffer)
- :diffthis - tornar a janela atual parte da diferença
- :dif[fupdate] - atualizar as diferenças
- :diffo[ff] - desativar o modo de diferença para a janela atual