Emacs

Emacs é uma família de editores de texto com um conjunto extensível de recursos. É popular entre os programadores e, mais geralmente, aqueles com habilidades técnicas em computadores.

Os EMACS originais, ou seja, E ditando MAC ro S rodando em TECO , isto é “  editar macros para TECO  ”, foi escrito em 1976 por Richard Stallman , inicialmente com Guy Steele . Foi inspirado nas ideias desenvolvidas em TECMAC e TMACS, dois macro sets de edição para TECO, notadamente escritos por Guy Steele , David Moon , Richard Greenblatt e Charles Frankston .

Muitas versões do Emacs apareceram nos anos seguintes, mas atualmente duas versões são realmente dominantes: GNU Emacs , iniciado em 1984 por Richard Stallman, que ainda contribui para isso hoje, e XEmacs , um fork do GNU Emacs iniciado em 1991 , que permanece em grande parte compatível.

Ambos uso uma linguagem de extensão poderosa, Emacs Lisp , que permite o suporte para tarefas avançadas, como escrever e compilar de programas , a navegação na Web, ler newsgroups ou correio eletrônico .

Na cultura UNIX , o Emacs tem sido tradicionalmente um dos dois beligerantes nas Guerras do Editor , seu oponente sendo o vi (ou seu equivalente aprimorado Vim ).

História

O Emacs nasceu no MIT AI Lab na década de 1970 . Antes de sua criação, o editor padrão no ITS , o sistema operacional para o AI Lab PDP-6 e PDP-10 computadores , era um editor de linha por linha conhecida como TECO . Ao contrário dos editores de texto modernos, o TECO tratava a entrada, edição e visualização de documentos como modos separados, como o vi fez mais tarde. A inserção de caracteres em TECO não os inseriu diretamente no documento; era necessário dar uma sequência de instruções na linguagem de comandos do TECO para solicitar a inserção dos caracteres desejados. Durante esse tempo, o texto editado não foi exibido na tela. Esse comportamento é semelhante ao do programa ed , que ainda é usado hoje.

Em 1972 (ou 1974), Richard Stallman visitou o Stanford AI Lab e vê o publisher E . Este último tem uma interface WYSIWYG intuitiva, como aquela adotada universalmente por todos os editores modernos, com algumas exceções muito especializadas. Impressionado com esse recurso, Richard Stallman retorna ao MIT , onde Carl Mikkelsen, um dos hackers do AI Lab, acaba de adicionar ao TECO o modo de exibição de edição chamado Control-R , que atualiza a tela toda vez que o usuário pressiona. uma chave. Stallman reescreve esse modo para funcionar com eficiência e, em seguida, adiciona a capacidade de executar macros, permitindo ao usuário substituir qualquer tecla para executar um programa TECO.

Esta nova versão do TECO tornou-se imediatamente popular no AI Lab, e uma grande coleção de macros personalizadas rapidamente se acumulou, geralmente com nomes terminando em "MAC" ou "MACS", que significa "macros". Dois anos depois, Guy Steele assumiu o projeto de unificar a grande diversidade de conjuntos de controle de teclado em um único jogo. Depois de uma noite de hackeamento entre Steele e Stallman, o último termina a codificação, que inclui recursos para estender e documentar o novo conjunto de macros. O sistema é então denominado “EMACS”, que significa “Editing MACroS” (“edição de macros” em francês). De acordo com Stallman, ele escolheu o nome "  Emacs porque <E> não era usado como uma abreviatura no ITS neste momento. Também foi notado que "Emack & Bolio's" era o nome de uma sorveteria popular em Boston , a uma curta caminhada do MIT. Um programa de formatação de texto usado no ITS foi mais tarde chamado de BOLIO por David Moon, que frequentava o comerciante. No entanto, Stallman não gostava desses sorvetes, e nem os conhecia quando escolheu o nome "Emacs".

Stallman então percebe o perigo de muitas customizações possíveis e garfos de fato . Ele estabelece certas condições para seu uso, que ele escreve mais tarde:

“O Emacs foi distribuído com base no compartilhamento da comunidade, o que significa que quaisquer melhorias devem ser devolvidas a mim para incorporação e redistribuição. "

Implementações Emacs

O Emacs original, como o TECO , funcionou apenas no PDP-10 . Muitos Emacs ou semelhantes foram escritos nos anos seguintes para outros sistemas de computador, em particular SINE ( SINE Is Not EMACS , "Sine is Not EMACS "), EINE ( EINE Is Not EMACS ) e ZWEI ( ZWEI Was EINE Initially, “ZWEI era anteriormente EINE ”) para a máquina Lisp , que foram escritos por Michael McMahon e Daniel Weinreb (esses nomes significam“ um ”e“ dois ”em alemão). Em 1978 , Bernard Greenberg escreveu Emacs para Multics no Cambridge Information Systems Lab da Honeywell . Multics Emacs é escrito em MacLisp , um dialeto da linguagem de programação Lisp . As extensões de usuário também são escritas em Lisp. A escolha de Lisp permite uma extensibilidade previamente desconhecida e foi escolhida por muitos Emacs subsequentes.

Embora o EMACS tenha sido projetado com o TECO, seu comportamento é diferente o suficiente para que possa ser considerado um editor de texto completo. Ele rapidamente se tornou o programa de edição padrão em ITS . Ele também foi portado do ITS para os sistemas operacionais TENEX e TOPS-20 por Michael McMahon, mas não imediatamente no Unix. O primeiro editor semelhante ao Emacs a rodar no UNIX foi Gosling Emacs, desenvolvido por James Gosling em 1981 . Está escrito na linguagem C e sua linguagem de extensão, Mocklisp , possui uma sintaxe muito semelhante ao Lisp, mas não possui uma lista ou outro tipo de dados estruturados. Gosling primeiro permitiu que Gosling Emacs fosse redistribuído sem restrição formal, mas vendeu-o para a Unipress Software em 1984, tornando-o um software proprietário .

Projeto GNU

Em 1984 , Stallman começou a trabalhar no GNU Emacs para produzir software livre como alternativa ao Gosling Emacs. Originalmente baseado em Gosling Emacs, Stallman acabou substituindo o interpretador Mocklisp interno por um interpretador Lisp real, o que resultou na substituição de quase todo o código. Ele então se torna o primeiro programa distribuído pelo nascente Projeto GNU . GNU Emacs é escrito em C e fornece Emacs Lisp (ele próprio escrito em C) como uma linguagem de extensão. A primeira versão amplamente distribuída do GNU Emacs foi 15.34, lançada em 1985 (as versões 2 a 12 nunca existiram, as primeiras versões foram numeradas como 1.xy , mas logo após a versão 1.12, a decisão de abandonar a 1. foi tomada porque parecia estabelecida que o problema principal nunca mudaria. A versão 13, a primeira distribuída publicamente, foi lançada em20 de março de 1985)

Como Gosling Emacs, GNU Emacs é executado em UNIX; entretanto, GNU Emacs tem muitos mais recursos, especialmente um ambiente Lisp completo como uma linguagem de extensão. Como resultado, ele logo substitui Gosling Emacs como o editor Emacs de fato no UNIX.

Garfo

Iniciado em 1991 , Lucid Emacs foi desenvolvido por Jamie Zawinski e outros na Lucid Inc., começando com uma versão alfa do GNU Emacs 19. As bases do código divergiram rapidamente e as duas equipes de desenvolvimento abandonaram as tentativas de fusão que deveriam resultar em um único programa. É um dos mais famosos garfos do software livre . Lucid Emacs foi renomeado como XEmacs . Ele permanece, junto com o GNU Emacs, uma das variantes mais amplamente usadas do Emacs até hoje.

Lista detalhada

Características

O restante deste artigo enfoca o GNU Emacs e o XEmacs, as duas variantes mais amplamente usadas do Emacs hoje. O termo Emacs se refere a ambos os programas porque suas funcionalidades são muito semelhantes. O XEmacs começou como um clone do GNU Emacs e as versões posteriores permaneceram mais ou menos compatíveis com o GNU Emacs.

Graças a, ou talvez por causa de seu venerável avô , o Emacs é um dos editores de texto mais poderosos e versáteis. No entanto, deve ser lembrado que este é antes de tudo um editor de texto , e não um processador de texto . Seus muitos recursos têm como objetivo ajudar o usuário a manipular pedaços de texto, ao invés de manipular fontes ou imprimir documentos (embora o Emacs possa). O Emacs oferece uma série de recursos para realizar a tarefa aparentemente simples de editar texto, desde a manipulação de palavras e parágrafos (apagar, movê-los, movê-los, etc.) até o destaque de sintaxe para facilidade de uso. Leitura de código-fonte , incluindo macros de teclado , para executar qualquer sequência, interativa ou não, de comandos definidos pelo usuário.

A riqueza de funcionalidades oferecida pelo Emacs é o resultado de um design incomum. Praticamente todas as funcionalidades do editor, desde as operações básicas de edição, como inserir um caractere em um arquivo até a configuração da interface do usuário, são controladas por meio de um dialeto da linguagem para programação Lisp , chamado Emacs Lisp . Neste ambiente Lisp, variáveis ​​e até funções podem ser alteradas em tempo real, sem ter que recompilar ou mesmo reiniciar o editor. Por causa disso, o comportamento do Emacs pode ser alterado quase sem limites, seja pelo usuário, ou (mais geralmente) carregando grandes blocos de código, chamados de bibliotecas ("bibliotecas"), pacotes ("pacotes") ou extensões .

O Emacs inclui um grande número de bibliotecas Lisp do Emacs, e muitas mais, independentes, podem ser encontradas na Internet . Muitas bibliotecas oferecem facilidades para programadores, refletindo a popularidade do Emacs entre os cientistas da computação. O Emacs pode ser usado como um ambiente de desenvolvimento integrado (IDE), permitindo aos programadores modificar, compilar e depurar seu código a partir de uma única interface. Outras bibliotecas têm funções menos usuais, por exemplo:

  • Calc , uma calculadora digital poderosa;
  • Modo de calendário , para gerenciar sua programação;
  • Doctor , uma versão de ELIZA que oferece psicoterapia rogeriana básica;
  • Dunnet , um jogo de aventura baseado em texto;
  • Ediff para trabalhar interativamente com diferenças de arquivos  ;
  • Emerge , para comparar arquivos e mesclá-los;
  • Emacs / W3 , um navegador da web  ;
  • ERC , um cliente IRC  ;
  • Gnus , um cliente completo de email e notícias ;
  • Extensões MULE , MUltiLingual para Emacs , permitindo a edição de texto escrito em vários alfabetos e vários idiomas, semelhante ao Unicode  ;
  • Info , um navegador de hipertexto para ajuda online;
  • Tetris .

Uma desvantagem inicial de seu design baseado em Lisp era a sobrecarga em termos de capacidade do processador para carregar e interpretar o código daquela linguagem. Nos sistemas em que foi desenvolvido pela primeira vez, o Emacs costumava ser significativamente mais lento do que os editores de texto rivais. Muitas piadas com siglas farão alusão a isso: Oito Megabytes e Troca Constante ("oito megabytes e remar constantemente", quando  8 MB era muita memória, às vezes toda a memória do computador), Emacs torna um computador lento ("Emacs retarda seu computador ") e eventualmente Mallocs All Computer Storage (" Termina consumindo toda a memória "). No entanto, os computadores modernos se tornaram rápidos o suficiente para que seja raro o Emacs parecer lento. Ele inicia mais rápido do que a maioria dos processadores de texto modernos. Na Usenet , o Emacs recebeu a sigla de Esc Meta Alt Control Shift aludindo às combinações de teclado, consideradas pouco intuitivas, de sua interface.

Modos de edição

O Emacs adapta seu comportamento ao tipo de texto editado, alternando de um modo de edição para outro. Esses modos são chamados de modos principais . Eles são definidos para arquivos de texto comuns, código-fonte de muitas linguagens de programação , documentos HTML , TeX , LaTeX , etc. Cada modo principal ajusta certas variáveis ​​Lisp no Emacs para que se comporte mais apropriadamente para o tipo de arquivo de texto que está sendo editado. Os modos implementam notavelmente o realce de sintaxe . Eles também fornecem comandos de edição especiais; por exemplo, os principais modos de linguagens de programação geralmente definem comandos para ir para o início ou o fim de uma função.

O comportamento do Emacs pode ser ainda mais personalizado usando modos secundários . Embora apenas um modo principal possa ser associado a um determinado texto, vários modos secundários podem ser ativados simultaneamente. Por exemplo, o modo principal para a linguagem C define um modo secundário para cada convenção de recuo . Da mesma forma, há um modo menor para exibir parênteses emparelhados que pode ser usado para qualquer tipo de texto. Todos os modos de edição, principais ou secundários, são implementados no Emacs como módulos escritos em Emacs Lisp . Esses pacotes são integrados diretamente ao código-fonte do Emacs ou estão disponíveis por meio de um repositório de código-fonte do tipo GNU ELPA , ou mesmo simplesmente para download pela Internet .

Modos principais

Essa lista não é exaustiva. Existem várias centenas de modos principais, entre aqueles incluídos nas distribuições atuais do Emacs e aqueles que o usuário pode adicionar posteriormente.

Linguagens de programação Correspondência Arquivos
  • tar e tar.gz (modo tar)
  • zip e bzip2 (modo de arquivo);
Outro

Costumização

Muitos usuários personalizam o Emacs para atender às suas necessidades específicas. Existem três maneiras de personalizar o Emacs. A primeira é a extensão de personalização , que permite ao usuário definir o valor de variáveis ​​de personalização comuns, como o esquema de cores da GUI, ou definir os modos principais e secundários do editor. Destina-se a usuários iniciantes no Emacs, que não querem ou não sabem trabalhar em Lisp.

A segunda maneira é coletar pressionamentos de teclas de macro e reproduzi-los para automatizar tarefas tediosas e repetitivas. Essas macros geralmente são criadas para a ocasião e destruídas imediatamente após o uso, embora seja possível salvá-las para invocá-las posteriormente.

O terceiro método para personalizar o Emacs é usar o Emacs Lisp . Normalmente, o código Emacs Lisp gerado pelo usuário é salvo em um arquivo chamado .emacs , que é carregado quando o Emacs é inicializado. O arquivo .emacs é freqüentemente usado para definir o valor de variáveis ​​e atalhos quando eles diferem das configurações padrão, ou para definir novos comandos que o usuário considere úteis. Alguns usuários experientes têm um .emacs contendo várias centenas de linhas, com personalizações alterando drasticamente o comportamento padrão do Emacs.

Embora um trecho do código Emacs Lisp seja útil para todos, ele geralmente é colocado em uma biblioteca e distribuído para outros usuários. É possível encontrar muitas bibliotecas na Internet. Por exemplo, a biblioteca chamada modo wikipedia permite a edição de artigos da Wikipedia . Existe até um grupo de notícias Usenet para postar novas bibliotecas gnu.emacs.sources . Algumas dessas bibliotecas eventualmente se popularizaram e se tornaram “bibliotecas padrão” do Emacs.

Documentação

O primeiro Emacs incluiu uma biblioteca poderosa chamada help , que pode exibir documentação para qualquer comando, variável ou função embutida. Por esta razão, o Emacs é descrito como autodocumentado (o que não significa que ele escreve sua própria documentação, mas que é capaz de apresentá-la ao usuário). Este recurso torna a documentação do Emacs muito acessível. Por exemplo, o usuário pode encontrar a documentação sobre um pressionamento de tecla simplesmente digitando Ch k (que executa o comando describe-key ) seguido pela sequência. Cada função inclui uma string de documentação, especialmente projetada para ser exibida se o usuário solicitar ajuda com ela. Hoje em dia, diferentes linguagens de programação usam um princípio semelhante (por exemplo , Lisp , Java ou Python ).

O sistema de ajuda Emacs não se destina apenas a iniciantes. Também é útil para usuários avançados que escrevem código Lisp . Se a documentação de uma variável ou função for insuficiente, o sistema de ajuda permite que você navegue no código-fonte Emacs Lisp de bibliotecas padrão e independentes. Portanto, é muito conveniente escrever programas em Emacs Lisp com o próprio Emacs.

Além do sistema de ajuda embutido, o Emacs tem um manual longo e detalhado. Uma cópia (eletrônica) do Manual GNU Emacs , escrito por Richard Stallman, está incluída com o Emacs e pode ser visualizada com o navegador de informações interno . O XEmacs tem um manual semelhante, o resultado de um fork do manual GNU Emacs datado do fork do XEmacs. Dois outros manuais, Emacs Lisp Reference Manual de Bill Lewis, Richard Stallman e Dan Laliberte, e Programming in Emacs Lisp de Robert Chassell também estão incluídos. Além de sua versão eletrônica, todos esses manuais estão disponíveis na forma de livros, publicados pela Free Software Foundation .

O Emacs também oferece um tutorial integrado. Quando o Emacs é iniciado sem um arquivo para editar, ele exibe instruções para realizar tarefas de edição simples e para invocar o tutorial.

Internacionalização

O Emacs permite a edição de textos escritos em diferentes idiomas. Suporta vários alfabetos, scripts, sistemas de escrita e convenções culturais. O Emacs é capaz de realizar a verificação ortográfica para muitos idiomas usando programas externos, como o ispell . Muitas codificações de texto são reconhecidas e utilizáveis, incluindo UTF-8 . O XEmacs 21.5 e o Emacs podem gerenciar totalmente o Unicode . No entanto, a interface do Emacs está em inglês e não foi traduzida para outros idiomas.

Para usuários com deficiência visual e cegos, existe um subsistema chamado Emacspeak , que permite que o editor seja usado exclusivamente por meio de interações sonoras.

Plataformas

Emacs é um dos programas de computador mais comuns usados . Ele funciona em um grande número de sistemas operacionais , incluindo a maioria dos sistemas UNIX ( GNU / Linux , vários sistemas BSD , Solaris , AIX , Mac OS X , etc.), MS-DOS , Microsoft Windows e OpenVMS .

Emacs funciona de forma idêntica em um console ou em um ambiente gráfico . Em sistemas do tipo UNIX , o Emacs usa o X Window System para sua interface gráfica, diretamente ou usando uma biblioteca de widgets como Motif , LessTif ou GTK + . Emacs também é capaz de usar sistemas gráficos nativos do Mac OS X (graças ao Carbon API ) e Microsoft Windows . A interface gráfica oferece menus e barras de ferramentas, barras de rolagem e menus de contexto.

Licença

O código-fonte, sejam componentes C ou Emacs Lisp, está disponível gratuitamente para visualização, modificação e redistribuição, sob os termos da GPL . Versões mais antigas da documentação do GNU Emacs foram lançadas sob uma licença ad-hoc, que exigia a inclusão de um texto específico em cópias modificadas. Por exemplo, no Manual do Usuário GNU Emacs, este texto indica como obter o GNU Emacs, bem como o ensaio político de Richard Stallman "O Manifesto GNU ". Os manuais XEmacs, derivados dos manuais GNU Emacs, herdaram a mesma licença. Desde então, novas versões da documentação GNU Emacs usam o GFDL e fazem uso da seção invariável para forçar a inclusão dos mesmos documentos, bem como o fato de que esses manuais são autoproclamados Manuais GNU .

Usando Emacs

Pedidos

Em um shell UNIX, um arquivo pode ser aberto para edição digitando emacs [nome do arquivo] . Por exemplo, emacs xorg.conf edita o arquivo xorg.conf localizado no diretório atual, se existir. Se o arquivo escolhido não existir, é criado um buffer com o nome do arquivo (e o próprio arquivo será criado se este buffer for salvo). No entanto, a documentação recomenda iniciar o Emacs sem especificar um arquivo, para evitar o mau hábito de iniciar o emacs separado para cada arquivo editado. Visualizar todos os arquivos com um único Emacs é a melhor maneira de aproveitar as vantagens deste editor.

No modo de edição normal, Emacs se comporta como a maioria dos editores de texto: as teclas alfanuméricas ( A, B, C, 1, 2, 3, etc.) inserir o caracter correspondente, as teclas de seta mover o cursor, Retour arrièrepersonagens de exclusão, então depois. Os outros comandos são chamados com combinações de teclas , pressionando uma tecla primária junto com uma tecla alfanumérica. Cada comando de edição é realmente como chamar uma função no ambiente Emacs Lisp. Mesmo um comando simples como digitar Apara inserir o caractere a faz com que uma função seja chamada, neste caso o comando de inserção automática .

A tabela a seguir mostra os comandos básicos.

Ordenado Combinação de teclas Descrição
palavra direta méta +  fou alt + f Vá para o final da próxima palavra
palavra de busca Ctrl + s Procure uma palavra no buffer
desfazer Ctrl + / Desfaz a última modificação e as anteriores se forem chamadas várias vezes
sair do teclado Ctrl + g Cancelar o pedido atual
encher-parágrafo méta +  qou alt + q Ajustar quebras de palavras em um parágrafo
achar arquivo Ctrl +  xdepois Ctrl + f Visite um arquivo (cujo nome é especificado) em seu próprio buffer
salvar-buffer Ctrl +  xdepois Ctrl + s Salve o buffer atual no arquivo correspondente
salvar com novo nome Ctrl +  xdepois Ctrl + w Salva o buffer atual no arquivo cujo nome é especificado
save-buffers-kill-emacs Ctrl +  xdepois Ctrl + c Ofereça-se para salvar as alterações e saia do Emacs
set-marker Ctrl + espace Coloque a marca onde deseja cortar ou copiar
cortar Ctrl + w Corte todo o texto entre a marca e o cursor
cópia de méta +  wou alt + w Copia todo o texto entre a marca e o cursor
colar Ctrl + y Cole o texto contido na área de transferência do Emacs

Os comandos save-buffer e save-buffers-kill-emacs usam uma sequência de combinações. Por exemplo, “  Ctrl +  xdepois Ctrl +  c ” significa: enquanto a tecla Ctrlpermanece pressionada, pressione a tecla X ; em seguida, mantendo Ctrlpressionado, pressione C. Essa técnica, permitindo acesso a mais comandos do que teclas no teclado, foi popularizada pelo Emacs, que a retirou do TECMAC, um dos jogos de macro que antecedeu um pouco o Emacs. Agora é usado em alguns editores de texto recentes, como o do Visual Studio .

Quando o Emacs está sendo executado no modo gráfico, muitos comandos podem ser chamados a partir do menu ou das barras de ferramentas em vez do teclado. No entanto, muitos usuários experientes preferem usar o teclado porque é mais rápido e conveniente depois de memorizar as combinações de teclas correspondentes.

Alguns comandos do Emacs funcionam invocando um programa externo (como ispell para verificação ortográfica ou gcc para compilar programas), analisando os dados que produz e exibindo o resultado no Emacs.

O minibuffer

O minibuffer , geralmente a linha inferior, é onde o Emacs solicita informações ao executar certos comandos. O texto a localizar ou substituir, o nome do arquivo a ler ou escrever e todas as outras informações deste tipo são inseridos no minibuffer. Quando possível, a conclusão (com a tecla Tab ) geralmente está disponível.

Gerenciamento e visualização de arquivos

O Emacs armazena texto em objetos chamados buffers ("  buffer  "). O usuário pode criar novos buffers e deletar aqueles que não utiliza mais, podendo existir vários buffers simultaneamente. A maioria dos buffers contém texto carregado de um arquivo de texto , que o usuário pode editar e salvar no disco. Buffers também são usados ​​para armazenar temporariamente texto, como strings de documentação exibidas pela biblioteca de ajuda .

Tanto no modo gráfico quanto no modo texto, o Emacs é capaz de dividir a área de edição em várias seções (chamadas de janelas , "janelas", desde 1975, o que pode ser uma fonte de confusão em sistemas que já possuem o conceito de janelas.), De forma que vários buffers podem ser exibidos ao mesmo tempo. Entre os usos: uma seção pode exibir o código-fonte de um programa, enquanto outra mostra o resultado da compilação. Em um ambiente gráfico, o Emacs também pode gerenciar várias janelas gráficas, que são então referidas pelo termo quadro .

Ortografia

Algumas pessoas fazem uma distinção entre a palavra maiúscula Emacs , que denota editores derivados de versões criadas por Richard Stallman (em particular GNU Emacs e XEmacs), e a palavra minúscula emacs , que denota as muitas versões independentes do Emacs.

O plural inglês de emacs é geralmente emacsen , por analogia com o plural oxen (que significa "bois" em francês, e cujo singular é boi ). A literatura francesa às vezes usa emacsen e às vezes emacs .

Notas e referências

  1. (en) "Richard Stallman e a Revolução do Software Livre - Uma Biografia Autorizada, 2010".
  2. (en) Phil Hagelberg, ruby-mode.el mudou , ruby-forum.com,16 de dezembro de 2008( leia online ).

Veja também

Artigos relacionados

Bibliografia

  • (pt) Eugene Ciccarelli (1978) An Introduction to the Emacs Editor . Cambridge, Massachusetts: Laboratório de Inteligência Artificial do MIT. AIM-447.
  • (pt) Stallman, Richard M. (1979, atualizado em 1981). EMACS: O editor de exibição extensível, personalizável e autodocumentável . Cambridge Massachusetts: MIT. Publicação do Laboratório de Inteligência Artificial do MIT AIM-519A. PDF HTML
  • (en) Stallman, Richard M. (2002). Manual GNU Emacs. 15 ª  edição . GNU Press ( ISBN  1-882114-85-X ) .
  • (en) Chassell, Robert J. (2004). Uma introdução à programação em Emacs Lisp . GNU Press ( ISBN  1-882114-56-6 ) .
  • (en) Williams, Sam (2002). Livre como na Liberdade . O'Reilly & Associates, ( ISBN  0-596-00287-4 )
  • .

links externos