lisp 中REQL基本操作

直接输入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

你可能感兴趣的:(lisp 中REQL基本操作)