handcode.de Logo
xemacs   xemacs lisp  

XEmacs Lisp

Eines der in meinen Augen genialsten "Features" am XEmacs ist, es gibt Unmengen an extern Modulen/Paketen für jeden Zweck. Und sollte es wirklich mal für irgendeine Aufgabe nichts geben, kann man sich selber Funktionen oder ganze Modes in Lisp schreiben.

Grundsätzlich besteht der Emacs aus einem "Kern" der in C geschrieben ist und viel Lisp. Die Config-Files und alle optionalen Pakete und Module sind in Lisp geschrieben. Durch diese enge Verknüpfung des Emacs mit Lisp, gibt es für diese Sprache (wie für wohl fast jede andere) natürlich sehr gute Editier- und Debug Funktionen.

extern Lisp ist eine sehr alte Sprache, die wie ich finde einen doch reichlich gewöhnungsbedürftigen Syntax hat. Wenn man sich allerdings mal mit den Grundsätzen vertaut gemacht hat, sind der Fantasie keine Grenzen gesetzt :-)

Für den XEmacs gibt es einen eigenen Lisp-Dialekt: extern XEmacs Lisp.

Auch wenn ich von mir nicht behaupten würde Lisp zu beherschen, habe ich inzwischen doch einge Zeilen Code geschrieben, man (also ich :-) will ja verstehen wie irgendwas funktioniert. Wie auch immer, die folgenden Lisp-Dateien könnten auch anderen Emacs-Usern von Nutzen sein, als bitte bediene sich wer mag.

  • new-window fluxbox-mode.el 
    Eine meiner ersten kleinen Lisp-Übungen war es, einen Mode zum Editieren der Config-Files meines Windowmanagers extern Fluxbox zu schreiben. Ausser syntax-highlighting bietet dieser mode noch die Funktion 'fluxbox-browse-manual' (\C-c\C-m) die das Manual der Fluxbox-Website öffnet.
  • new-window dbconnect.el 
    Hier habe ich mir 3 kleine Funktionen geschrieben, welche die einzelnen Schritte die man machen kann/muss, um sich aus dem XEmacs heraus interaktiv auf einen DB-Server (MySQL, postgreSQL, Oracle) zu verbinden. Jaja, hör ich schon sagen, die Emacser, alles müssen sie aus dem Teil raus machen, da kann man sich doch auch in der shell einfach mit dem entspr. Client zum DB-Server verbinden... 
    Der Trick hier ist aber, dass man die Queries nicht direkt in dem Client-Buffer schreibt, sondern in einem weiteren Fenster in einer (SQL-)Text-Datei. 
    Vorteil: man hat direkt ein Log der Queries, kann diese in der gewohnten Editor-Umgebung bearbeiten und das auch noch mit dem syntax-highlighting des SQL-modes. 
    Was will man mehr :-)
$Id: lisp.xml,v 1.11 2009/08/10 09:36:32 jg Exp $