在emacs中使PATH和其他环境变量可用

时间:2013-05-21 18:18:38

标签: macos emacs terminal environment-variables

在OSX中使用emacs有时会令人不安。

我使用Terminal.app应用程序和emace shell 进行交换,这两个都使用bash,两者似乎都有效,但是我确实遇到了环境设置不同的问题。

我正在运行OSX Lion的干净安装,以及来自emacs的emacs 24,并希望emacs shell中的环境变量与osx下的Terminal.app相同。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:15)

只需安装令人敬畏的小包exec-path-from-shell即可完成!它会自动将您的emacs exec-path设置为与PATH配置中的zsh/bash相同。

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

(exec-path-from-shell-copy-env "PYTHONPATH")

答案 1 :(得分:3)

如果你的环境变量在〜/ .bash_profile中设置,请创建一个名为〜/ .emacs_bash的文件并输入以下内容:

. ~/.bash_profile

不要忘记该行末尾的换行符,否则将无法执行。

从内部运行bash时,emacs会加载

〜/ .emacs_bash,例如使用M-x shell或shell-command时,可以使用它来设置任何想要的环境变量。

答案 2 :(得分: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编译带有这些扩展的Emacs。

答案 3 :(得分:0)

从2019年开始,public EnumsDTO.Color? Color { get; set; } public EnumsDTO.Type? Type { get; set; } public int? NumberOfSeats { get; set; } public decimal? Price { get; set; } public int? MaxKilometres { get; set; } public decimal? Addition { get; set; } public int? ModelID { get; set; } public string? License_Plate { get; set; } public EnumsDTO.Fuel? Fueltype { get; set; } public bool ReservationStatus { get; set; } 仅将exec-path-from-shell传递给Emacs。如果要传递所有环境,可以尝试: