
               Teclas e comandos básicos do Emacs - Versão 1.6
               ===============================================


Notação utilizada:
------------------
C   Tecla Control
M   Tecla Alt
-   Indica que as teclas devem ser pressionadas simultaneamente

OBS: Quando existe apenas a sequência de teclas no começo da linha, sem a
     descrição, significa que esta é equivalente a da próxima linha.

Teclas             Descrição
------------       -------------------------------------------------------

Arquivos
--------
C-x C-c     	   Sai do Emacs
C-x C-f     	   Pede nome do arquivo para abrir
C-x C-r            Pede nome do arquivo para abrir em modo somente leitura
C-x C-s     	   Salva o arquivo e continua editando
C-x C-w     	   Salva o arquivo em disco
C-x C-i		   Insere um arquivo no arquivo atual
C-x C-d            Mostra diretório 

 
Movimentação do cursor/texto 
----------------------------
C-p         	   Sobe uma linha
C-n         	   Desce uma linha
C-b         	   Volta um caractere
C-f         	   Avanca um caractere
C-e         	   Vai para o fim da linha
C-a         	   Vai para o começo da linha
M-f         	   Vai para o fim da palavra
M-b         	   Vai para o começo da palavra
M-<         	   Vai para o começo do buffer/arquivo
M->         	   Vai para o fim do buffer/arquivo
C-v         	   Avança uma tela
M-v         	   Volta uma tela
C-l                Posiciona a linha atual no meio da tela. Também pode ser
		   usada para redesenhar a tela quando necessário.


Inserção/Exclusão/Troca de caracteres/texto
-------------------------------------------
C-d         	   Elimina o caractere sob o cursor
M-d         	   Elimina da posição do cursor até o fim da palavra 
C-o         	   Insere uma linha em branco
C-x C-o            Remove todas as linhas em branco existentes entre a
            	   linha do cursor o próximo parágrafo
C-k                Elimina da posição do cursor até o fim da linha
C-t                Transpõe letras (troca a letra que está sob o cursor 
                   com a anterior)
C-y                Restaura o último bloco de texto excluído
M-y		   Permite selecionar qual dos blocos anteriormente excluídos
		   será restaurado (usado em sequência ao C-y)
M-t	           Transpõe palavras
M-u		   Transforma a palavra em maiúsculas
M-l		   Transforma a palavra em minúsculas
M-c		   Capitaliza a palavra (deixa a primeira letra maiúscula
                   e o resto da palavra em letras minúsculas)
C-x C-u            Transforma o texto em maiúsculas (até o fim do texto ou
                   até a marca, se existir)
C-x C-l            Transforma o texto em minúsculas (até o fim do texto ou
                   até a marca, se existir)
M-/                Tenta completar a palavra que está sendo digitada baseando-se
                   nas palavras existentes nos buffers abertos no momento


Procura
-------
C-s XXX            Procura (para a frente) a cadeia XXX no texto
C-r XXX            Procura (para trás) a cadeia XXX no texto
M-%
M-x replace-string Procura e troca sem perguntar
M-x query-replace  Procura e troca perguntando


Ajuda
-----
C-h                Ativa a ajuda do Emacs
C-h t              Tutorial do Emacs
C-h b              Mostra todas as teclas disponíveis para este modo
                   (ver a secão Modos do Emacs)
C-h C-c            Mostra a GPL (General Public Licence) 


Marcação/Alinhamento/Identação 
------------------------------
M-q                Reformata o texto
C-SPC
C-@                Marca este ponto do texto
C-x C-x            Posiciona o cursor na marca
C-x TAB            Identa todo o texto entre a marca e a posição do cursor
M-\                Apaga os caracteres em branco anteriores ao cursor até 
                   o último caractere da palavra anterior ou o começo da
                   linha
M-SPC              Deixa apenas um espaço em branco
M-^                Junta a linha atual com a anterior


Retângulos
----------
C-x r r            Copia retângulo para o registrador
C-x r k            Elimina o retângulo
C-x r y            Restaura o retângulo
C-x r o            Abre um retângulo empurrando o texto para a direita
C-x r t            Prefixa cada linha com a cadeia (que será solicitada)


Janelas
-------
C-x 2		   Divide a janela atual em duas (horizontalmente)
C-x 3		   Divide a janela atual em duas (verticalmente)
C-x 1		   Deixa ativa apenas a janela atual
C-x o		   Vai para a próxima janela
C-x 0              Elimina a janela atual

Buffers
-------
C-x C-b            Mostra a lista de buffers ativos no momento
C-x b              Permite alternar para outro buffer


Especiais
---------
C-x z                  Repete o último comando
C-u NNN comando        Repete comando NNN vezes
C-g                    Interrompe todo e qualquer comando
C-_
C-x u                  Desfaz o último comando
C-x (		       Inicia a programação de uma macro
C-x )		       Termina a programação de uma macro
C-x e		       Executa a macro programada
C-x d		       Mostra o diretório em outra janela
M-x shell              Executa um shell dentro do Emacs
M-x term	       Executa um "terminal" dentro do Emacs
M-x ansi-term	       Executa um "terminal" (padrão ansi) dentro do Emacs
M-x comment-region     Insere o caractere de comentário nas linhas do bloco
                       selecionado (o caractere varia conforme o modo)
M-x display-time       Mostra data e hora
M-x calendar           Mostra um calendário em outra janela
M-x font-lock-mode     Ativa / Desativa o destaque de sintaxe (conforme o
                       modo em uso no momento. A partir da versão 21 também
                       disponível em ambiente caractere.)
M-x goto-line          Pergunta a linha e vai para ela
M-x check parens       Verifica se existem parênteses, chaves, etc. abertos
                       que não tenham sido fechados
M-x battery            Mostra o estado da bateria do seu laptop
M-x calculator         Ativa uma calculadora, use ? para ver os comandos e
                       C-g para sair
M-x woman              (A partir da versão 21) Permite consultar as
                       páginas de manual diretamente.
M-x toggle-read-only   Alterna o modo do arquivo atual entre "somente leitura"
                       e "leitura e escrita"


Entendendo Buffers e Janelas
----------------------------
Um buffer é, de maneira simples, um espaço em memória.
Uma janela, é um espaço na tela onde o Emacs exibe o conteúdo de um buffer.

Por exemplo, quando você abre um arquivo no Emacs, ele na verdade o
copia para um buffer, e, em seguida, abre uma janela e exibe o
conteúdo deste buffer nesta janela. 

Quando você altera este arquivo, você está alterando o conteúdo de um
buffer, através de uma janela. 

Apenas quando você salva este arquivo, o Emacs copia o conteúdo deste
buffer para o arquivo no disco.

Janelas e buffers podem ser tratados de forma independente. Por
exemplo: Quando você está editando um arquivo e tecla C-x 2 , o Emacs
abre um nova janela e exibe o mesmo arquivo (isto é util para
visualizar outra parte do arquivo que estamos editando sem precisar
sair do ponto onde estamos).  Este é um exemplo de _um_ buffer sendo
exibido em _duas_ janelas.

Outro exemplo: Quando você está editando dois (ou mais) arquivos ao
mesmo tempo, cada um em uma janela, e digita C-x 1, as outras janelas
serão fechadas, restando apenas a que você está no momento, mas os
outros buffers, com os outros arquivos, continuam lá. Nada foi
perdido. Digite C-x C-b para ver a relação de buffers ativos no
momento e C-x b para ir para outro buffer.


Modos do Emacs
--------------
O Emacs possui diversos modos de edição / operação. Estes modos são 
dividos em duas categorias:

O modo principal (major-mode) é exibido ente parênteses na penúltima
linha da tela e é inicialmente definido pelo Emacs, de forma
automática, baseado no tipo do arquivo. Você pode alterar este modo a
qualquer momento. Por exemplo, o comando: "M-x c-mode" ativa o modo
para edição de programas fonte da linguagem "C".

O modo secundário (minor-mode) complementa o modo principal e adiciona
recursos a estes.


Como obter o Emacs
------------------
O Emacs pode ser obtido em: ftp://ftp.gnu.org/gnu/emacs. 


Observações
-----------
1) O número de comandos / funções do Emacs é imenso. Este arquivo contém 
    somente uma parte deles.

2) O Emacs (como vimos acima) também aceita os comandos por extenso.
   Por exemplo, "M-x overwrite-mode" liga/desliga o modo de inserção
   de caracteres, mas você não precisa digitar todo o comando, basta
   usar "M-x ov" e usar a tecla <TAB> para completar o comando. Caso
   exista mais de um complemento possível a lista será mostrada em
   outra janela.

3) O Emacs é altamente configurável / customizável, possuindo
   inclusive uma linguagem lisp própria, esta customização é feita
   através do arquivo ".emacs". Consulte a documentação do Emacs para
   maiores detalhes.

4) A partir da versão 21, o Emacs disponibiliza cores também na console
   (além de muitos outros aperfeiçoamentos). No ambiente X este recurso
   já estava disponível a muito tempo.


Histórico de versões deste guia
-------------------------------
Versão 1.0 - 19/06/2000 - Versão incial;
Versão 1.1 - 24/10/2000 - Incluídos diversos comandos;
Versão 1.2 - 10/11/2000 - Incluída a seção "Janelas";
                        - Complementadas/Corrigidas algumas descrições;
Versão 1.3 - 19/04/2001 - Incluída a seção "retângulos";
                        - Padronizados alguns termos;
Versão 1.4 - 28/10/2001 - Edição comemorativa ao lançamento do Emacs 21 !!
                        - Aperfeiçoada a seção "Observações";
                        - Incluída a seção "Modos do Emacs";
                        - A seção Janelas passa a chamar-se "Buffers",
                          assim como a terminologia foi corrigida;
                        - Esta seção foi movida para o fim pois está
                          ficando muito extensa.
Versão 1.5 - 23/01/2002 - A seção "Buffers" volta a chamar-se "Janelas",
                          foi incluída uma nova seção "Buffers" e, por
                          fim, foi incluída a seção "Entendendo Buffers
                          e Janelas" para tornar as as coisas mais claras;
                        - Incluídos diversos comandos;
                        - Corrigidos alguns erros de português e de 
                          concordância.
Versão 1.6 - 29/12/2002 - Incluídos alguns comandos úteis que eu aprendi
                          em 2002.


Elaboração
----------
José Antonio Boyd Cardoso
jaboyd@uol.com.br
Curitiba / Paraná / Brasil
               
               
Agradecimentos
--------------
Ao criador do Emacs, Richard Stallman (http://www.stallman.org) que também
fundou a Free Software Foundation (http://www.fsf.org) e o
projeto GNU (http://www.gnu.org).

Agradecimentos também a todos que de alguma forma colaboram ou já colaboraram 
com o movimento do Software Livre.

----------------------------------------------------------------------------
    Este arquivo foi criado no Emacs (óbvio:-)), executando em uma
    máquina com Linux.

    Copyright (c)  2.002 José Antonio Boyd Cardoso.

    É dada permissão para copiar, distribuir e / ou modificar este
    documento sob os termos da LGPL (Licença de Documentação Livre
    GNU) Versão 1.1 ou qualquer versão posterior públicada pela Free
    Software Foundation.

                      Viva o Software Livre !!!
----------------------------------------------------------------------------

