Emacsでの環境変数の設定に exec-path-from-shellを使うようにした

EmacsでPATHの設定が引き継がれない問題をエレガントに解決する - Qiita


この手のツールは何個か知っていたんですが、環境変数を一つ取り出す度に
シェルを起動しているというものが多くて、利用をためらっていたのですが、
exec-path-from-shellのコードを見たところ、複数指定してもまとめて
値を取ってくれるようなので、いいかなと思って切り替えました。

インストール

package.elで MELPAからインストールしてください。

設定

以下のような感じで良いです。PATHが含まれていると、exec-path, eshellの PATHの
設定もあわせて行なってくれます。

;; load environment variables
;; 追記 GEMに関する環境変数を設定すると rbenv経由で rubyがうまく使えなかったので削除
(let ((envs '("PATH" "VIRTUAL_ENV" "GOROOT" "GOPATH")))
  (exec-path-from-shell-copy-envs envs))

おわりに

shellの起動が含まれるので zshの設定にいろいろやっている人は若干気になる
かもしれないですが、Emacsを立ち上げっぱなしで、何回も起動することがないと
いう人はいいのではないかなと思いました.


この手のことで悩みたくなかったら shellから Emacsを起動して、
全部の環境変数を引き継ぐというのが良いかと思います。