GNU Emacs (Intro)

Falaremos, neste curto espaço, desta ferramenta que só é um editor de textos quando você quer. De fato, além desta nobre função de auxiliar hackers em seu trabalho, ele admite extensões para quase tudo o que se possa imaginar: compilador, checador de sintaxe, shell, web browser, CVS, etc. O que você imaginar, pode ser feito em GNU Emacs!

[ Hits: 60.136 ]

Por: Jarno Trulli em 08/12/2005


Senta que lá vem história...



Bem, nada melhor que contar sobre como tudo começou...

Esta parte vai ser algo parecida com a história contada na Wikipedia:
"Era uma vez", lá pros idos de 1970-e-guaraná-de-rolha, um editor meio tosco, o TECO (Tape Editor and COrrector. Sim, do tempo da fitona K7 magnética!). Ele era algo meio difícil de ser usado (imagine algo como o "ed" para quem usa o vim hoje em dia... é possível usar, mas dá um trabalhão! Assim era o TECO!).

O TECO, que nem o ED de hoje em dia (ou o edline, para quem já tentou este pequeno monstrinho no FreeDOS), tratava as funções de edição, exibição na tela, escrita e gravação de arquivos separadamente. Ou seja, se você digitasse alguma coisa, ela não necessariamente apareceria na tela. Imagine a tortura de escrever sem ver o resultado...

Pois bem, lá no laboratório de AI do MIT (sim, o mesmo lugar de onde saiu o Richard Stallman), alguns hackers pensaram em como deixar o TECO um pouquinho mais amigável. Um deles fez uma extensão que imprimia na tela, outro pensou num sistema de recuperação após catástrofes (quedas de energia eram um pesadelo pra quem passou horas programando e perdeu tudo), e assim por diante.

Depois de muito tempo, o Guy Steele resolveu juntar esta coleção de funcionalidades no TECO e assim, após algumas noites com café e sem sono, Stallman e Steele acabaram de formar o Super-TECO! Agora, faltava dar o nome para a nova geringonça do MIT AI Lab. Nada mais natural que o nome fosse "Emacs" (de Editing MACroS).

O mais interessante é que mesmo que o Emacs fosse uma extensão do TECO, ele mesmo era um editor de textos totalmente diferente (e sensivelmente mais fácil de trabalhar). Com isto, era fácil portá-lo para outras plataformas e começaram a aparecer implementações do Emacs em outras linguagens que não o TECO. E começaram a aparecer versões proprietárias deste Emacs.

Assim sendo, na época do Manifesto GNU, Stallman tratou de escrever o GNU Emacs, o primeiro software GNU da história.

Depois de um tempo, Jamie Zawinski pegou uns códigos em fase alfa do GNU Emacs e produziu o Lucid Emacs, que evoluiu para o XEmacs. E desde então o GNU Emacs e o XEmacs são os mais usados e os mais famosos emacsen (o plural de "emacs" é "emacsen"...).

"E todos viveram felizes para sempre..."

Página anterior     Próxima página

Páginas do artigo
   1. Motivos
   2. Senta que lá vem história...
   3. Eu quero um! Onde eu acho?
   4. Micro-tutorial
   5. Nomenclatura
   6. Comandos básicos
   7. Janelas no Emacs
   8. Outros comandos
   9. Conclusão
Outros artigos deste autor

BOCHS - O emulador de x86

Rage Against Binary Blob - sobre documentação aberta para hardware

Mais sobre recursividade em C/C++

Leitura recomendada

Personalizando o Ubuntu 9.04 com Screenlets

Instalando programas utilizando os fontes no seu Slackware com o checkinstall

Conhecendo o LXDE

Aventuras, desventuras e Software Livre

Atualizar o macOS no Mac - Opencore Legacy Patcher

  
Comentários
[1] Comentário enviado por leonardoamorim em 08/12/2005 - 08:40h

Correção.

"Bem, este é só um pequeno "manifesto" sobre o por quê deu estar escrevendo este artigo."

O correto seria:

"Bem, este é só um pequeno "manifesto" sobre o porquê de estar eu escrevendo este artigo. "

O sujeito da oração é um termo insubordinado, portanto, ele não deve estar "acoplado" em uma preposição como em "deu" (de + eu), aliás isso é um verbo. A preposição "de" deve estar ligada ao verbo no infinitivo "estar".

E o "por quê" é junto, pois é um substantivo, veja que antes dessa palavra vem um artigo.

O correto é: o porquê.

[2] Comentário enviado por in54no em 08/12/2005 - 10:02h

Muito bom o Artigo, gostei...
Espero que logo venha a segunda parte!
E para compilar fontes direto no Emacs, como faco?

[3] Comentário enviado por fdavid em 08/12/2005 - 17:11h

Olha juro que eu tento mais não consigo, tanto o vi quanto o emacs não encontro o porque do sucesso.

Comando pra inserir, apagar, andar, pular etc etc não é muito mais simples seta para baixo, insert, delete etc ?

Se alguem tiver uma boa explicação para isso fico grato, eu uso o mcedit que não tem nada de especial e por isso é pratico, me pergunto o que um editor de texto (puro) precisa mais ?

[4] Comentário enviado por ferlopes em 08/12/2005 - 17:22h

Knancys:

Imagine que o vi foi um dos primeiros editores, juntamente com o nano, que saíram da total abstração dos números e dos códigos... são editores... O VIM - Vi IMproved já é uma grande evolução daqueles primeiros VIs, dos anos 70.

Já o EMACS está em outro patamar... é uma ferramenta completa, complexa e que é ferramenta básica para muitos e muitos programadores... Para uma geração que sempre viveu na era visual, talvez seja até difícil querer comparar com programas como Eclipse ou qualquer outra coisa... mas a questão vai além... O Emacs é, ainda hoje, uma ferramenta muito boa...

... e o VI é o típico programa que vira canivete suíço, extensão da mão do administrador ou do programador linux... pura verdade! Num sistema remoto, por exemplo, você não pode subir um programa que use servidor visual. Para pequensa e às vezes médias edições, o Vi é simplesmente imbatível, pela praticidade e rapidez com que cumpre sua função. Talvez você se refira ao VIzão... que, realmente, não é dos mais práticos... mas que com certeza tem muitos defensores... é tudo questão de gosto: você gosta de mcedit... é ou não é?

[5] Comentário enviado por femars em 08/12/2005 - 23:54h

mto massa...a forma em q vc coloco essas informações....parabens

[6] Comentário enviado por fdavid em 09/12/2005 - 08:18h

Boa pesquisando vi e emacs achei que posso fazer scripts para os mesmos, isso pode adiantar na digitação do codigo.
Tá começando a ficar interessante :-)


[7] Comentário enviado por chronos em 09/12/2005 - 11:24h

Não conheço o Emacs mas sei do seu poderio. Achei o seu artigo muito interessante e instrutivo, entretanto sugiro que use uma linguagem mais técnica da próxima vez.

Também senti um ar de ataque ao VIM, acho que isso não é interessante em artigos.

Espero pelos seus próximos artigos :)!

Ah, no VIM, tem como você mapear teclas, nos modos visual (de seleção), normal e no modo de edição, o que significa que ti pode por exemplo mapear C-w para salvar o arquivo, C-q para sair, C-(setas) para andar uma palavra pro lado, etc.

Também há como você usar por exemplo o PHP binário para checar syntax eu acredito, existe um projeto em desenvolvimento para isso.

Continue com seus artigos, estou começando a me interessar pelo emacs :).

Abraços.

Felipe 'chronos' Prenholato.

[8] Comentário enviado por edivan em 09/12/2005 - 13:49h

Gostei do artigo, mas acho que deveria ser mais calmo quando escrever sobre a relação com o vi.

chronos, vc pode mapear as teclas do emacs com M-x global-set-key, ai ele vai pedir as teclas e o comando.
ex, C-q para sair:
M-x global-set-key [ENTER]
C-q [ENTER]
(save-buffers-kill-emacs) [ENTER]

knancys, como exemplo do que vc pode fazer para auxiliar na digitação de codigo no emacs.

(defun cpp_create-class (nome arquivo)
(interactive "sNome da Classe: \nFArquivo(sem extenção): " )
(find-file (format "%s.h" arquivo))
(insert-string (format "class %s {\n" nome))
(insert-string "public:\n")
(insert-string (format "%s();\n" nome))
(insert-string (format "%s(const %s &);\n" nome nome));
(insert-string (format "~%s()\n" nome))
(insert-string "private:\n\n};")
(find-file (format "%s.cc" arquivo))
(insert-string (format "#include \"%s.h\"\n" nome))
(insert-string (format "%s::%s() {\n\n}\n" nome nome))
(insert-string (format "%s::%s(const %s ©) {\n\n}\n" nome nome nome))
(insert-string (format "%s::~%s(){\n\n}\n" nome nome)))

Esse codigo cria uma classe em c++ com os metodos padraões em um arquivo que vc escolher.

Para usar, coloque o cursor no ultimo parêntese e de um C-x C-e e depois M-x cpp_create-class

PS.
Esses insert-string são uma gambiarra minha, acho que deve ter uma maneira melhor para inserir strings

[9] Comentário enviado por marrento em 10/12/2005 - 19:04h

enviado por knancys em 08/12/2005:
"Olha juro que eu tento mais não consigo, tanto o vi quanto o emacs não encontro o porque do sucesso. Comando pra inserir, apagar, andar, pular etc etc não é muito mais simples seta para baixo, insert, delete etc ?"

E porque vc acha que não pode usar as setas, backspace ou delete? Vc pode até mesmo usar o mouse. Mas a intenção desses editores praticíssimos é que vc nunca tire suas mãos da posição de edição: elas estão sempre sobre as teclas de edição.

Vc certamente pode se contentar apenas com o feijão-com-arroz que editores como notepad ou nano te dão, mas para muitas pessoas, cuja vida profissional depende de produtividade na edição de textos, os comandos avançados de movimentação, repetição, macros e tudo o mais de vim e emacs são absolutamente essenciais.

Depois que vc aprende, vê o quanto era primitivo e improdutivo seu mero copiar-e-colar com notepad e sua tosca movimentação linha-a-linha ou page-up/page-down...

enviado por ferlopes em 08/12/2005:
"Já o EMACS está em outro patamar..."

Nem tanto. Eu diria que o VIM hoje está no mesmo patamar do Emacs em termos de recursos de edição de texto. Ele tem até sua própria linguagem de extensão hoje, que é mais familiar a muitos programadores do que Lisp.

E, diferente de Emacs, parece não ter perdido o foco, sua razão de ser: edição de textos. Já fui um grande fã de emacs, mas a simplicidade do VIM, pelo fato de ser um editor modal, me conquistou nos últimos tempos. Acho que a gota d'água foram os inimagináveis combos de comandos para se programar com o pgsgml-mode em XEmacs: muito úteis, mas exigindo um complexo malabarismo com as mãos... apertar i ou a no VIM antes de editar é um preço pequeno a pagar por uma economia de destreza manual tão confortável... :)

"Para uma geração que sempre viveu na era visual, talvez seja até difícil querer comparar com programas como Eclipse ou qualquer outra coisa..."

É uma geração perdida... ;)

enviado por chronos em 09/12/2005:
"Também senti um ar de ataque ao VIM, acho que isso não é interessante em artigos."

Acostume-se: é que nem time de futebol... :)

[10] Comentário enviado por chronos em 11/12/2005 - 11:38h

Marrento, pode ser que nem time de futebol, mas acho que não precisamos disso, ainda mais em um site como o viva o linux não éh :).

[11] Comentário enviado por dastyler em 11/12/2005 - 17:55h

Gostaria de adicionar umafunçao importante do Emacs, que é acionada via tecla F10 do teclado. Quando vc pressiona esta tecla, o Emacs abre um menu para que voce interaja com o programa (ex: salvar arquivo, procura, etc.). Por exemplo, para salvar um arquivo, pressione F10, depois f e finalmente s.

[12] Comentário enviado por Jarnotrulli em 22/03/2006 - 15:35h

bem, á como você definir isto no Emacs mesmo, sem tantos arquivos de configuração. Mas ào sei se é útil, e nem sei ainda como fazer :P

[13] Comentário enviado por Jarnotrulli em 22/03/2006 - 15:43h

Quanto ao "ataque ao VIM", bem, encarem como quiser :P, mas a intenção era apenas de brincadeira mesmo. Nada para ser levado aos extremos.
Mas a parte do vimrc no VOL é opinião própria!

[14] Comentário enviado por henriquebarsa em 16/10/2007 - 09:28h

Numa coisa eu concordo, não encontrei nada de Emacs nesse site muito profundo além desse artigo aqui.

Digo que deve haver até uma comunidade sobre o Emacs, desde o mais básico até o mais avançado

[15] Comentário enviado por rodolfobertozo em 13/07/2016 - 14:33h

Exelente cara!! Faltam posts sobre Emacs em sites do Brasil!! Mandou muito bem explicando o básico!!

Para quem não compreende o porque de tantos atalhos ("porque utilizar Ctrl + b se tem a seta".... =/), é porque nunca se deu a chance de testar e pegar o "ritmo da coisa". Depois de um tempo as coisas ficam naturais... como utilizar a seta...só que com muito mais poder!!! =]


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts