我是LISP的新手。
我试图从emacs(在Windows上运行的版本23)中调用scheme解释器。我通过告诉emacs到M-x load-library
然后在迷你缓冲区中的提示符下输入xscheme
来加载xscheme库。加载了库,然后我发出了M-x run-scheme
命令。 (我意识到所有这些加载都可以在启动时从.emacs完成,但我现在并不关心。)
到目前为止一直很好 - *scheme*
缓冲区已经创建,现在我希望我能够与计划解释器交谈。
但是,当我尝试评估*scheme*
缓冲区中的内容时(例如(define shoe-size 14)
),我会在迷你缓冲区中收到此Output file descriptor of scheme is closed
条消息。
有人知道如何解决这个问题吗?
(另外,如何将主模式设置为*scheme*
缓冲区中的REPL?)
谢谢。
答案 0 :(得分:16)
尝试将scheme-program-name
变量设置为Scheme解释器的路径。方案缓冲区的主要模式可能只是comint
,除非你切换到像Geiser那样更强大的东西,否则你无法做很多事情 - 我建议你这样做。
答案 1 :(得分:9)
将此行添加到.emacs
文件中:
(setq scheme-program-name "gsi")
(将"gsi"
替换为您的Scheme解释器的名称。)
然后,您可以使用M-x run-scheme
启动解释程序。您可以使用C-x C-e
(在点之前评估sexp)或使用C-M-x
评估您现在正在进行的性别评估。您还可以使用C-c C-l
加载文件。
答案 2 :(得分:5)
我首先要说的是我对编程,计划和SICP都很陌生,但我正在努力完成课程并观看在线讲座。
我在Ubuntu 12.10上运行 emacs ,我真的想让麻省理工学院的计划在emacs中工作,而不是依赖于Edwin。
上面的提示对我来说不起作用,但这是有效的逐步说明:
cd ~
).emacs
)gedit .emacs
.emacs
您现在可以在emacs中打开.scm
个文件,并使用C-x
C-e
等命令。
*方向由http://alexott.net/en/writings/emacs-devenv/EmacsScheme.html#sec14
提供答案 3 :(得分: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-y
和RET
。
有一个变体(同样,在写完s-exp之后放置):C-spc, C-M-b, M-w, C-c Cz, C-y
和RET