Einige Probleme mit PATHEinstellungen 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 .zprofileKonfiguration, 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 cabalerhalte ich Folgendes richtig:/Users/g/Library/Haskell/bin/cabal
Wenn ich Emacs starte und zu shellund anrufe which cabal, bekomme ich: /usr/bin/cabalwas mir Probleme bereitet, da es eine andere Version ist.
Wenn ich echo $PATHvom 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 PATHalles in der Welt das anders sein kann ...
Weiß jemand, wie man meine ZSHShell und Emacs dazu bringt, sich auf dasselbe zu einigen PATH? Ich vermute, das ist es, was steuert, woher cabalgeladen wird.
UPDATE : Ausführen echo $SHELLvon 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 emacsund 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/profiledann.
~/.zshenv, die beim Starten der Shell konsistent bezogen werden (interaktiv oder nicht interaktiv). Wenn die exec-path-from-shellFarben 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. nilexec-path-from-shell-initialize