Making the PATH and other environment variables available in emacs

前端 未结 4 1320
误落风尘
误落风尘 2020-12-10 14:30

Working with emacs in OSX can some times be troubling.

I interchange with using the Terminal.app application and the emace shell both of these use bash, and

相关标签:
4条回答
  • 2020-12-10 14:44

    If your environment variables are being set in ~/.bash_profile, Create a file called ~/.emacs_bash and put in it the following:

    . ~/.bash_profile
    

    Don't forget the newline at the end of that line or it won't be executed.

    ~/.emacs_bash is loaded by emacs when you run bash from within it, such as when using M-x shell or shell-command so you can use it to set any environment variables you want available.

    0 讨论(0)
  • 2020-12-10 14:49

    Just install the awesome little package exec-path-from-shell and you're done! It will automatically set your emacs exec-path to be same as the PATH in your zsh/bash config.

    It will also allow you to copy the values of other shell variables like this:

    (exec-path-from-shell-copy-env "PYTHONPATH")
    
    0 讨论(0)
  • 2020-12-10 15:05

    As of 2019, exec-path-from-shell will only pass PATH to Emacs, If you want to pass all environments, you can try:

    • https://github.com/ersiner/osx-env-sync/
    0 讨论(0)
  • 2020-12-10 15:11

    Open Emacs.app from within Terminal.app (instead of from Finder):

    $ emacs
    

    This works for me using Emacs from Homebrew with Cocoa (brew install emacs --with-cocoa). It launches Emacs.app in a Cocoa GUI window (use emacs -nw to fallback to terminal UI). All the environment variables I have set in my bash environment appeared to be set in Emacs.

    I have not tried this with Emacsformacosx. I personally prefer Emacs from Homebrew as I heard Emacsformacosx is not compiled with certain extensions I use such as TLS and Imagemagick... you can compile Emacs with those extensions using brew install emacs --with-XXX.

    0 讨论(0)
提交回复
热议问题