Mac OSX、Emacs 24.2 和 nrepl.el 不工作
Posted
技术标签:
【中文标题】Mac OSX、Emacs 24.2 和 nrepl.el 不工作【英文标题】:Mac OSX, Emacs 24.2 and nrepl.el not working 【发布时间】:2012-10-25 22:25:53 【问题描述】:我正在使用nrepl.el、Emacs 24.2。我的 S.O 版本是 OS X Lion 10.7.5。
在通过lein(:~ $ lein repl)
启动REPL 会话后运行命令[M-x] nrepl
我可以连接到它,但是如果我尝试使用[M-x] nrepl-jack-in
,我会收到以下消息:
进程前哨错误:无法启动 nREPL 服务器:/bin/bash: lein:找不到命令
我使用instructions in the main site 安装了leiningen,并使用homebrew 和命令brew install leiningen --devel
重新安装了它,但两种方法都给我同样的错误。
将路径 /usr/loca/bin
添加到 emacs exec-path
列表或尝试配置 nrepl.el
变量 nrepl-lein-command
以指向我的 lein 安装的完整路径无济于事。
我的emacs配置可以在这里找到:https://github.com/khaoz/emacs-files
我做错了什么?
谢谢:)
【问题讨论】:
你是不是碰巧在 Mac 上盯着 emacs 而不是从命令行? 没有。我从聚光灯开始。 如果您打算使用 ac-nrepl,请提前警告一下 - 至少目前,当您使用 nrepl-jack-in 启动服务器时,它似乎有时会做一些奇怪的事情。也许他们现在已经解决了这个问题,如果您遇到问题,请回想一下。 【参考方案1】:对于那些使用 Mac 遇到这个问题的人:
lein 需要在 Emacs 看到的路径上。这可以通过从 bash 启动 Emacs 来完成
/Applications/Emacs.app/Contents/MacOS/Emacs project.clj
然后: M-x nrepl-jack-in
如果这解决了问题,您可以按照 these instructions 配置 emacs 以使用正确的路径
【讨论】:
是的。你的回答是对的。但是有没有办法从 Spotlight 或 Dock 启动 emacs 并让nrepl-jack-in
工作?
只是为了添加更多信息,而不是编辑系统文件/etc/profile
,创建或更改文件~/.profile
也可以,但它只会将更改应用于当前用户。
我在 Ubuntu 上也遇到了这个问题。谢谢亚瑟。
作为后续的 nrepl 模式正在被 cider-mode 取代。所以它现在是 M-x cider-jack-in 虽然这个答案应该同样适用于苹果酒【参考方案2】:
虽然@Arthur 是正确的,但解决您的问题的一个更简单的方法是安装exec-path-from-shell Emacs 扩展。它会自动且相当可靠地将您的 shell PATH
(和 MANPATH
)复制到 Emacs。这意味着无论您从何处启动 Emacs(包括 Spotlight),PATH
都是正确的。
【讨论】:
【参考方案3】:如果您在 Linux 中看到此错误,则在从菜单而不是 shell 运行 emacs 时,您可能需要在 ~/.bash_profile 而不是 ~/.bashrc 中设置 PATH。
【讨论】:
【参考方案4】:我必须这样做:
;; set the path as terminal path [http://lists.gnu.org/archive/html/help-gnu-emacs/2011-10/msg00237.html]
(setq explicit-bash-args (list "--login" "-i"))
;; fix the PATH variable for GUI [http://clojure-doc.org/articles/tutorials/emacs.html#osx]
(defun set-exec-path-from-shell-PATH ()
(let ((path-from-shell
(shell-command-to-string "$SHELL -i -l -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))
【讨论】:
以上是关于Mac OSX、Emacs 24.2 和 nrepl.el 不工作的主要内容,如果未能解决你的问题,请参考以下文章
Python3,Emacs(OSX)中的Elpy:未找到完成用户错误:无法完成
在 OSX 上的 GNU Emacs 中,激活 Mavericks 全屏模式的键绑定?