Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

Mac や Ubuntu で Emacs を GUI で立ち上げると PATH の設定が引き継がれません

そのため Emacs から外部プログラムを呼び出す際にうまくいかないという問題が発生します

今までそれを シェルと Emacsの PATHを共有する - Life is very short を参考に .zshrc 側で設定をしていました

しかし,Emacs の設定に .zshrc から書き込むというのは気持ち悪かったので変えたいと思っていました

今回は Emacs で完結する設定方法を 2 つ見つけたので紹介します

init-loader.el と package.el を導入して快適 Emacs ライフ - Qiita [キータ]

この設定がしてあることを前提に話していきます

exec-path-from-shell を使う

exec-path-from-shell

これを使います

package.el の設定をしているならそこから簡単にインストール出来ます

そして

21-exec-path-from-shell.el
(exec-path-from-shell-initialize)

と書けば PATH が引き継がれます

簡単ですね

自分で書く

適当なファイルに以下の設定をします

11-path.el
(defun set-exec-path-from-shell-PATH ()
  "Set up Emacs' `exec-path' and PATH environment variable to match that used by the user's shell.

This is particularly useful under Mac OSX, where GUI apps are not started from a shell."
  (interactive)
  (let ((path-from-shell (replace-regexp-in-string "[ \t\n]*$" "" (shell-command-to-string "$SHELL --login -i -c 'echo $PATH'"))))
    (setenv "PATH" path-from-shell)
    (setq exec-path (split-string path-from-shell path-separator))))

(set-exec-path-from-shell-PATH)

まあ最初の方の文言は何でもいいのですが,これだけで設定ができます

まとめ

年末emacs設定大掃除をして、これは捨てられないと思った設定書いてく - $shibayu36->blog;

emacsを使っていると一度はPATHなどの設定で死ぬ思いをする気がします

とあるように,私もこの前すごく悩みました

しかし Emacs のみで PATH の設定を完結できることが分かってよかったです

catatsuy
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした