1
我在我的2個Mac上使用Git,每個Mac都有不同的可執行文件路徑(一個是自制軟件,一個是make/install)。我也通過Tramp模式使用Git。根據Emacs中的環境,動態「magit」Git可執行文件lisp
所以基本上我想這一點,在僞代碼:
if home mac:
(setq magit-git-executable "~/Projects/homebrew/bin/git")
else if work mac:
(setq magit-git-executable "/usr/local/git/bin/git")
else [if in tramp mode]:
(setq magit-git-executable "git") ;; Linux can work this out so don't need a full path
那麼這一切的最後一個子句正常工作,如果Emacs中會尊重我的setenv("PATH")
配置,但它似乎沒有。
有沒有一種很好的方法可以在Elisp中解決這個問題,這樣我的emacs.d
可以在機器之間保持可移植性?如果失敗了,是否可以在我通過tramp編輯文件時設置變量?
假設我把它作爲「混帳」,我如何讓Emacs尊重我的道路?我有完整路徑的唯一原因是因爲它似乎不喜歡我的setenv(「路徑」)的東西。 – 2010-11-08 19:27:42
PATH環境變量隻影響通過shell啓動的程序。當程序直接啓動時(例如通過'call-process'或'process-file'),它就是被搜索的'exec-path'列表。 'magit'擴展通過'process-file'啓動git,所以它是你需要設置的'exec-path'。 – 2010-11-08 19:38:15
''exec-path''就是答案。非常感謝! – 2010-11-09 09:15:29