在emacs中通过M-x机制运行scmutils时出错

时间:2014-09-21 06:09:58

标签: emacs scheme

我已经在/ usr / local下的tar球中安装了scmutils。 然后我把它放在我的.emacs中:

(defun mechanics()   (互动)   (运行方案     " / usr / local / scmutils / mit-scheme / bin / scheme --library / usr / local / scmutils / mit-scheme / lib"   ))

主要是来自http://redsymbol.net/articles/using-gnu-emacs-with-scmutils/的指示。

但是我收到了一个错误:

/ usr / local / scmutils / mit-scheme / bin / scheme:1:/ usr / local / scmutils / mit-scheme / bin / scheme:语法错误:"("意外

使用代码2异常退出流程方案

我还尝试运行/ usr / local / bin / mechanics,这是一个最终运行的shell脚本:

$ / usr / local / scmutils / mit-scheme / bin $ / usr / local / scmutils / mit-scheme / bin / scheme --library / usr / local / scmutils / mit-scheme / lib --heap 12000 --band edwin-mechanics.com --edit

$ bash:/ usr / local / scmutils / mit-scheme / bin / scheme:无法执行二进制文件

我认为有些不兼容。这是"文件mit-scheme-x86-64":

mit-scheme-x86-64:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接(使用共享库),用于GNU / Linux 2.6.18,BuildID [sha1] = 0x88f52caf274bb8298a0f6b84fc34beb9d2094bc6 ,没有被剥夺

$ uname -r

3.11.0-26泛型

现在有人可以指导我如何调试吗?我在VMWare Fusion(Mac OS X)中运行Ubuntu。

2 个答案:

答案 0 :(得分:1)

问题的直接答案可能是VMWare无法识别二进制文件。

关于如何从Emacs运行scmutils的更普遍的问题,以下是Debian和macOS的步骤:

Debian:

首先请确保您拥有MIT计划。如果不是,请执行sudo apt install mit-scheme。然后,从the official scmutils page下载压缩包。提取它并sudo ./install.sh。另外,sudo cp mechanics.sh /usr/local/bin/mechanics,现在您可以通过执行mechanics(在终端中运行)或mechanics -edit(弹出Edwin)来从bash运行scmutils。如果还没有,还需要sudo apt install texlive。然后,通过执行show-expression打开Edwin(如果字体太小,请参见my answer to another question),然后依次依次mechanics -edit(show-expression '(sqrt (+ x y)))来确认M-z是否有效。它将弹出带有乳胶的窗口。

太好了,show-expression本来可以在Edwin上运行!要在emacs上运行它很容易。首先,打开emacs,评估(require 'xscheme)(这似乎改变了run-scheme命令的含义),然后执行(run-scheme "/usr/local/bin/mechanics"),您将在emac中看到一个scmutils REPL。此时,逃避(up 1 2 3)应该可以,尽管请注意,与Edwin不同,您需要C-x C-e才能评估'M-z在这里不起作用。最后,评估(show-expression '(sqrt (+ x y))),它将起作用。

Proof screenshot I just took right after writing this

macOS

这些指令取自该线程中的注释;我是一年前写的,不再使用macOS,所以现在无法确认,但是它们应该有效。

安装Xquartz和“ emacs for macOS”以及BasicTex。然后使用brew,安装mit-scheme和gv。最后,像上面的Debian部分一样,从压缩包中安装scmutils。确认show-expression可以在Edwin中使用,然后在emacs中,从Debian部分重复上述步骤,并确保使用setenv/Library/TeX/texbin添加到PATH中。然后,show-expression应该可以从emacs运行。

(同样,我现在还没有一台Macbook可以确认,但是大约一年前,当我使用与上述内容类似甚至不同的指示在本页中写下其他评论时,它开始起作用。) >

答案 1 :(得分:0)

我认为问题可能是VMWare Fusion。我在Mac OS X和原生ubuntu上成功运行了这个。