Emacs 如何在Geiser中重新加载并重新输入修改过的球拍文件?

Emacs 如何在Geiser中重新加载并重新输入修改过的球拍文件?,emacs,scheme,racket,geiser,Emacs,Scheme,Racket,Geiser,我在Windows上的Emacs中使用Geiser作为Racket编程环境。我正在处理文件“d:/code/racket/foo.rkt”“d:/code/racket/foo.rkt”是一个模块(它以#lang racket开头) 我可以使用,在racket REPL输入“d:/code/racket/foo.rkt”进入模块,这样我就可以成功地执行文件中的函数 但是,如果我更改文件并重新运行,输入“d:/code/racket/foo.rkt”,则不会重新加载文件:当我在REPL中重新执行文

我在Windows上的Emacs中使用Geiser作为Racket编程环境。我正在处理文件
“d:/code/racket/foo.rkt”
“d:/code/racket/foo.rkt”
是一个模块(它以
#lang racket开头)

我可以使用
,在racket REPL输入“d:/code/racket/foo.rkt”
进入模块,这样我就可以成功地执行文件中的函数

但是,如果我更改文件并重新运行
,输入“d:/code/racket/foo.rkt”
,则不会重新加载文件:当我在REPL中重新执行文件中的函数时,不会反映对这些函数的更改

我已经尝试过用
C-C-k
重新编译我的缓冲区,在重新运行
之前,输入
,但这没有什么区别。 我还尝试过执行
,输入#f
退出
foo.rkt
模块,然后重新运行
,输入“d:/code/racket/foo.rkt”
;这仍然无法重新加载模块

我还注意到,运行
(输入!(文件“d:/code/racket/foo.rkt”)
而不是
,输入“d:/code/racket/foo.rkt”
会重新加载文件

这是Geiser的
,enter
表单的已知限制,还是我遗漏了一个技巧



(版本为:Geiser 0.5、Emacs 24.3.1、Racket 6.0、Windows 8)

我无法重现您的问题。它在我的机器(MacOSX)上工作。还有切换到repl和eval模块的命令(C-C-a),如果我只执行“eval definition and go”,它甚至会重新加载定义。在arch linux上,这种情况也发生在我身上。作为一种解决方法,使用,
球拍运行
将相应地重新运行模块。