Movimentos básicos | |
| h l k j | caracter esq., dir., linha acima, abaixo |
| b w | palavra/token esquerda, direita |
| ge e | fim palavra/token esquerda, direita |
| { } | começo parágrafo anterior, posterior |
| ( ) | começo sentença anterior, posterior |
| 0 gm | começo, meio da linha |
| ^ $ | primeiro, último caracter da linha |
| nG ngg | linha 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 nL | linha n do topo, base da janela |
| M | linha do meio da janela |
Inserção & substituição → modo insert | |
| i a | insere antes, depois do cursor |
| I A | insere no início, fim da linha |
| gI | insere texto na primeira coluna |
| o O | abre nova linha abaixo, acima da linha atual |
| rc | substitui caracter sob cursor por c |
| grc | como r, mas sem afetar o layout |
| R | substitui caracteres começando do cursor |
| gR | como R, mas sem afetar o layout |
| cm | muda texto do comando de movimento m |
| cc or S | muda linha atual |
| C | muda até o fim da linha |
| s | muda um caracter e insere |
| ~ | muda maiúsc./minúsc. e avança cursor |
| g~m | muda maiúsc./minúsc. do movimento m |
| gum gUm | texto do movim. m minúsculo, maiúsculo |
| <m >m | desloca esq., dir. texto do movimento m |
| n<< n>> | desloca n linhas esquerda, direita |
Eliminação | |
| x X | apaga caracter sob, antes do cursor |
| dm | apaga texto do comando movimento m |
| dd D | apaga linha atual, até fim da linha |
| J gJ | junta linha atual com próxima, sem espaço |
| :rd↵ | apaga r linhas |
| :rdx↵ | apaga r linhas, põe registrador x |
Modo Inserção | |
| ^Vc ^Vn | insere caracter c literalmente, valor decimal n |
| ^A | insere texto inserido anteriormente |
| ^@ | mesmo que ^A e pára insert → modo comando |
| ^Rx ^R^Rx | insere conteúdo registrador x, literalmente |
| ^N ^P | completa texto antes, depois do cursor |
| ^W | apaga palavra antes do cursor |
| ^U | apaga todos caracteres inseridos linha atual |
| ^D ^T | desloca esquerda, direita largura 1 desloc. |
| ^Kc1c2 or c1←c2 | entra dígrafo \c1,c2\ |
| ^Oc | executa c em modo comando temporário |
| ^X^E ^X^Y | rola acima, abaixo |
| <esc> or ^[ | abandona edição → modo comando |
Copiando | |
| "x | usa registrador x para próximo delete, yank, put |
| :reg↵ | mostra o conteúdo de todos os registradores |
| :reg x↵ | mostra conteúdo dos registradores x |
| ym | copia texto do comando de movimento m |
| yy or Y | copia texto da linha atual no registrador |
| p P | cola registrador depois, antes da posição cursor |
| ]p [p | como p, P com recuo ajustado |
| gp gP | como p, P deixando cursor depois texto novo |
Inserção Avançada | |
| g?m | faz codificação rot13 no movimento m |
| n^A n^X | +n, -n no número sob o cursor |
| gqm | formata linhas do mov. m com largura fixada |
| :rce w↵ | centra linhas na faixa r para largura w |
| :rle i↵ | alinha esq. linhas na faixa r com recuo i |
| :rri w↵ | alinha dir. linhas na faixa r para largura w |
| !mc↵ | filtra linhas do mov. m através comando c |
| n!!c↵ | filtra n linhas através do comando c |
| :r!c↵ | filtra faixa de r linhas através do comando c |
Modo Visual | |
| v V ^V | começa/pára destaque caract., linhas, bloco |
| o | troca posição do cursor com início do destaque |
| gv | inicia destaque na area visual anterior |
| aw as ap | seleciona uma palavra, sentença, parágrafo |
| ab aB | seleciona um bloco ( ), um bloco { } |
Comandos desfazer & repetir | |
| u U | desfaz último cmd, restaura última linha mudada |
| . ^R | repete últimas mudanças, refaz último desfazer |
| n. | repete últimas mudanças com cont. trocado por n |
| qc qC | grava, anexa caracteres digitados no regist. c |
| q | pára de gravar |
| @c | executa o conteúdo do registrador c |
| @@ | repete comando @ anterior |
| :@c↵ | executa registrador c como comando Ex |
| :rg/p/c↵ | executa comando Ex c na faixa r |
| onde padrão p combinar | |
Movimento complexo | |
| - + | linha acima/abaixo no 1o caracter não-branco |
| B W | palavra separada por espaço a esq., a dir. |
| gE E | fim de palavra separada por espaço a esq., a dir. |
| n_ | desce n-1 linhas no 1o caracter não-branco |
| g0 | início da linha screen |
| g^ g$ | primeiro, último caracter da linha screen |
| gk gj | linha screen acima, abaixo |
| fc Fc | ocorrência seguinte, anterior do caracter c |
| tc Tc | antes 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 ]m | começ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↵ ?s↵ | procura a frente, atrás por s |
| /s/o↵ ?s?o↵ | procura s atrás, frente com desloc. o |
| n or /↵ | repete última busca a frente |
| N 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 gD | definição local, global de símbolo sob cursor |
| :rs/f/t/x↵ | substitui f por t na faixa r |
| x: g-todas as ocorrências, c-confirma mudanças | |
| :rs x↵ | repete 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 \I | um identificador, excluindo dígitos |
| \k \K | uma palavra-chave, excluindo dígitos |
| \f \F | um nome de arquivo, excluindo dígitos |
| \p \P | um caracter imprimível, excluindo dígitos |
| \s \S | um 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 +n | linha n abaixo na coluna 1 |
| -n | linha n acima na coluna 1 |
| e+n e-n | n caracteres a dir., esq. do fim da combin. |
| s+n s-n | n caracteres a dir., esq. do começo combin. |
| ;sc | executa comando de busca sc próximo |
Marcas e movimentos | |
| mc | marca posição atual com marca c ∈[a..Z] |
| `c `C | vai para marca c no arquivo atual, C em qualquer arq. |
| `0..9 | vai para última posição |
| `` `" | vai para posição antes salto, na última edição |
| `[ `] | vai para começo, fim texto operado anterior |
| :marks↵ | mostra lista de marcas ativas |
| :jumps↵ | mostra lista de saltos |
| n^O | vai para na posição mais velha na lista saltos |
| n^I | vai para na posição mais nova na lista saltos |
Mapeamento de teclas & abreviações | |
| :map c e↵ | mapeia c ↦ e em modo normal & visual |
| :map! c e↵ | mapeia c ↦ e em modo & linha-cmd |
| :unmap c↵ :unmap! c↵ | remove mapeamento c |
| :mk f↵ | escreve mapeamentos, ajustes... atuais no arquivo f |
| :ab c e↵ | adiciona abreviação para c ↦ e |
| :ab c↵ | mostra abreviação começando com c |
| :una c↵ | remove abreviação c |
Tags | |
| :ta t↵ | pula para tag t |
| :nta↵ | pula para na tag mais nova na lista |
| ^] ^T | pula para tag sob cursor, retorna da tag |
| :ts t↵ | lista tags que comb. e seleciona uma p/ pular |
| :tj t↵ | pula para tag ou seleciona uma se várias |
| :tags↵ | mostra lista de tags |
| :npo↵ :n^T↵ | pula atrás de, para na tag antiga |
| :tl↵ | pula para última tag que combina |
| ^W} :pt t↵ | prevê tag sob cursor, tag t |
| ^W] | divide janela e mostra tag sob cursor |
| ^Wz or :pc↵ | fecha janela visualização tag |
Rolagem & multi-janela | |
| ^E ^Y | rola linha acima, abaixo |
| ^D ^U | rola meia página acima, abaixo |
| ^F ^B | rola página acima, abaixo |
| zt or z↵ | põ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 zl | rola um caracter a direita, esquerda |
| zH zL | rola meia tela a direita, esquerda |
| ^Ws or :split↵ | divide janela em duas |
| ^Wn or :new↵ | cria nova janela vazia |
| ^Wo or :on↵ | coloca janela atua em uma tela |
| ^Wj ^Wk | move para janela abaixo, acima |
| ^Ww ^W^W | move para janela abaixo, acima (troca) |
Comandos Ex (↵) | |
| :e f | edita arquivo f, a menos que modificado |
| :e! f | edita arq. f sempre (por padrão relê atual) |
| :wn :wN | grava arquivo e edita próximo, anterior |
| :n :N | edita arquivo seguinte, anterior na lista |
| :rw | grava faixa r no arquivo atual |
| :rw f | grava faixa r no arquivo f |
| :rw>>f | adiciona faixa r no arquivo f |
| :q :q! | sai e confirma, sai e descarta mudanças |
| :wq or :x or ZZ | grava no arquivo atual e sai |
| <up> <down> | chama comandos começando com atual |
| :r f | insere conteúdo do arquivo f abaixo cursor |
| :r! c | insere saída comando c abaixo cursor |
| :all | abre janela para cada arquivo na lista argtos. |
| :args | mostra a lista de argumentos |
Faixas Ex | |
| , ; | separa dois números linhas, def. para 1a linha |
| n | um número de linha n absoluto |
| . $ | linha atual, última linha no arquivo |
| % * | arquivo todo, area visual |
| 't | posição da marca t |
| /p/ ?p? | linha seguinte, anterior onde p combina |
| +n -n | +n, -n até número linha precedente |
Miscelânea | |
| :sh↵ :!c↵ | começa shell, executa cmdo. c em shell |
| K | procura palavra-chave sob cursor com man |
| :make↵ | começa make, lê erros e vai ao primeiro |
| :cn↵ :cp↵ | mostra erro seguinte, anterior |
| :cl↵ :cf↵ | lista erros, lê erros do arquivo |
| ^L ^G | redesenha tela, mostra nome arquivo e posição |
| g^G | mostra coluna cursor, linha e posição caracter |
| ga | mostra valor ASCII do caracter sob cursor |
| gf | abre arquivo cujo nome está sob cursor |
| :redir>f↵ | redireciona saída para arquivo f |
| ^@ ^K ^_ \ | teclas sem uso, disponíveis para mapear |