Skip to content

Instantly share code, notes, and snippets.

@asrail
Created December 4, 2013 16:23
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save asrail/7790514 to your computer and use it in GitHub Desktop.
Save asrail/7790514 to your computer and use it in GitHub Desktop.
Guia rápido do Emacs
*Auxiliar do Emacs
M representa <Alt> pressionado ou pressionar e liberar <Esc>
C representa <Control> pressionado
S representa <Shift> pressionado, aparecendo apenas quando necessário para evitar ambiguidade
Um hífen entre sequências significa que todos devem estar ativos ao mesmo tempo
Sequências separadas por espaço denotam execução sucessiva
Comandos básicos:
C-x C-f - (find-file) abrir
C-x C-s - (save-buffer) salvar
C-x C-w [nome] - (write-file) salvar como
C-x C-c - (save-buffers-kill-emacs) sair
Comandos de movimento:
M-b ou C-<left> - retrocede palavra
M-f ou C-<right> - avança palavra
M-a - retrocede uma sentença ou expressão
M-e - avança uma sentença ou expressão
C-a ou <home> - início da linha (ignorando espaços em branco)
C-e ou <end> - fim da linha
C-p - linha anterior
C-n - próxima linha
<setas> - movimentam o cursor um caracter
M-<setas> - movimentam o cursor uma palavra
M-{ ou C-<up> - retrocede um bloco
M-} ou C-<down> - avança um bloco
C-M-p - vai para o item anterior. Ex.: {, [, (
C-M-n - vai para o item subsequente. Ex.: }, ], )
C-M-u ou C-M-<up> - sobe um nível na hierarquia retroativamente (de (), {}, [])
C-M-d ou C-M-<down> desce um nível na hierarquia
M-g M-g [#] ou M-g g [#] - vai para linha número # (OBS: escolhe o melhor e decora, mas lembre que M-g M-g é segurar M e apertar g g)
M-< ou C-<home> - vai para o início do arquivo
M-> ou C-<end> - vai para o final do arquivo
C-x ] - vai para o final da página (arquivos sem form feed são considerados arquivos de uma página, pois ele é o separador em arquivos de texto)
OBS: Alguns comandos, como M->, adicionam uma marcação de posição atual (invisível que te permite voltar à posição anterior com C-u C-<space>.
Comandos de edição
cópia:
C-w ou S-<Delete> - (kill-region) recorta seleção
C-M-w - caso seja seguido de um comando de cópia, adiciona ao buffer em vez de substituir:
Ex.: - seleciona 'a', C-w (corta) => buffer: a
- seleciona 'b', C-M-w C-w (corta adicionando ao buffer) => buffer: ab
M-w ou C-<Insert> - (copy-region-as-kill) copia seleção
C-k - (kill-line) recorta até o fim da linha
colagem:
C-y ou S-<Insert> - (paste) cola
M-y - alterna entradas do buffer (infinitamente)
Comandos de seleção:
C-<space> - inicia seleção interativa. A seleção continua até que algum outro
comando que não de movimento ou busca seja executado.
C-<space> - quando em seleção interativa, a finaliza
C-x h - seleciona todo o texto
S-[algum comando de movimentação simples] - inicia uma seleção não-interativa, que para de funcionar quando larga o shift.
C-x C-x - caso haja uma seleção, inverte inicio e fim da seleção. Caso contrário, marca a partir da última posição marcada.
DICA: pode usar sempre os atalhos com <home>, <end>, <insert>, <delete> ou setas, caso esteja tranquilo de usar no teclado e caso prefira assim. A maior vantagem é que todos funcionam no windows. Em relação ao shift, é fácil inicialmente porque funciona tal qual no windows e facilita se acostumar, porém usar C-<space> é mais "poderoso", porque funciona em qualquer caso, sem ter que pensar se pode usar o shift ou não. O C-<space> funciona até para fazer buscas (busca, marca o ponto inicial, busca novamente, marca o ponto final).
Comando de busca:
C-s [texto] - busca comum
C-M-s [texto] - busca por expressões regulares
Autocompletar:
M-/ - completar a partir da ocorrência anterior (backward)
M-- M-/ - completar a partir da ocorrência seguinte (forward)
Multiplas divisões:
C-x 2 - cria uma divisão horizontal
C-x 3 - cria uma divisão vertical
C-x 0 - fecha a divisão atual
C-x 1 - fecha as outras divisões
C-x 5 2 - abre um outro frame (janela)
Mover entre as divisões:
C-x o - move em sentido horário
M-- C-x o - move em sentido anti-horário
Trabalhando com buffer:
C-x b - troca de buffer (perguntando)
C-x C-b - troca de buffer (exibindo uma lista)
C-x k - (kill-buffer) fecha o buffer atual
Substituição:
M-% [origem] [destino] - (query-replace) substituir [origem] por [destino]
C-M-% [origem] [destino] - (query-regexp-replace) substituir [origem] por [destino] utilizando expressões regulares
Macros:
C-x ( - inicia gravação
C-x ) - finaliza gravação
C-x e - re-executa
e - re-executa logo após C-x e
Visualizar a manpage do símbolo corrente:
M-x woman
Reindentar:
C-M-\ - reindenta a seleção atual
<TAB> - em alguns modos, insere uma tabulação, porém em outros ele indenta (usual em modos de programação)
Comentar:
C-c C-c - comenta a seleção (não está disponível em todos os modos)
M-; - adiciona comentário de linha ao final da mesma
Tirar comentário:
não tem -> M-X uncomment...
Ir para:
M-x find-file-at-point ou M-x ffap - ir para arquivo sob cursor (também funciona para #includes locais ou globais)
Desfazer:
C-/, C-_, C-x u
C-g C-/ - o desfazer é cíclico, portanto alguma coisa que não seja um desfazer faz com que a próxima ação feita por esses comandos seja efetivamente refazer.
Usar C-g é apenas uma forma de interromper a sequência sem causar outro efeitos colaterais.
Miscelâneos:
C-g, <Esc> <Esc> <Esc> - interrompe o comando atual (cancela um minibuffer se estiver ativo)
C-h ? - grande ajuda ;D
C-] fecha todos os minibuffers abertos recursivamente
Específico do icicles:
S-<TAB> lista todos os possiveis comandos, organizados hierarquicamente. Caso já tenha parte de um comando, ele o utiliza como pré-fixo dos comandos a listar
_______________________________________________________________________________
(c) Caio Tiago Oliveira <caiotiago@gmail.com>, Nanci de Brito Bonfim <nancibonfim@gmail.com>
This file can be used and modified free by anyone, as long as the copyright line stays intact.
2011-2013.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment