无法在Emacs(Mac)中运行REPL sml-mode

时间:2017-01-02 09:03:25

标签: macos emacs smlnj

系统:El Capitan v10.11.15

安装了Emacs和smlnj

which smlnj给了我:/ usr / local / bin / sml

调整了我的.bash_profile : export PATH="$PATH:/usr/local/bin/sml"

.emacs

(setenv "PATH" (concat "/usr/local/bin/sml:" (getenv "PATH")))

(setq exec-path (cons "/usr/local/bin/sml" exec-path))

现在当我在sml文件上执行C-c C-s时,它给了我:

  

搜索程序:没有这样的文件或目录!

任何人都可以帮助我?

2 个答案:

答案 0 :(得分:1)

假设您使用自制程序或类似程序来安装emacs和sml。

需要注意的一些事项

  • 您的PATH环境应该是目录路径列表,而不是文件路径,即

    export PATH = $ PATH:/ usr / local / bin

你的.bash_profile中的

。请注意,PATH设置应该使用bash_profile而不是.bashrc。区别在于bash_profile在登录时获取一次,而bashrc是为每个交互式shell提供的,因此最好保持bashrc尽可能小。但是,通过路径设置,还有另一个“问题”。如果您打算从启动板运行emacs,因为启动板不会提供您的bash_profile OR bashrc文件。

有多种方法可以将环境设置转换为luanchpad配置,但PATH设置的最简单解决方案是在全局环境中添加/ usr / local / bin。最简单的方法是在/ etc / paths文件中的一行上添加/ usr / local / bin(您需要使用sudo编辑该文件)。

  • 有一个不同的有用的emacs ELPA包称为exec-path-from-shell,这使得设置exec路径的东西变得容易。建议安装该软件包。在melpa存档中还有一些其他有用的OSX特定软件包,您可能会发现它们对于改进Emacs和OSX集成非常有用。

答案 1 :(得分:0)

2017年1月2日星期一16:44:47 GMT

[无法添加评论,因为只有50个声望点。]

提供的信息中遗漏了一些细节:

  1. $ PATH和exec-path需要目录 - 而不是sml二进制文件的文件名。 export PATH=$PATH:/usr/local/bin 最好把它放在.bashrc中(所以它在新启动的shell中可用)

  2. 什么版本的emacs

  3. 什么版本的smlnj
  4. 您安装了哪些相关的sml包?
  5. 打开文件时,sml相关模式是否处于活动状态?
  6. 文件是否具有激活sml模式的正确扩展名?
  7. 什么是C-c C-s? [我已经安装了tuareg,C-c C-s必然会运行utop]
  8. 值得注意的是 - which smlnj应生成smlnj not found。 (which sml将生成/usr/local/bin/sml