我刚接触Scheme编程语言,但已经能够在Emacs中运行。我喜欢将文件在emacs的一个缓冲区中打开,并在另一个中打开Racket解释器,这样我就可以在编写时进行测试等操作。问题是,每次我想要测试某些东西时,都必须保存文件(不是什么大问题),然后使用(enter! "programname")在解释器中重新加载。
有没有办法让它在每次保存文件时自动重载?每次更改一些内容都手动重新加载文件非常繁琐,尤其是因为我还在学习Scheme,所以不断地来回修改。任何帮助都将不胜感激,谢谢!
我刚接触Scheme编程语言,但已经能够在Emacs中运行。我喜欢将文件在emacs的一个缓冲区中打开,并在另一个中打开Racket解释器,这样我就可以在编写时进行测试等操作。问题是,每次我想要测试某些东西时,都必须保存文件(不是什么大问题),然后使用(enter! "programname")在解释器中重新加载。
有没有办法让它在每次保存文件时自动重载?每次更改一些内容都手动重新加载文件非常繁琐,尤其是因为我还在学习Scheme,所以不断地来回修改。任何帮助都将不胜感激,谢谢!
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)))