我遵循了这个tutorial并成功安装了Emacs,STk,Quack。
问题是如何像在Racket中一样加载我的程序?
在Racket中,我可以在上方窗口中编辑我的代码,键入一些代码,保存并运行。然后下面的窗口将自动加载我刚写的代码。然后我可以玩它。
我尝试过M-x run-scheme。它只会让我进入类型mit方案。然后它说不存在这样的文件或目录。然后我尝试了F5(该网站的作者写了一个.emacs文件让我按F5)。然后STk打开了。我可以在STk中加载我的方案文件。但它会让我回到麻省理工学院计划与edwin。
我想在Racket(Write / REPL)中拥有相同的功能。但关键运动更具灵活性。在Racket中你没有C-f C-n C-a ......等等。
有人能教我怎么做吗?
答案 0 :(得分:29)
我确实只是在我的Macbook上设置它。既然你没有指定你所使用的系统,我希望你能使用一些Unix风格......我真的不熟悉STk,但这可能有助于你解决你遇到的任何问题,这听起来真的很棒类似于我遇到的问题。
如果您安装了一个Scheme实现(我正在使用MIT Scheme,编辑添加它也适用于Racket,使用mzscheme)它可能带有一个名为“scheme”的符号链接 - 我认为这就是Emacs所寻求的。
如果没有(MIT Scheme似乎不在OS X上),您可以在Emacs类型M-x customize-group
中编辑您的Emacs配置,然后键入scheme
。向下滚动一下,找到Scheme program name
字段。将其更改为您的Scheme实施命令,例如mit-scheme
或mzscheme
。您还可以在PATH中创建指向正确二进制文件的符号链接:
sudo ln -s /Applications/mit-scheme.app/Contents/Resources/mit-scheme
/usr/local/bin/scheme
对于MIT Scheme,您还需要设置MITSCHEME-LIBRARY-PATH变量,因此将其添加到.emacs
。
(setenv "MITSCHEME_LIBRARY_PATH"
"/Applications/mit-scheme.app/Contents/Resources")
然后你应该能够用M-x run-scheme
启动一个劣质的Scheme缓冲区。并使用C-x C-e
将代码传递给REPL,它会在点之前计算表达式。
如果这不起作用(它不适合我),您可能需要确保Emacs用于执行shell命令的路径包括scheme
符号链接或包含实现的二进制文件的任何目录。通过一些实验,我通过将其添加到我的.emacs
文件来修复此问题:
Emacs is ignoring my path when it runs a compile command
对于参考文献,我用来设置它的另一个SO问题:
答案 1 :(得分:2)
GNU的64位下载现在将.app命名为“MIT:GNU Scheme.app”。我尝试了@ spacemanaki的指示,但我一直得到:
bash-3.2$ export MITSCHEME_LIBRARY_PATH=/Applications/MIT:GNU\ Scheme.app/Contents/Resources
bash-3.2$ scheme
scheme: can't find a readable default for option --band.
searched for file all.com in these directories:
/Applications/MIT
/Applications/MIT:GNU Scheme.app/Contents/Resources/GNU Scheme.app/Contents/Resources
最终我意识到分号充当路径分隔符。所以请确保重命名:
mv MIT:GNU\ Scheme.app/ mit-scheme.app
然后上面的说明可以正常工作 - 虽然你可能不得不使用Finder进行重命名,因为当我在shell上执行它时,我的Resources文件夹消失了。
答案 2 :(得分:0)
如果您使用的是Mac,我建议使用Homebrew
使用简单命令brew install mit-scheme
安装mit方案。找到你的~/.emacs file
,如果它不存在则创建一个,将其附加到文件的末尾:
(setq scheme-program-name "your/mit-scheme/path")
使用which mit-scheme
命令查找安装mit方案的位置。
以我的MacOS X为例:
(seq scheme-program-name "/usr/local/bin/mit-scheme")
保存并退出。
然后重新启动您的Emacs并输入M+x
,您就可以了。