6

情况:我在 Emacs 中使用 REPL 时输入了几个函数。问题:当我只是保存缓冲区时,会有像“;评估中止”这样的垃圾。我想要的:清楚地描述我在其最新版本中输入的所有功能。

我可以这样做吗?谢谢。

4

4 回答 4

5

我不明白。您是否在 REPL 中输入定义并期望稍后恢复它们?只需像使用任何其他语言一样保存源文件。使用 Cx 2 将您的 Emacs 窗口一分为二。在其中一个 Cx Cf foo.lisp 中打开一个源文件。使用 Cc Ck、Cc Cr 和朋友(参见 SLIME 菜单)来编译/评估 REPL 中源代码的区域。

于 2009-01-02T18:49:15.030 回答
5

我过去一直在寻找类似的东西,但一直找不到。你最好将所有定义写在一个单独的缓冲区中,并使用 SLIME 广泛的评估/编译功能(Cc Ck 加载整个文件,Cx Ce 评估最后一个表达式,Cc Cr 评估一个区域等),只直接进入REPL 你不想保存的东西。

于 2009-01-02T19:00:04.337 回答
4

嗯,C-x o或者C-x b去 SLIME REPL 缓冲区,然后C-x w或者C-x C-s将其保存到文件中。所有 SLIME/CL 的东西都是读者评论;您可以编写阅读器技巧来重新加载将提示视为注释的文件,或者您可以自己浏览文件以捕获要保存的部分。

于 2009-01-02T19:09:57.920 回答
3

我同意最好的工作流程方法是将代码写入单独的缓冲区并在其中进行评估,而不是在 repl 中输入函数。

假设您已经采用了 repl 方式,我猜想,C. Martin 保存 repl 日志并手动检查它的解决方案是您唯一的选择。

如果您将函数和变量输入到单独的包中,则可以通过包中的符号来帮助您决定要保留的内容。

例如查看在 cl-user 包中创建的所有符号:

(let ((p (find-package :cl-user)))
  (loop
     for s being the symbols in p
     when (eq p (symbol-package s))
     do (format t "~a~%" s)))
于 2009-01-03T16:12:31.507 回答