直接输入q推出调试器,然后回到REQL里,调试器缓冲区将会消失,而REQL将显示下面
CL-USER> (hello-world)
; Evaluation aborted on #<UNDEFINED-FUNCTION HELLO-WORLD {23FBEF29}>.
C-c C-c 将启动 slime-compile-defun命令,将当前定义发给lisp进行求值并编译
C-c C-z 切换到REPL
C-x C-s 可以启动Emacs命令save-buffer.
C-x b switch buffer,
C-x C-f 打开一个文件,同时把文件名作为buffer 名。
缩进:
在slime中将光标放置在一个开括号上并键入C-M-Q来重新缩进整个表达式
在函数内部的任一个位置C-c M-q 来重新缩进整个函数体。
还有一个跟我们平常不一样的是,我一直感觉c-x c-s都是保存REPL中的东西,但是今天才知道,他只是一个窗口,你必须得有一个源文件,不含有cl-user的标示。否则当你load的时候他总会说cl-user不识别。
加载文件的方法:
1:REPL中直接输入,然后你就可以在repl中调用函数了。本质上等价于以文件中出现的顺序在REPL下逐个输入每个表达式。
CL-USER> (load "hello.lisp")
T
2:加载文件中有用定义的方法,先compile-file 编译,然后再用load加载编译后的FASL文件-快速加载文件(fast-load file)简称。
CL-USER> (load (compile-file "hello.lisp"))
; compiling file "d:/emacs/emacs-24.1/bin/hello.lisp" (written 15 JUL 2012 12:46:10 PM):
; compiling (DEFUN HELLO-WORLD2 ...)
; d:/emacs/emacs-24.1/bin/hello.fasl written
; compilation finished in 0:00:00.009
STYLE-WARNING: redefining COMMON-LISP-USER::HELLO-WORLD2 in DEFUN
T
3:可以在源代码或者SLIME buffer中输入C-c C-l 你在其它缓冲区的话,它会在命令窗口显示undefined.
C-c M-o slime-repl-clear-buffer 清空buffer
C-c C-o slime-repl-clear-output 清空输出
M-x slime-compile-region 编译region