在 OSX 中使用 emacs 有时会很麻烦。
我与使用 Terminal.app 应用程序和 emace shell交换,这两个都使用 bash,并且两者似乎都可以工作,但是我确实有一个问题,即两者的环境设置不同。
我正在从emacs运行 OSX Lion 和 emacs 24 的全新安装,并希望 emacs shell 中的环境变量与 osx 下的 Terminal.app 中的环境变量相同。我该如何解决?
在 OSX 中使用 emacs 有时会很麻烦。
我与使用 Terminal.app 应用程序和 emace shell交换,这两个都使用 bash,并且两者似乎都可以工作,但是我确实有一个问题,即两者的环境设置不同。
我正在从emacs运行 OSX Lion 和 emacs 24 的全新安装,并希望 emacs shell 中的环境变量与 osx 下的 Terminal.app 中的环境变量相同。我该如何解决?
只需安装很棒的小包exec-path-from-shell就可以了!它会自动将您的 emacs 设置exec-path
为与PATH
您的zsh/bash
配置中的相同。
它还允许您复制其他 shell 变量的值,如下所示:
(exec-path-from-shell-copy-env "PYTHONPATH")
如果您的环境变量是在 ~/.bash_profile 中设置的,请创建一个名为 ~/.emacs_bash 的文件并将以下内容放入其中:
. ~/.bash_profile
不要忘记该行末尾的换行符,否则它将不会被执行。
~/.emacs_bash 在您从其中运行 bash 时由 emacs 加载,例如在使用 Mx shell 或 shell-command 时,因此您可以使用它来设置所需的任何环境变量。
截至2019年,exec-path-from-shell
只会传给PATH
Emacs,如果想传所有环境,可以试试:
从 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
.