2012-03-07 50 views
12

我是LISP的新手。从emacs运行计划

我试图从emacs(在windows上运行版本23)调用方案解释器。我通过告诉emacs到M-x load-library然后在minibuffer的提示符下输入xscheme来加载xscheme库。装载了这个库,然后我发出了M-x run-scheme命令。 (我意识到所有这些加载可以在启动时从.emacs完成,但我目前不担心这一点。)

到目前为止这么好 - *scheme*缓冲区已​​创建,现在我希望我可以和计划口译员交谈。

但是,当我尝试在*scheme*缓冲区(例如(define shoe-size 14))中评估某些内容时,我在此小缓冲区中收到了此消息Output file descriptor of scheme is closed

有没有人知道如何解决这个在emacs?

(同样,一个人如何设置在*scheme*缓冲区的主要模式为REPL?)

谢谢。

回答

14

尝试将scheme-program-name变量设置为Scheme解释器的路径。计划缓冲区的主要模式可能只是comint,除非您切换到更有能力的东西,例如Geiser,否则您无法做太多的工作 - 我建议您这样做。

+0

感谢您对Geizer尖 - 我刚安装了它和REPL模式似乎是为我工作。我会稍微尝试一下,稍后会回来查看答案。 – dave 2012-03-07 16:05:36

+0

你好,我安装了Geizer包,并且能够与guile('M-x run-guile')进行交互。但是,如果我加载一个扩展名为.scm的文件(它在Scheme Guile主模式下的一个缓冲区中打开它),并尝试编译它('C-c C-k'),我得到这个buffer_的消息_No Geiser REPL。 (作为一个新手,我可能会有点捉襟见肘:一方面需要设置emacs环境来学习scheme,clisp和emacslisp,另一方面需要知道至少一些emacslisp能够设置在其他环境中)。提前感谢任何能够对此发表评论的人。 d。 – dave 2012-03-08 11:45:55

+1

@dave,我遇到过这个问题,通过使用guile 2.0.x修复,geiser不支持guile 1.x. – 2012-08-12 14:26:18

6

此行添加到您的.emacs文件:

(setq scheme-program-name "gsi") 

(更换"gsi"与Scheme解释的名称。)

您可以再与M-x run-scheme启动解释。您可以使用C-x C-e(评估点前的sexp)或C-M-x评估您现在正在使用的sexp来评估代码段。您也可以使用C-c C-l加载文件。

+0

谢谢你的建议! – dave 2012-03-08 12:50:58

4

我会先说我对编程,方案和SICP​​非常陌生,但我正在努力学习课程并观看在线讲座。
我在Ubuntu 12.10上运行emacs,我真的想让麻省理工学院的计划在emacs中工作,而不是依靠Edwin。
上面的提示并没有为我工作,但这里是一个没有工作的一步一步的指示:

  1. 从Ubuntu软件中心安装的Emacs 24(搜索“Emacs的”并安装它!)
  2. 打开一个终端(ALT + CTRL
  3. 转到你的home目录(cd ~
  4. 打开隐藏文件.emacs在gedit中(gedit .emacs
  5. 在第一输入冒号后面的内容:(要求'xscheme')
  6. 保存更改到.emacs
  7. 就是这样!

您现在可以在emacs中打开.scm文件,并使用像C-xC-e这样的命令。的http://alexott.net/en/writings/emacs-devenv/EmacsScheme.html#sec14

0

My guess is that it's just a known issue我仍然不知道如何整理了这一点

*方向礼貌(这是从我目前的技能),但我得到了一个宏,或许可以帮助:刚写入S-EXP之后,你可以做Cc-Cz (它称为geiser REPL),然后C-spc, C-M-b, M-w, C-x-o, C-yRET

有变化(相同,只是写的S-EXP后放置):C-spc, C-M-b, M-w, C-c Cz, C-yRET