关闭Emacs重启SLIME后需重装包?如何让REPL自动加载依赖?
解决SLIME启动时自动加载Quicklisp依赖与自定义包的问题
1. 让Quicklisp随SBCL自动初始化
SBCL启动时会读取~/.sbclrc配置文件,将Quicklisp的初始化代码添加进去,就能自动加载Quicklisp:
(load "~/quicklisp/setup.lisp")
注意路径要和你实际安装Quicklisp的位置一致,默认是用户根目录下的quicklisp文件夹。
2. 自动加载自定义包frosty及其依赖
如果frosty是本地开发包(未提交到Quicklisp官方索引),先执行一次以下代码(或直接加到~/.sbclrc)让Quicklisp识别本地项目:
(ql:register-local-projects)
之后在~/.sbclrc中添加加载指令,启动时自动拉取并加载所有依赖:
(ql:quickload :frosty)
3. 自动编译frosty包
若希望每次启动都使用最新编译的版本,可在加载前强制编译:
(asdf:compile-system :frosty) (ql:quickload :frosty)
如果需要强制重新加载所有依赖(包括修改过的依赖包),可以用:
(ql:quickload :frosty :force t)
4. (可选)SLIME REPL自动切换到frosty包
在Emacs配置文件(~/.emacs或~/.emacs.d/init.el)中添加钩子,连接SLIME后自动切换到目标包:
(add-hook 'slime-connected-hook (lambda () (slime-eval `(in-package :frosty))))
内容的提问来源于stack exchange,提问作者Vinn
相关产品推荐
相关产品推荐

