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

Por: Jarno Trulli em 08/12/2005


Comandos básicos



Tudo o que você deve saber sobre como mover-se e fazer o seu texto em GNU Emacs estará aqui!

Quando você abre o Emacs sem parâmetros, ele te mostra um buffer chamado "scratch". Este buffer não salva absolutamente nada do que você escrever nele! Ele é, exatamente como o nome diz, um "rascunho".

Neste caso você precisa abrir um arquivo para começar a editar. Então você tecla C-x C-f para abrir (no jargão do Emacs, "visitar") um arquivo. O Emacs irá te perguntar que arquivo visitar (ah, o Emacs usa <TAB> para completar nomes!).

Caso tenha passado um parâmetro, o Emacs irá abrir um buffer para este arquivo em especial e você pode começar a editá-lo.

Eis uma tabela de comandos sem os quais você não pode começar a brincar no Emacs...

ComandoAção
C-x C-fVisitar um arquivo
C-x C-sSalvar as modificações sem perguntar onde salvar
C-x C-wSalvar as modificações perguntando onde salvar
C-x sSalvar todos os buffers em edição
C-x C-bLista todos os buffers abertos
C-fMove o cursor 1 letra para frente (forward)
C-bMove o cursor 1 letra para trás (backward)
C-pMove o cursor 1 linha para cima (previous)
C-nMove o cursor 1 linha para baixo (next)
C-aMove o cursor para o início da linha
C-eMove o cursor para o fim da linha (end)
M-aMove o cursor para o início da sentença
M-eMove o cursor para o fim da sentença
M-fMove o cursor uma palavra para frente
M-bMove o cursor uma palavra para trás
M-}Move o cursor um parágrafo para frente
M-{Move o cursor um parágrafo para trás
M-<Move o cursor para o início do buffer
M->Move o cursor para o fim do buffer


PS: Os comandos comuns, como PageUp, PageDown, teclas direcionais, etc, também funcionam, só que é muito mais rápido e divertido usar os Controls e Alts da vida!

Isto sem contar que eles funcionam para qualquer teclado e, quando você vai tomando a prática, eles vão ser mais eficientes, pois todas as teclas necessárias estarão bem próximas de suas mãos!

PPS: Veja que para digitar M-> você precisa segurar as teclas <Alt>, <Shift> e <.>, caso você esteja usando um teclado ABNT.

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

Mais sobre recursividade em C/C++

BOCHS - O emulador de x86

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

Leitura recomendada

Instalar o TeamViewer no Ubuntu/Debian

A Evolução dos Sistemas Operacionais

Alta Disponibilidade (HA) com Debian (Heartbeat + DRBD + Mon)

Instalando Wine no Fedora sem mistério

KDEMod 4.1 no Arch Linux

  
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