【问题标题】:tuareg mode emacs ocaml not found未找到图阿雷格模式 emacs ocaml
【发布时间】:2013-12-27 13:34:37
【问题描述】:

我在 mac os x 10.9 上运行 emacs 24.3。我已经为 ocaml 编程安装了 tuareg 模式,但无法使用命令 C-c C-b 进行编译。在按下相同的按钮时,迷你缓冲区会询问我“要运行的 Caml 顶层:ocaml”。当我按下回车键时,它显示错误“正在搜索程序:没有这样的文件或目录,ocaml”。我错过了什么?

【问题讨论】:

    标签: macos emacs ocaml tuareg


    【解决方案1】:

    您需要设置 PATH 环境变量和 Emacs 的 exec-path 变量以更正值。一种可能性是使用类似的东西(在你的~/.emacs):

    (defun set-exec-path-from-shell-PATH ()
      (let ((path-from-shell (shell-command-to-string "$SHELL -c 'echo $PATH'")))
        (setenv "PATH" path-from-shell)
        (setq exec-path (split-string path-from-shell path-separator))))
    (when window-system (set-exec-path-from-shell-PATH))
    

    从 shell 和两个变量中正确获取 PATH。这样做的一个好处是您将只在一个地方设置PATH - 在您的 shell 初始化脚本中。

    【讨论】:

    • 所以我理解了在我的 emacs shell 中设置路径变量的部分,但是当我安装 ocaml 时,我的 shell 初始化脚本中没有设置路径。为什么我要重新设置。请原谅我的无知。
    • 当 Emacs 启动时,它是从“初始”进程启动的,没有您的 PATH 自定义 - 您可以通过执行 M-x getenv PATHC-h v exec-path 来检查这一点(在执行我的 sn- p 代码)并将值与echo $PATH 的实际 shell 输出进行比较 ...
    • 这似乎有效,但现在我偶然发现了另一个问题。我现在得到的错误是:“致命错误:无法打开隐式模块“Pervasives”致命错误:异常 Misc.Fatal_error”。显然 ocaml 仅在我的 bash shell 中以管理员权限运行。如何从 emacs 中实现它!
    • 我认为,OCaml 安装有问题 - 你是如何安装的?您还可以查看以下问题:stackoverflow.com/questions/15712618/…
    • 我从官网下载了 ocaml-4.01.dmg 并从那里安装。
    【解决方案2】:

    所以我发现了这种很酷的模式,它可以将 shell 变量自动加载到 mac 用户的 emacs 环境中。非常方便:

    https://github.com/purcell/exec-path-from-shell

    只需安装它并更新您的 .emacs 文件即可。

    【讨论】:

    • 帮助了我,但是从 ELPA 安装它时,我不得不将 (add-hook 'after-init-hook 'exec-path-from-shell-initialize) 添加到我的初始化文件中,而不是文档所说的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    相关资源
    最近更新 更多