如何重新初始化 swank?

How to reinitialise swank?

我怎样才能让 swank 忘记所有以前计算过的定义?

我希望它取消定义所有通过求值定义的宏、函数和变量(例如 ,b 求值缓冲区)。并让它恢复到与我重新启动 PC 并重新启动 swank 服务器时相同的状态。

我试过了:

M-x slime-restart-inferior-lisp 将从头开始。

这不能直接解决您的问题,但如果您需要在重启时丢失所有变量,也许在单独的包中工作应该适合您。

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}>.

然后你删除你的环境,你没有这个变量,每次你重新定义包

Slimv作者在这里。我向 slimv 添加了一个新命令 'Quit REPL'。这将通过调用 swank:quit-lisp 关闭 lisp 进程 运行 swank 服务器,然后关闭 REPL 缓冲区。您可以使用此命令后跟另一个 'Connect Server' 命令来重新启动 REPL。 'Quit REPL'的默认映射是<Leader>Q,所以你可以通过<Leader>Q<Leader>c顺序重启REPL。 请查看 BitBucket 上的提交 44a50afc... on GitHub or a8abdbbc...