Emacs1 ist einer der leistungsfähigsten und dadurch auch komplexesten Editoren. Neben der im Titel benutzten Acronym-Erweiterung finden sich dank dieser Komplexität noch einige andere lustige Namen.
Schon ohne die bis ins letzte Detail mögliche Abstimmung auf den Benutzer findet man für fast alles Tastatur-Abkürzungen, die aus Sequenzen der im Titel
genannten Tasten, kombiniert mit normalen Buchstaben bestehen. Die Maus wird dadurch arbeitslos, die rechte Hand erspart sich viel Bewegung.


Möchte man diese möglichst schnell lernen startet man Emacs am besten mit der Option -nw oder schreibt gleich in die .bashrc

alias e=’emacs -nw’
alias se=’sudo emacs -nw’

Emacs läuft dann direkt im Terminal, ohne eigens Fenster. Das hat neben dem zwangsweise schnelleren Erlernen der Tastaturkürzel noch einen weiteren Vorteil: Man kann ohne unnötig Grafik zu transferieren auf einem Server arbeiten, auf den man nur remote zugreift.
Überrascht war ich wie schnell trotz der notorischen Komplexität dann doch einigermaßen zügiges Arbeiten möglich war. Also hier Bilder und Screenshots.

i-d51c13239b733ad221753a34e8e24ee9-arbeitsplatz-thumb-500x391.jpg

Das also ist mein Arbeitsplatz. Fast perfekt… demnächst kommt noch ein dritter Monitor dran.
Links neben dem großen Monitor an der Wand hängt das unverzichtbare Emacs-cheat-sheet. Auf dem großen Monitor wird ein Emacs-frame in einem Terminal dargestellt, es besteht aus drei Windows:
Im linken Fenster editiere ich R source-Code. Mit Hilfe von EES (einem Emacs-mode für R) kann ich einzelne Zeilen oder Bereiche dieses scripts ins rechte Fenster “schubsen”, wo eine R-Konsole innerhalb von Emacs läuft, im Fenster darunter lass ich mir Fehler anzeigen oder schau in das Transkript der Analyse(.Rout).
Rechts auf dem Bildschirm meines aufgeklappt aufgestellten Laptops stelle ich den Grafik-output dar. Vor der Tastatur des Laptops steht ein ESS-cheat-sheet( spezielle Kommandos für diesen Emacs-modus)3.

Nebe R (ESS war eigentlich der Hauptgrund warum sich für mich die Frage “Vim oder Emacs?” nicht stellte) ist Emacs auch in LaTeX unschlagbar.

i-75c69f451f4ae6f3ffe6ce6b9e215486-la-ref-bibtex_xdvik-thumb-500x203-thumb-500x203.png

Im linken Fenster eine TeX Datei in den hoffentlich letzten Zügen der Bearbeitung, Emacs läuft hier im RefTeX-modus. Im rechten Fenster schließlich eine BibTex Datei, die noch einiger Korrekturen bedarf. Auf dem kleinen Monitor wird mit jedem kompilieren automatisch mit Hilfe von xdvik die aktuelle .dvi Datei angezeigt.

Leider ist dieser Post noch nicht direkt in Emacs geschrieben, ich bin mir aber sicher es lohnt sich mir für den nächsten Post ein ähnliches Setup wie ich es für R und Latex dafür zu finden…

[1] viele sagen oder schreiben “der” Emacs, ich finde aber eine Software bekommt keinen Artikel.

[2] Eigentlich ist das ganze noch etwas komplizierter, da ich das R script auf meinem 2x Quad-core Server über ssh editiere. Man sollte dann X11 forwarding aktiviert haben und beim einloggen mit

ssh -Y -c arcfour,blowfish-cbc -C youruser@yourserver

ein Packen der Daten und eine schnelles Verschlüsselung einstellen (via Samat Jain)

Kommentare (7)

  1. #1 rolak
    Juli 4, 2009

    Aah! Noch ein Konsolenjockey 😉 Und sogar Überzeugungstäter, wenn ich dem Ergebnis einer extensiven Recherche über das Lebensalter glauben darf. Mir wird immer ein wenig unterstellt, den Übergang von der Lochkarte zum Terminal als letzte voll akzeptierte Neuerung zu feiern. Zugegeben, es ist nicht so, daß jede Neuerung von mir aus Prinzip sofort übernommen wird, eher findet eine Art evolutionäres Einsickern statt – die Kombination der Filter Faulheit+Effizienz läßt halt nur läßt halt nur das Produktivste überleben. Und dazu gehört imho – wider die allgemeine Breitenauffassung – eben auch dieses komische Fenster ohne Bilder, in dem der Mauszeiger [häufig] verschwindet. Plus ein ausgefeilter set von keymakros, die mir stupide Wiederholungen und clic-Orgien auch in der Welt der Fenster elegant abnehmen.

  2. #2 Florian Freistetter
    Juli 4, 2009

    Also mit der Konsole muss man es nicht übertreiben 😉 Ich verwende sie zwar auch ausgiebig – aber manchmal (der beste Editor ever!) bevorzuge ich dann doch grafische Programme. Aber den Emacs hab ich mir sogar unter Windows als Standardeditor installiert 😉

  3. #3 JörgR
    Juli 4, 2009

    Wow, scienceblogs-movabletype.el, das wärs ja mal, mit direktlink zum hochladen und tastenkombination um Kommentare vom Wilfert in den Spam zu schieben 🙂

  4. #4 Emanuel Heitlinger
    Juli 4, 2009

    rolak: Spätestens bei meiner Diplomarbeit hab hab ich bemerkt, dass das “Herumgeklicke” und eine reproduzierbare Analyse von Daten nicht vereinbar sind. Dazu kommt dann noch dass ich vorher nich viel mit Computern gemacht hab (gespielt oder so), dann ist es einfach gleich das “richtige” Betriebssystem zu benutzen und sich auch die entsprechende Arbeitsweise anzugewöhnen.
    Ich werd in Zukunft noch n paar solcher Posts schreiben, auch etwas detaillierter über Software die ich auch als unerfahrener Nutzer einfach nur genial finde… dass es sowas umsonst gibt und dass es auch noch so gut funktioniert.

    Ja, Jörg, gleich nach dem Post hat mir google dann auch folgendes beschert . Werd’s mal testen… obwohl in diesem Fall schon Florians Argument greifen könnte.

  5. #5 dvizard
    Juli 5, 2009

    Ich hab zwar Windows auf meinem Arbeitscomputer. Eigentlich brauche ich es aber fast nur, um über Putty (SSH) auf irgendwelchen Remotegeräten Daten rumzuschieben 😀

  6. #6 Karol Babioch
    Juli 18, 2009

    Dann schmeiß ich mal Folgendes in die Runde: “vi ist viel besser”, und entfache damit wohl hoffentlich den Editorenkrieg neu ;).

    Im Grunde benutze ich vi aber nur um etwaige Konfigurationsdateien zu manipulieren, also nichts großartiges.

  7. #7 Emanuel Heitlinger
    Juli 22, 2009

    Ja, die vi/emacs Geschichte ist auch für n paar Lacher gut… wie gesagt für mich stellte sich wegen, ESS nie die Frage.
    Von vi hab ich keine Ahnung, schätze aber, dass der nicht ganz so komplex ist, und mir hier nicht wochenlang die Konfiguration von “IDEs für alles” die Zeit zum Bloggen rauben würde. 🙂