如何重新初始化 swank?
How to reinitialise swank?
我怎样才能让 swank 忘记所有以前计算过的定义?
我希望它取消定义所有通过求值定义的宏、函数和变量(例如 ,b
求值缓冲区)。并让它恢复到与我重新启动 PC 并重新启动 swank 服务器时相同的状态。
我试过了:
slimv Clear-REPL (,-
) 命令:
这只是为了清除屏幕(缓冲区)。
CL-USER> (swank:restart-server)
(来自 REPL 缓冲区):
服务器重新启动,但它仍然记得我的旧 defun
和其他定义。
CL-USER> (slime-restart-inferior-lisp)
和`(slimv-restart-inferior-lisp)
两者都未定义。
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...。
我怎样才能让 swank 忘记所有以前计算过的定义?
我希望它取消定义所有通过求值定义的宏、函数和变量(例如 ,b
求值缓冲区)。并让它恢复到与我重新启动 PC 并重新启动 swank 服务器时相同的状态。
我试过了:
slimv Clear-REPL (
,-
) 命令:这只是为了清除屏幕(缓冲区)。
CL-USER>
(swank:restart-server)
(来自 REPL 缓冲区):服务器重新启动,但它仍然记得我的旧
defun
和其他定义。CL-USER>
(slime-restart-inferior-lisp)
和`(slimv-restart-inferior-lisp)两者都未定义。
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...。