そもそも環境変数って何
-
Windows
- システムやユーザーにかかるもの
-
macOS, Linux
- シェルにかかるもの
- シェルの子プロセスに引き継がれる
- 子プロセスで
export
した環境変数は親プロセスに持ち出されない
Linux(と、多分macOSも)で、GUI版Emacsに環境変数が引き継がれない
- 環境変数は
.bashrc
でexport
して設定している - つまり、環境変数は
bash
から起動した子プロセスにしか引き継がれない -
アイコンをポチーして起動したGUI版Emacsは
bash
から起動していないので、
bash
の環境変数が引き継がれないのは当然なのであるbash
からemacs
コマンドで起動したGUI版Emacsには環境変数が引き継がれる
bash
の環境変数をGUI版Emacsに持ち込むには、明示的に何かする必要がある
GUI版Emacsに環境変数を渡す
EmacsでPATHの設定が引き継がれない問題をエレガントに解決する
M-x package-list-packages RET
exec-path-from-shell
をインストールinit.el
で実行
;; 環境変数持ち込む
(when (require 'exec-path-from-shell nil t)
(exec-path-from-shell-initialize))