正在运行emacs的方案



我是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消息。

有人知道如何在emacs中解决这个问题吗?

(此外,如何在*scheme*缓冲区中将主模式设置为REPL?)

谢谢。

尝试将scheme-program-name变量设置为Scheme解释器的路径。方案缓冲区的主要模式可能只是comint,除非你切换到像Geiser这样功能更强大的模式,否则你无法对此做太多事情——我建议你这样做。

将此行添加到.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加载文件。

我首先要说的是,我对编程、scheme和SICP非常陌生,但我正在努力完成课程并观看在线讲座
我在Ubuntu 12.10上运行emacs,我真的想让MIT方案在emacs中运行,而不是依赖Edwin
以上提示对我不起作用,但以下是起作用的分步说明:

  1. 从Ubuntu软件中心安装emacs 24(搜索"emacs"并安装它!)
  2. 打开终端(ALT+CTRL+t
  3. 转到您的主目录(cd ~
  4. 在gedit中打开隐藏文件.emacsgedit .emacs
  5. 在文件的第一行,键入冒号后面的确切内容:(require'xscheme)
  6. 将更改保存到.emacs
  7. 就是这样

现在,您可以在emacs中打开.scm文件,并使用类似C-xC-e的命令。

*由提供的指示http://alexott.net/en/writings/emacs-devenv/EmacsScheme.html#sec14

我的猜测是,这只是一个已知的问题,我仍然不知道如何解决这个问题(这超出了我目前的技能范围),但我得到了一个可能有帮助的宏:刚写完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

最新更新