我该如何让EMACS的Lisp解释器使用Scheme LISP方言。我正在学习SICP书,对EMACS还很陌生(刚刚学会导航和文件访问命令)。
从Racket网站下载并安装scheme。
然后将变量scheme-program-name
配置为值mzscheme
最后运行命令run-scheme
:它将在*scheme*
缓冲区中运行mzscheme进程。
*scheme*
缓冲区使用inferior-scheme-mode
主模式,定义以下键:
C-c C-k scheme-compile-file
C-c C-l scheme-load-file
C-x C-e scheme-send-last-sexp
C-M-x scheme-send-definition
我发现在Emacs中使用M-x run-scheme最容易使用MIT方案 - 设置说明在这里:
http://praveen.kumar.in/2011/03/06/gnu-emacs-and-mit-scheme-on-mac-os-x/
你不能直接这样做。一般情况下,人们会生成一个 scheme 进程,然后直接与其通信。
请参阅 external-lisp 的文档以了解如何操作,以及 Emacs Wiki page for Scheme。
好的,我说错了,貌似有一些人已经在 Emacs Lisp 上编写了 Scheme 解释器(可以看上面的维基链接),但它们并不是完整功能的 Scheme。
你不能这样做。GNU Emacs LISP已经内置在GNU Emacs中,而且GNU Emacs的很多部分都是用GNU Emacs LISP编写的。如果你改变了内置的LISP解释器,那么Emacs就会出现大量错误。
GNU/MIT Scheme包括Edwin编辑器,它是一个类似于Emacs的编辑器,用Scheme编写。你可以尝试使用它来代替GNU Emacs。
另一个人建议启动一个Scheme进程并与之通信,这似乎是更好的想法。