Emacs

Emacsにシェルの環境変数をexec-path-from-shellで設定する

更新日:

Macなどのシェルで使えるコマンドがEmacsのshellやeshellからは実行できないので不便だったので、それを使えるようにした時のメモです。

なお以下のサイトを参考にさせていただきました。

なぜEmacsのシェルからは実行できないのか?

EmacsをランチャーなどGUIから起動すると、EmacsはMacのシェルの環境変数を読み込まないようです。そのためMacのシェルではコマンド名だけで実行できるのコマンドもEmacsシェルではそれができないようです。ちなみに、MacのシェルからEmacsを起動すると環境変数は引き継がれるようです。

exec-path-from-shellはMacシェルの環境変数をEmacsに設定してくれるパッケージとのことなのでこれを導入します。

exec-path-from-shellのインストール

Melpaリポジトリにexec-path-from-shellパッケージが公開されているので、package.elでインストールできました。

Emacsの設定

使い方はEmacsの設定ファイルに以下のように書いてあげれば良いようです。

(when (memq window-system '(mac ns x))
  (exec-path-from-shell-initialize))

このようにすれば$MANPATHと$PATHをEmacsのexec-pathに設定してくれるとのこと。他の環境変数もコピーしたい場合はexec-path-from-shell-initializeを呼び出す前にexec-path-from-shell-variables変数をカスタマイズするか、exec-path-from-shell-copy-env関数を使えば良いとのことなので、例えば以下のような感じでしょう。

(when (memq window-system '(mac ns x))
  (exec-path-from-shell-copy-env "PYTHONPATH")
  (exec-path-from-shell-initialize))

-Emacs

Copyright© アナグマのモノローグ , 2024 All Rights Reserved Powered by STINGER.