【问题标题】:Clojure's Emacs CIDER repl - environment variables from .profile are missingClojure 的 Emacs CIDER repl - .profile 中的环境变量丢失
【发布时间】:2014-10-06 00:27:45
【问题描述】:

我不知道这是一般 Emacs 问题还是特定于 clojure/cider 的问题。无论如何:我如何传递在 shell 中工作并且当前在我的 ~/.profile 中配置的环境变量。现在,如果我在我的项目中使用 repl,这工作得很好:

(System/getenv "FOO")
-> "BAR

但是当我在我的项目中加入 cider-jack-in 时,CIDER repl 看不到变量:

(System/getenv "FOO")
-> nil

我正在使用 Emacs 版本 24.4.50 的 GUI (Cocoa) 版本。苹果酒版本是 cider-20140718.747。

【问题讨论】:

  • GUI 应用将看不到 OSX 上 shell 配置中的设置。我认为this answer 是您所需要的(launchd.conf,而不是 .profile,因为您的 GUI 应用程序不是由加载 .profile 的 shell 启动的)。
  • 我对将这个问题标记为上述问题的副本感到犹豫不决? @auramo,你怎么看?
  • 答案就在眼前。这个问题并没有具体提到 GUI 应用程序。如果可以,我会称这只是该问题的一个特例。

标签: macos cocoa emacs clojure cider


【解决方案1】:

正如 noisesmith 指出的那样,您可以在系统范围内设置环境变量,这样您就不需要让 emacs 使用您的 .profile 设置,或者您可以从命令行启动 emacs,以便它从.profile 在这个答案中:https://stackoverflow.com/a/13243093/90801 从命令行启动它很好,因为您可以使用不同的设置启动多个 emacs。或从脚本启动它们:

FOO="BAR" /Applications/Emacs.app/Contents/MacOS/Emacs project.clj

将使用值为“BAR”的 foo 启动 emacs,而不更改系统范围内的任何内容。

【讨论】:

  • 一次性环境变量设置,还有m-x setenv
  • 是的,只要记住在开始苹果酒之前运行它
  • 我想我会决定从命令行启动 emacs 以使用 CIDER。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2015-10-04
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多