PATHHaskell環境に影響を与えるEmacsの設定に関する問題がある:
ZSHを使用しecho $PATHていますが、コマンドラインに移動してを呼び出すと、次のように返されます。/Users/g/Library/Haskell/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
これは.zprofile私が持っている構成から来ています:
# Set the list of directories that Zsh searches for programs.
path=(
  ~/Library/Haskell/bin
  /usr/local/{bin,sbin}
  $path
)
だから、コマンドラインから、を呼び出すとwhich cabal、正しく取得されます:/Users/g/Library/Haskell/bin/cabal
Emacsを起動してandにアクセスするshellとwhich cabal、次のように/usr/bin/cabalなります。バージョンが異なるため、問題が発生しています。
echo $PATHEmacsから検査するとshell、次のように表示されます。/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/g/Library/Haskell/bin:/usr/local/sbin
いったいどうPATH違うのか分からない...
誰も私のZSHシェルとEmacsが同じことに同意する方法を知っていますPATHか?それがどこcabalからロードされるかを制御しているのではないかと思う。
更新:echo $SHELLEmacsの出力から実行:/bin/zsh
更新2:これはOSX上にあります。
更新3:exec-path-from-shellモジュールを使用しようとしましたが、機能しません。私はまだ同じ問題を抱えていますが、副作用として、端末のテーマの色が台無しになります:(
更新4:Emacsをインストールしbrew install --cocoa --srgb emacs、この方法でリンクされたemacsを実行しました:
~ ❯❯❯ which emacs
/usr/local/bin/emacs
~ ❯❯❯ l /usr/local/bin/emacs
lrwxr-xr-x  1 g  admin    30B 29 Jan 18:34 /usr/local/bin/emacs -> ../Cellar/emacs/24.4/bin/emacs
~ ❯❯❯ l /usr/local/Cellar/emacs/24.4/bin/emacs
-r-xr-xr-x  1 g  admin    87B 29 Jan 18:34 /usr/local/Cellar/emacs/24.4/bin/emacs
          chsh...私のデフォルトのシェルを変更するために戻って一日中
                ~/.profileか、/etc/profileそれから。
                ~/.zshenv。これは、シェルが開始されても一貫してソースされます(インタラクティブと非インタラクティブ)。exec-path-from-shell端末のテーマの色が台無しになっている場合は、呼び出す前にに設定exec-path-from-shell-argumentsして、zsh構成のインタラクティブな部分が実行されていないことを確認できます。nilexec-path-from-shell-initialize