Lisp innerhalb von Emacs ausführen

Wir verwenden Allegro Lisp. Die folgende Beschreibung ist auf die Benutzung von Allegro Lisp ausgerichtet.

Es ist einfacher, Lisp innerhalb von Emacs auszuführen als in der Konsole, da alle Befehle von Emacs zur Verfügung stehen. Emacs Einführungen sind unter den Links zu finden. Folgende Befehle sind speziell für die Ausführung von Lisp interessant:

M-l startet Lisp in einem eigenen Puffer.
M-f beendet Lisp.
M-p holt das vorherige Kommando aus der Historie von Kommandos.
M-n holt das nächste Kommando aus der Historie.
M-e evaluiert die defun Anweisung im momentanen Puffer. Die Funktion ist damit in Lisp bekannt.

Um diese Kommandos nutzen zu können, müssen in der .emacs Datei folgende Befehle stehen:

(defvar *eli-directory*)
(setq *eli-directory* (expand-file-name "/export/home/stud2/hofhausa/acl61/eli/"))

(when (and (not (string-match "xemacs" emacs-version))
(= emacs-major-version 20)
(<= emacs-minor-version 2))
(setq load-path (cons *eli-directory* load-path)))

(load (format "%sfi-site-init" *eli-directory*))

(setq fi:common-lisp-image-name "/export/home/stud2/hofhausa/acl61/alisp")

(setq fi:common-lisp-image-file
"/usr/wiss/beetzm/LISP/IMAGES/tumbot.core")

;;(setq fi:common-lisp-host "ultra")

;; This function starts up lisp with your defaults.
(defun run-common-lisp ()
(interactive)
(fi:common-lisp fi:common-lisp-buffer-name
fi:common-lisp-directory
fi:common-lisp-image-name
fi:common-lisp-image-arguments
fi:common-lisp-host))
(define-key global-map "\M-l" 'fi:common-lisp)
(define-key global-map "\M-f" 'fi:exit-lisp)
(define-key global-map "\M-p" 'fi:pop-input)
(define-key global-map "\M-n" 'fi:push-input)

Bei den ersten Befehlen muss evtl. der Pfad angepasst werden, wo Allegro Lisp installiert ist. Mit M ist bei diesen Kommandos die Esc Taste gemeint. Man kann statt der Esc Taste auch die Ctrl Taste verwenden. Dann muss bei den Befehlen in der .emacs Datei \M durch \C erstetzt werden.

Hier ist eine kleine Übung, um mit Lisp und Emacs vertraut zu werden.

Links

Downloads

Allegro Lisp
Emacs
XEmacs

Lisp Einführungen

Lisp Notes for CS 188, Fall 2002
Common Lisp Help Session
An Introduction and Tutorial for Common Lisp
LISP Primer
Successful Lisp: How to Understand and Use Common Lisp
LISP Tutorial

Lisp Referenzen

Common Lisp the Language, 2nd Edition
CommonLisp Hyper Spec

Hilfen zur Fehlersuche

Successful Lisp Chapter 30:Helpful Hints for Debugging and Bug-Proofing
Successful Lisp Chapter 16

Emacs Beschreibungen

GNU Emacs Manual
GNU Emacs Reference Card (wichtige Tastenkombinationen)