Emacs Scheme Racket自动重新加载文件

5

我刚接触Scheme编程语言,但已经能够在Emacs中运行。我喜欢将文件在emacs的一个缓冲区中打开,并在另一个中打开Racket解释器,这样我就可以在编写时进行测试等操作。问题是,每次我想要测试某些东西时,都必须保存文件(不是什么大问题),然后使用(enter! "programname")在解释器中重新加载。

有没有办法让它在每次保存文件时自动重载?每次更改一些内容都手动重新加载文件非常繁琐,尤其是因为我还在学习Scheme,所以不断地来回修改。任何帮助都将不胜感激,谢谢!

2个回答

3

Geiser和/或Quack是Emacs的非常好的模式,使用DrRacket也是一个不错的选择。

但是更加字面的回答你的问题是:

你可以将以下内容添加到你的.emacs文件中,并将其绑定到F5键,以获得类似于DrRacket的Run命令的粗略近似:

(defun run-roughly-like-dr-racket ()
  (interactive)
  (let ((w (selected-window)))
    (set-buffer-modified-p t)           ;force save buffer so that enter! ...
    (save-buffer)                       ;...will re-evaluate

    (other-window -1)
    (run-scheme)
    (select-window w)

    (comint-send-string (get-buffer-process "*scheme*")
                        (format "(enter! \"%s\")\n" (buffer-file-name)))

    (pop-to-buffer (get-buffer-process "*scheme*") t)
    (select-window w)))

@molbdnilo :p 我喜欢你的答案并点赞了它,还发表了我的观点。 - Greg Hendershott
哈哈,有人删除了我提到@molbdnilo为“那个失败者”的评论。干得好,SO。 - molbdnilo
@molbdnilo 你不应该自我贬低哦? o_O - Greg Hendershott

3
最有用的选项可能是Geiser
它可以让你在敲击键盘的同时编译当前文件,或仅对光标所在位置的定义进行评估。它有很好的文档,是我认为最接近Scheme版本的SLIME。如果您不想使用Emacs,DrRacket也是一个非常优秀的工作环境。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接