【问题标题】:Can't launch `lein` REPL in Emacs无法在 Emacs 中启动“lein”REPL
【发布时间】:2012-11-20 05:53:07
【问题描述】:

在 Emacs 中,当使用 clojure-mode 时,我应该能够使用 C-c C-z 启动 REPL。但是,每当我尝试时,我都会收到错误消息:

Searching for program: no such file or directory: lein

我在/usr/local/bin 中安装了lein(通过brew)并且/usr/local/bin 在我的PATH 中(甚至Emacs 都这么说,通过eval-expression (getenv "PATH"))。

我错过了什么?

【问题讨论】:

标签: emacs clojure leiningen


【解决方案1】:

啊! PATH 环境变量不是 emacs 搜索路径的全部和全部。还有“执行路径”。显然是mostly the same thing but not exactly

无论如何,添加:

(add-to-list 'exec-path "/usr/local/bin")

致我的.emacs.d/init.el(或.emacs,如果你是这样的话)为我清理了一切。上面链接的文档提出了一些更全面的建议,例如:

(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
(setq exec-path (append exec-path '("/usr/local/bin")))

我会先尝试(更简单的)add-to-list。但是YMMV。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题并开始调查问题所在。 我很快发现我的 exec-path 看起来像这样(简化示例):

    ("/usr/local/bin /bin /sbin").
    

    这是一个只有一个长字符串的列表,而不是一个单独的路径列表。 我的 env PATH 变量看起来完全一样。显然问题出在我的外壳上。

    我用的是鱼壳。它的 PATH 变量分隔符只是一个空格。 我使用的 exec-path-from-shell 包无法解析它。 我通过将其附加到我的 .emacs.d/init.el 来修复它:

    (setq exec-path (split-string (car exec-path)))
    

    更新: 最后它是一个过时的 exec-path-from-shell 包。使用版本 1.8。它适用于鱼(和 tcsh)。

    【讨论】:

      猜你喜欢
      • 2014-04-29
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 2013-06-19
      • 1970-01-01
      相关资源
      最近更新 更多