如何使用Emacs运行方案?

时间:2010-11-23 19:21:08

标签: emacs scheme racket

我遵循了这个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 ......等等。

有人能教我怎么做吗?

3 个答案:

答案 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-schememzscheme。您还可以在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问题:

How do I get a scheme interpreter working inside Emacs?

答案 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,您就可以了。