Helga Fischer
Sach' mal: Wo hast Du diese genialen Tipps her? Da gibt es doch bestimmt noch mehr praktisches zu entdecken.
Eine zentrale Anlaufstelle, eine Webseite oder so, kenne ich leider auch nicht. Diesen Codeschnipsel habe ich tatsächlich vor Jahren 1:1 aus einem Usenet-Posting in gnu.emacs.help übernommen. Aber wenn ich mir das jetzt so anschaue, ist es wirklich sehr simpel. Ich hätte das auch aus dem Stehgreif improvisieren können. Dazu hat mir vor allem die intensive Beschäftigung mit Gnus verholfen. Lisp ist wirklich einfach. Vor allem Emacs-Lisp. Und was Gnus betrifft, ist es hervorragend dokumentiert. Dabei lernt man eben, wie Emacs "tickt". Sehen wir uns die Zeilen doch mal an: (defun up-slightly () (interactive) (scroll-up 5)) Hier wird eine Funktion definiert. Der Name der Funktion ist "up-slightly", und sie macht eigentlich nichts anderes, als interaktiv eine andere Emacs-Funktion aufzurufen, nämlich "scroll-up". Scroll-up wird mit dem Parameter 5 aufgerufen. Dasselbe kannst Du auch händisch innerhalb von Emacs ausprobieren. Probiere einfach mal M-x scroll-up. Dabei sollte der ganze Buffer-Inhalt einen halben Bildschirm nach oben rollen (d.h., der Cursor wandert _abwärts_). Wenn Du einer Funktion wie scroll-up, die eigentlich keinen Parameter erwartet, einen Wert mitgeben möchtest, so kannst Du die sogenannte Prefix-Schreibweise benutzen. Das geschieht mit C-u. Also, der ganze Ausdruck: C-u 5 M-x scroll-up bewegt den Buffer-Inhalt um 5 Zeilen nach oben. (global-set-key [mouse-5] 'up-slightly) Hier teile ich Emacs nur noch mit, daß, wenn die Taste Maus-5 gedrückt wird (so behandelt X intern eine Bewegung des Mausrades nach unten), die soeben definierte Funktion "up-slightly" ausgeführt werden soll. "Global" heißt dabei, daß das in allen Major-Modes gelten soll. Über XEmacs weiß ich leider rein gar nichts, aber beim GNU Emacs wird haufenweise phantastische Dokumentation mitgeliefert. Es ist an jeder Programmstelle möglich, spezifische Hilfstexte abzufragen, außerdem gibt es ein Tutorial, die Info-Seiten als Handbuch und nicht zuletzt das Elisp-Manual. Ein guter Startpunkt ist hier immer C-h ? Leider, leider, leider gibt's das alles aber nur in Englisch. P.S.: C-h == Control(Strg) + 'h' C-h ? == Control(Strg) + 'h', dann '?' M-h == Meta(Alt) + 'h' M-x scroll-up == Meta(Alt) + 'x', dann 'scroll-up' <RET> -- |\_/\_.-'""``:-._ What is life without looking for . . `; -._ )-;-,_`) the next cute little bug to play with? v_,- _ ),(,.\ ``-' _.- _.,-_/ / ((.' ((,.-' ((,/ ______________________________________________________________ martins:x:500:100:Martin Schmitz:/home/martins:/usr/bin/emacs