是否可以在Emacs中调试Maxima CAS Lisp代码?
一直使用如此多的印刷文件是一件痛苦的事。
答案 0 :(得分:2)
多年来我一直采用两种方法。
使用Maxima核心文件运行slime。有关如何操作的信息,请参阅此电子邮件
http://article.gmane.org/gmane.comp.mathematics.maxima.general/36029
运行Maxima,但在初始化文件中添加代码以创建swank服务器,然后使用slime-connect
连接到该服务器。
http://article.gmane.org/gmane.comp.mathematics.maxima.general/44533
列表中的某个人(Leo Butler,也许?)然后建议采用比该电子邮件更简洁的方法。不幸的是,我的搜索功能让我失望了,我无法找到对话,所以我现在只需粘贴~/.maxima/swank.lisp
中的内容:
(eval-when (:compile-toplevel :load-toplevel :execute)
(defvar *swank-asd*
(car (directory #P"~/.emacs.d/elpa/slime*/swank.asd")))
(when *swank-asd*
(load *swank-asd*)
(require :swank)))
(when (find-package :swank)
(swank:create-server :port 56789 :dont-close t)
;; Hack to make "q" not kill Maxima outright. Only applies from console
(in-package :maxima)
(defvar *real-continue-function* (symbol-function 'continue))
(setf (symbol-function 'continue)
(lambda (&rest args)
(let ((swank::*sldb-quit-restart* 'maxima::macsyma-quit))
(apply *real-continue-function* args))))
(format t "Swank loaded successfully"))
首先尝试从我的Emacs目录加载swank(我使用Elpa安装slime)。在成功的时候,或者如果由于某种原因加载了swank,它会创建一个服务器,然后做出漂亮的事情,让q
密钥不会真烦人" hack在第二封电子邮件中描述。