Problemi con le PATH
impostazioni 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 .zprofile
configurazione 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 shell
e chiamo which cabal
, ottengo: il /usr/bin/cabal
che mi sta causando problemi poiché è una versione diversa.
Quando ispeziono echo $PATH
da 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 PATH
possa essere diverso ...
Qualcuno sa come fare in modo che la mia ZSH
shell ed Emacs siano d'accordo sullo stesso PATH
? Ho il sospetto che sia ciò che controlla da dove cabal
viene caricato.
AGGIORNAMENTO : in esecuzione echo $SHELL
dalle 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 emacs
ed 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
~/.profile
o /etc/profile
poi.
~/.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-arguments
per nil
prima di chiamare exec-path-from-shell-initialize
per assicurarsi che non è in esecuzione le parti interattive del vostro config zsh.