Problemi con le PATHimpostazioni di Emacs che influenzano il mio ambiente Haskell:
Sto usando ZSH e quando vado dalla riga di comando e chiamo echo $PATH, restituisce:/Users/g/Library/Haskell/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
Questo deriva dalla .zprofileconfigurazione in cui ho:
# Set the list of directories that Zsh searches for programs.
path=(
~/Library/Haskell/bin
/usr/local/{bin,sbin}
$path
)
Quindi, dalla riga di comando, quando chiamo which cabal, ottengo correttamente:/Users/g/Library/Haskell/bin/cabal
Quando avvio Emacs e vado su shelle chiamo which cabal, ottengo: il /usr/bin/cabalche mi sta causando problemi poiché è una versione diversa.
Quando ispeziono echo $PATHda Emacs shell, vedo:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/g/Library/Haskell/bin:/usr/local/sbin
Non ho idea di come diavolo PATHpossa essere diverso ...
Qualcuno sa come fare in modo che la mia ZSHshell ed Emacs siano d'accordo sullo stesso PATH? Ho il sospetto che sia ciò che controlla da dove cabalviene caricato.
AGGIORNAMENTO : in esecuzione echo $SHELLdalle stampe Emacs:/bin/zsh
AGGIORNAMENTO 2 : Questo è su OSX .
AGGIORNAMENTO 3 : Ho provato a utilizzare il modulo exec-path-from-shell e non funziona. Ho ancora gli stessi problemi e, come effetto collaterale, rovina i colori del mio tema terminale :(
AGGIORNAMENTO 4 : Ho installato Emacs tramite brew install --cocoa --srgb emacsed eseguo emacs collegato in questo modo:
~ ❯❯❯ 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...in giornata per cambiare la mia shell predefinita
~/.profileo /etc/profilepoi.
~/.zshenv, che verranno fornite in modo coerente a prescindere dalla shell avviata (interattiva o non interattiva). Se exec-path-from-shellè rovinare i vostri colori del tema del terminale, è possibile impostare exec-path-from-shell-argumentsper nilprima di chiamare exec-path-from-shell-initializeper assicurarsi che non è in esecuzione le parti interattive del vostro config zsh.