Problemy z PATH
ustawieniami Emacsa, które wpływają na moje środowisko Haskell:
Korzystam z ZSH, a kiedy idę do linii poleceń i dzwonię echo $PATH
, zwraca:/Users/g/Library/Haskell/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
Pochodzi z .zprofile
konfiguracji, w której mam:
# Set the list of directories that Zsh searches for programs.
path=(
~/Library/Haskell/bin
/usr/local/{bin,sbin}
$path
)
Tak więc z linii poleceń, kiedy dzwonię which cabal
, poprawnie otrzymuję:/Users/g/Library/Haskell/bin/cabal
Kiedy uruchamiam Emacsa i przechodzę do shell
i dzwonię which cabal
, dostaję: /usr/bin/cabal
co powoduje problem, ponieważ jest to inna wersja.
Kiedy sprawdzam echo $PATH
z Emacsa shell
, widzę:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/g/Library/Haskell/bin:/usr/local/sbin
Nie mam pojęcia, jak, u licha, PATH
może być inaczej ...
Czy ktoś wie, jak sprawić, by mój ZSH
shell i Emacs zgodzili się na to samo PATH
? Podejrzewam, że to właśnie kontroluje, skąd cabal
jest ładowany.
AKTUALIZACJA : Uruchamianie echo $SHELL
z wydruków Emacsa:/bin/zsh
AKTUALIZACJA 2 : To jest na OSX .
AKTUALIZACJA 3 : Próbowałem użyć modułu exec-path-from-shell i nie działa. Nadal mam te same problemy, a efektem ubocznym jest popsucie kolorów terminalu:
AKTUALIZACJA 4 : Zainstalowałem Emacsa przez brew install --cocoa --srgb emacs
i uruchamiam emacsa, który jest połączony w ten sposób:
~ ❯❯❯ 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...
w ciągu dnia, aby zmienić domyślną powłokę
~/.profile
lub /etc/profile
później.
~/.zshenv
, które będą konsekwentnie pozyskiwane, jednak powłoka zostanie uruchomiona (interaktywna vs. nieinteraktywna). Jeśli exec-path-from-shell
jest brudząc się twój terminal kolorów motywu, można ustawić exec-path-from-shell-arguments
, aby nil
przed skontaktowaniem exec-path-from-shell-initialize
się upewnić, że nie jest uruchomiony interaktywnych części swojego zsh config.