Avoir des problèmes avec les PATHparamètres d'Emacs qui affectent mon environnement Haskell:
J'utilise ZSH, et quand je vais sur la ligne de commande et que j'appelle echo $PATH, il renvoie:/Users/g/Library/Haskell/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
Cela vient de la .zprofileconfiguration où j'ai:
# Set the list of directories that Zsh searches for programs.
path=(
~/Library/Haskell/bin
/usr/local/{bin,sbin}
$path
)
Ainsi, à partir de la ligne de commande, lorsque j'appelle which cabal, j'obtiens correctement:/Users/g/Library/Haskell/bin/cabal
Quand je démarre Emacs et que je vais sur shellet j'appelle which cabal, je reçois: /usr/bin/cabalce qui me pose problème car c'est une version différente.
Quand j'inspecte echo $PATHdepuis Emacs shell, je vois:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/g/Library/Haskell/bin:/usr/local/sbin
Je ne sais pas comment ça PATHpeut être différent ...
Tout le monde sait comment obtenir mon ZSHshell et Emacs d'accord sur le même sujet PATH? Je soupçonne que c'est ce qui contrôle d'où cabalvient le chargement.
MISE À JOUR : Exécution à echo $SHELLpartir des impressions Emacs:/bin/zsh
MISE À JOUR 2 : C'est sur OSX .
MISE À JOUR 3 : J'ai essayé d'utiliser le module exec-path-from-shell et cela ne fonctionne pas. J'ai toujours les mêmes problèmes, et comme effet secondaire, cela gâche les couleurs de mon thème de terminal :(
MISE À JOUR 4 : J'ai installé Emacs via brew install --cocoa --srgb emacset je lance emacs qui est lié de cette façon:
~ ❯❯❯ 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...rappelé dans la journée pour changer mon shell par défaut
~/.profileou /etc/profileensuite.
~/.zshenv, qui proviendront de manière cohérente quel que soit le shell démarré (interactif ou non interactif). Si exec-path-from-shellsalit vos couleurs du thème du terminal, vous pouvez définir exec-path-from-shell-argumentsà nilavant d' appeler exec-path-from-shell-initializepour vous assurer qu'il ne court pas les parties interactives de votre config zsh.