Einige Probleme mit PATH
Einstellungen auf Emacs, die sich auf meine Haskell-Umgebung auswirken:
Ich verwende ZSH. Wenn ich zur Befehlszeile gehe und aufrufe, wird Folgendes zurückgegeben echo $PATH
:/Users/g/Library/Haskell/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
Dies kommt von der .zprofile
Konfiguration, wo ich habe:
# Set the list of directories that Zsh searches for programs.
path=(
~/Library/Haskell/bin
/usr/local/{bin,sbin}
$path
)
Wenn ich also über die Befehlszeile anrufe, which cabal
erhalte ich Folgendes richtig:/Users/g/Library/Haskell/bin/cabal
Wenn ich Emacs starte und zu shell
und anrufe which cabal
, bekomme ich: /usr/bin/cabal
was mir Probleme bereitet, da es eine andere Version ist.
Wenn ich echo $PATH
vom Emacs aus inspiziere shell
, sehe ich:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/g/Library/Haskell/bin:/usr/local/sbin
Ich habe keine Ahnung, wie um PATH
alles in der Welt das anders sein kann ...
Weiß jemand, wie man meine ZSH
Shell und Emacs dazu bringt, sich auf dasselbe zu einigen PATH
? Ich vermute, das ist es, was steuert, woher cabal
geladen wird.
UPDATE : Ausführen echo $SHELL
von Emacs-Ausdrucken:/bin/zsh
UPDATE 2 : Dies ist unter OSX .
UPDATE 3 : Ich habe versucht, das Exec-Path-From-Shell- Modul zu verwenden, aber es funktioniert nicht. Ich habe immer noch die gleichen Probleme und als Nebeneffekt bringt es meine Terminal-Designfarben durcheinander :(
UPDATE 4 : Ich habe Emacs über installiert brew install --cocoa --srgb emacs
und starte Emacs, das folgendermaßen verknüpft ist:
~ ❯❯❯ 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
oder /etc/profile
dann.
~/.zshenv
, die beim Starten der Shell konsistent bezogen werden (interaktiv oder nicht interaktiv). Wenn die exec-path-from-shell
Farben Ihres Terminaldesigns durcheinander geraten, können Sie vor dem Aufruf die Option einstellen exec-path-from-shell-arguments
, um sicherzustellen, dass die interaktiven Teile Ihrer zsh-Konfiguration nicht ausgeführt werden. nil
exec-path-from-shell-initialize