Windows系统 Emacs运行SML REPL控制台报错 "Searching for program: no such file or directory, sml"


首先保证在smlnj官网,下载并安装了SMLNJ,然后再检查Emacs是否安装sml-mode(需要注意的是Emacs的sml-mode只是一种Emacs的编辑模式,并不包含SML的编译器之类的东西)

M-x list-packages查看sml-mode,如图sml-mode显示已安装

image-20220507104851822

新建SML文件,C-c C-s命令输入 sml 之后却报错"Searching for program: no such file or directory, sml"

网上比较多的解决方案是针对Linux或Mac的,主要是说没有将SML的bin目录添加到环境变量,说的很有道理,但是具体操作不太相同

由于我使用的是win10系统,在环境变量中检查完发现压根没有SML的东西,那就没错了,就是SMLNJ的环境变量出了问题。

将SMLNJ文件下的bin目录添加到path即可,该目录根据安装位置而定,一般在

C:\Program Files(x86)\SMLNJ

如果找不到这样的文件夹,有可能是SMLNJ安装有问题,可以重新安装或者直接复制别人安装好的文件夹。

如图,添加至环境变量,重启Emacs,再使用C-c C-s命令输入 sml ,就能进入SML REPL命令行了

image-20220507114436175