勉強日記

チラ裏

GUI版Emacsに環境変数が引き継がれなかった話

そもそも環境変数って何

  • Windows
    • システムやユーザーにかかるもの
  • macOS, Linux
    • シェルにかかるもの
    • シェルの子プロセスに引き継がれる
    • 子プロセスでexportした環境変数親プロセスに持ち出されない

Linux(と、多分macOSも)で、GUIEmacs環境変数が引き継がれない

  • 環境変数.bashrcexportして設定している
  • つまり、環境変数bashから起動した子プロセスにしか引き継がれない
  • アイコンをポチーして起動したGUIEmacsbashから起動していないので、
    bash環境変数が引き継がれないのは当然なのである
  • bash環境変数GUIEmacsに持ち込むには、明示的に何かする必要がある

GUIEmacs環境変数を渡す

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

  1. M-x package-list-packages RET
  2. exec-path-from-shellをインストール
  3. init.elで実行
;; 環境変数持ち込む
(when (require 'exec-path-from-shell nil t)
  (exec-path-from-shell-initialize))