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.129 ]

Por: Jarno Trulli em 08/12/2005


Outros comandos



Vou falar aqui de uns comandos interessantes e que merecem um destaque especial. Esta parte está uma completa bagunça, mas espero ser útil como uma referência.

---
O Emacs é um editor que tem lá suas idiossincrasias... uma delas, que eu acabei gostando, é o "AutoScrolling" (ou "scroll" na documentação original).

Na vasta maioria dos editores de texto, o texto segue o cursor, e se você atinge o final da janela e ainda há mais texto, o editor mostra mais uma linha apenas. Já o Emacs centraliza o texto quando isso acontece. A impressão é de que a tela rolou pra cima (que nem o botão de scroll mouse no navegador Mozilla Firefox).

Tente a experiência no GEdit e no Emacs que você logo entenderá o que estou falando. Isto é bastante útil, pois normalmente as pessoas lêem com mais atenção o que está no centro da tela.

Neste caso, o comando "C-l" (l de lambda, e não 1 de 1 real!) faz a mesma coisa, só que em qualquer ponto do texto em que você estiver.

---
Quase todo comando do Emacs admite um argumento numérico. Para passar este argumento usa-se "C-u". Por exemplo, C-u 100 # adiciona 100 símbolos # no texto.

Muitas vezes tais argumentos são de repetição, mas há algumas exceções. Por exemplo, C-u 5 C-l faz o editor rolar o texto 5 linhas para baixo (m vez de centralizar o texto cinco vezes :P).

---
No vim, a tecla <ESC> salva você de várias enrascadas perigosas.

Por exemplo, imagine que você iria digitar :q! <RETURN> no modo texto e, antes de apertar o <RETURN> percebe que está no modo de comandos. Antes do fatídico ato, você simplesmente tecla <ESC> e tudo volta ao normal!

O comando que faz este tipo de coisa no Emacs é justamente "C-g". Imagine por exemplo que você digitou C-u 100, mas desistiu da loucura de repetir um comando 100 vezes. Então você simplesmente digita C-g que o comando simplesmente desaparece!

---

Bem, acho que é só!

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

Terminais leves: Analisando as tecnologias XDMCP, NXSEVER E LTSP

Como usar o Bugzilla do Sabayon

Deixando o BunsenLabs cinza de novo

VPN com Openswan e Iptables (fazendo NAT)

Dúvidas iniciais para começar Open Hardware de mouse + GUI

  
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