10

在 OSX 中使用 emacs 有时会很麻烦。

我与使用 Terminal.app 应用程序和 emace shell交换,这两个都使用 bash,并且两者似乎都可以工作,但是我确实有一个问题,即两者的环境设置不同。

我正在从emacs运行 OSX Lion 和 emacs 24 的全新安装,并希望 emacs shell 中的环境变量与 osx 下的 Terminal.app 中的环境变量相同。我该如何解决?

4

4 回答 4

16

只需安装很棒的小包exec-path-from-shell就可以了!它会自动将您的 emacs 设置exec-path为与PATH您的zsh/bash配置中的相同。

它还允许您复制其他 shell 变量的值,如下所示:

(exec-path-from-shell-copy-env "PYTHONPATH")
于 2013-05-21T19:34:39.453 回答
3

如果您的环境变量是在 ~/.bash_profile 中设置的,请创建一个名为 ~/.emacs_bash 的文件并将以下内容放入其中:

. ~/.bash_profile

不要忘记该行末尾的换行符,否则它将不会被执行。

~/.emacs_bash 在您从其中运行 bash 时由 emacs 加载,例如在使用 Mx shell 或 shell-command 时,因此您可以使用它来设置所需的任何环境变量。

于 2013-05-21T19:33:13.493 回答
0

截至2019年,exec-path-from-shell只会传给PATHEmacs,如果想传所有环境,可以试试:

于 2019-11-10T12:30:08.920 回答
0

从 Terminal.app(而不是 Finder)中打开 Emacs.app:

$ emacs

这对我使用 Homebrew 中的 Emacs 和 Cocoa ( brew install emacs --with-cocoa) 有效。它在 Cocoa GUI 窗口中启动 Emacs.app(用于emacs -nw回退到终端 UI)。我在 bash 环境中设置的所有环境变量似乎都是在 Emacs 中设置的。

我没有用 Emacsformacosx 试过这个。我个人更喜欢 Homebrew 的 Emacs,因为我听说 Emacsformacosx 没有使用我使用的某些扩展进行编译,例如 TLS 和 Imagemagick ......您可以使用brew install emacs --with-XXX.

于 2016-06-09T18:23:21.200 回答