如何使swank忘记所有以前评估过的定义?
我希望它取消定义所有通过计算(如,b评估缓冲区)定义的宏、函数和变量。并让它回到与我重新启动我的PC和刚启动swank服务器时相同的状态。
我试过:
,-)命令:
这似乎只清除屏幕(缓冲区)。(swank:restart-server) (来自REPL缓冲区):
服务器重新启动,但它仍然记得我的旧defun和其他定义。(slime-restart-inferior-lisp)和`(slimv-重新启动-下级-lisp)
两者都是未定义的。发布于 2015-11-01 11:52:10
这里是斯利夫的作者。我添加了一个新的命令‘退出REPL’到slimv。这将通过调用swank:quit-lisp关闭运行swank服务器的lisp进程,然后关闭REPL缓冲区。您可以使用这个命令,然后是另一个“Connect Server”命令来重新启动REPL。“退出REPL”的默认映射是<Leader>Q,因此可以通过<Leader>Q<Leader>c序列重新启动REPL。请参见在GitHub上提交GitHub或在BitBucket上提交a8abdbbc...。
发布于 2015-10-30 11:30:57
M-x slime-restart-inferior-lisp将从头开始重新启动事物。
发布于 2015-10-30 17:49:13
这并不能直接解决您的问题,但是如果您需要在重新启动时丢失所有变量,也许在单独的包中工作应该适合您。
CL-USER> (defpackage :my-separate-package (:use :cl :cl-user :swank))
#<PACKAGE "MY-SEPARATE-PACKAGE">
CL-USER> (in-package :my-separate-package)
#<PACKAGE "MY-SEPARATE-PACKAGE">
MY-SEPARATE-PACKAGE> (defvar a "a")
A
MY-SEPARATE-PACKAGE> a
"a"
MY-SEPARATE-PACKAGE> (in-package :cl-user)
#<PACKAGE "COMMON-LISP-USER">
CL-USER> (in-package :my-separate-package)
#<PACKAGE "MY-SEPARATE-PACKAGE">
MY-SEPARATE-PACKAGE> a
"a"
MY-SEPARATE-PACKAGE> (in-package :cl-user)
#<PACKAGE "COMMON-LISP-USER">
CL-USER> (delete-package :my-separate-package)
T
CL-USER> (defpackage :my-separate-package (:use :cl :cl-user :swank))
#<PACKAGE "MY-SEPARATE-PACKAGE">
CL-USER> a
; Evaluation aborted on #<UNBOUND-VARIABLE A {1004AD9AF3}>.
CL-USER> (in-package :my-separate-package)
#<PACKAGE "MY-SEPARATE-PACKAGE">
MY-SEPARATE-PACKAGE> a
; Evaluation aborted on #<UNBOUND-VARIABLE A {10055C6063}>.然后删除您的环境,并且您没有这个变量,每次您重新定义包时。
https://stackoverflow.com/questions/33396711
复制相似问题