我在 Ubuntu Raring 上使用 SLIME/SBCL/Emacs 和 Quicklisp。我有下面定义的功能。我想添加到我的 Lisp 库的顶部 .lisp 文件中,即每个其他文件都依赖的文件,这样我就可以在我用库编写的所有函数中使用它,只需添加(update-swank)
到一个函数而不是添加下面的整个函数到使用它的每段代码。
(defun update-swank ()
"Grabs SWANK connections and tells it to handle requests.
Call this every loop in the main loop of your program"
(continuable
(let ((connection (or swank::*emacs-connection*
(swank::default-connection))))
(when connection
(swank::handle-requests connection t)))))
当我这样做并重新启动 emacs 时,在进程中加载我的库,因为我的asdf:load-op
.sbclrc 文件中有
READ error during COMPILE-FILE:
;
; Package SWANK does not exist.
在劣质 lisp 中,并且 SLIME 卡住轮询,因为库没有加载,因为在我当前的设置中,SLIME/SBCL 不知道update-swank
在加载 .lisp 文件时是什么 swank 。我尝试添加(in-package :swank)
到其中的文件update-swank
,但得到了
The name "SWANK" does not designate any package.
当我的库在 emacs 启动时加载时,在劣质 lisp 中。
我搜索了 CEPL(我从https://github.com/cbaggers/cepl/blob/master/cepl-utils.lisp获得了 update-swank ),然后复制了 CEPL 的创建者所做的并将函数导出到我的包中.lisp。我确保添加了函数,就像他在 cepl-utils 的第 20 行所做的那样https://github.com/cbaggers/cepl/blob/master/cepl-utils.lisp ......我顺便加载了我的库和
(asdf:operate 'asdf:load-op :cl-test)
(in-package #:cl-test)
在我的 .sbclrc 文件中,我假设它是在我的.emacs
文件在 emacs 启动时加载粘液之前加载的(我(slime)
在我的.emacs
文件中有)...我刚刚测试了从我的adsf:load-op
和运行 之后的粘液/swank 和什么我一直在尝试在这里没有错误地工作....但是我希望能够在 emacs 启动时自动加载我的库,而我通常这样做的方式是将...添加到我的....如果有人可以告诉我另一种在加载 swank 后在 emacs 启动时自动加载我的库的方法可以回答这个问题吗?in-package
.sbclrc
asdf:load-op
asdf:load-op
.sbclrc