我在Windows上的Emacs中使用Geiser作为Racket编程环境。我正在处理文件"d:/code/racket/foo.rkt"
。 "d:/code/racket/foo.rkt"
是一个模块(以#lang racket)
开头。
我可以在Racket REPL上使用,enter "d:/code/racket/foo.rkt"
进入模块,这样我就可以成功执行文件中的功能。
但是,如果我更改文件并重新运行,enter "d:/code/racket/foo.rkt"
,则不会重新加载文件:当我在REPL中重新执行文件时,不会反映对文件中函数的更改。
在重新运行C-c C-k
之前,我尝试使用,enter
重新编译缓冲区,但这没有任何区别。
我还尝试执行,enter #f
退出foo.rkt
模块,然后重新运行,enter "d:/code/racket/foo.rkt"
;这仍然没有重新加载模块。
我还发现,运行(enter! (file "d:/code/racket/foo.rkt"))
代替,enter "d:/code/racket/foo.rkt"
会重新加载文件。
这是Geiser ,enter
形式的已知限制,还是我错过了一招?
(版本为:Geiser 0.5,Emacs 24.3.1,Racket 6.0,Windows 8)