However, the best way to run LISP is as a subprocess of Emacs. To do this you need to make some changes to your ".emacs" file and to your LISP initialization file, ".clinit.cl".
".clinit.cl"
if it exists in your home directory.
You can use this file to automatically load certain
files or perform certain operations whenever you start LISP.
I have the following code in my ".clinit.cl"
file:
(in-package :cl-user) ;;; Set a few top-level variables. (tpl:setq-default top-level:*history* 50) (tpl:setq-default top-level:*print-length* NIL) (tpl:setq-default top-level:*print-level* NIL) (tpl:setq-default top-level:*zoom-print-level* 10) (tpl:setq-default top-level:*zoom-print-length* 10) (tpl:setq-default top-level:*exit-on-eof* NIL) ;;; Have packages print with their shortest nickname ;;; instead of the package name. (tpl:setq-default *print-nickname* t) ;;; Only print "Compiling" messages for files, not for individual functions, ;;; unless there is a warning or error. (tpl:setq-default *compile-verbose* t) (tpl:setq-default *compile-print* nil) ;; Suppress GC messages (SYS::GSGC-SET-SWITCH :print NIL) ;; The last thing...print the current directory. (print (current-directory))
ctrl-c ctrl-s
.
However, Emacs beeps and says it doesn't understand.
Diagnosis: You started editing the file before you started Common LISP, so the buffer is in COMMON-LISP mode instead of FI:COMMON-LISP mode.
Solution: Place the source file buffer in the correct
mode by typing: M-x fi:common-lisp-mode
longest
but the command (apropos "long" :CL-USER)
doesn't list it.
Diagnosis: You are running on a UNIX machine.
Solution: Use uppercase in the search strings, as in:
(apropos "LONG" :CL-USER)
.
Solution: Use (defparameter ...)
to define
global variables instead of defvar
. Also turn off
all tracing before compiling functions. Use (untrace)
to untrace all functions. (This is a bug in ACL).
This page was created by
Micheal Hewett