Tendo alguns problemas com as PATH
configurações no Emacs que estão afetando meu ambiente Haskell:
Estou usando o ZSH e, quando vou para a linha de comando e ligo echo $PATH
, ele retorna:/Users/g/Library/Haskell/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
Isso vem da .zprofile
configuração em que tenho:
# Set the list of directories that Zsh searches for programs.
path=(
~/Library/Haskell/bin
/usr/local/{bin,sbin}
$path
)
Então, na linha de comando, quando ligo which cabal
, recebo corretamente:/Users/g/Library/Haskell/bin/cabal
Quando inicio o Emacs e vou para o shell
e chamo which cabal
, recebo: o /usr/bin/cabal
que está me causando um problema, pois é uma versão diferente.
Quando inspeciono echo $PATH
no Emacs shell
, vejo:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/g/Library/Haskell/bin:/usr/local/sbin
Eu não tenho idéia de como na Terra isso PATH
pode ser diferente ...
Alguém sabe como fazer com que meu ZSH
shell e o Emacs concordem com o mesmo PATH
? Eu suspeito que é isso que está controlando de onde cabal
está sendo carregado.
ATUALIZAÇÃO : Correndo echo $SHELL
do Emacs imprime:/bin/zsh
ATUALIZAÇÃO 2 : Isso está no OSX .
ATUALIZAÇÃO 3 : Tentei usar o módulo exec-path-from-shell e ele não funciona. Ainda tenho os mesmos problemas e, como efeito colateral, atrapalha minhas cores de tema do terminal :(
ATUALIZAÇÃO 4 : Instalei o Emacs via brew install --cocoa --srgb emacs
e executei o emacs vinculado desta maneira:
~ ❯❯❯ 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...
de volta no dia de mudar o meu shell default
~/.profile
ou /etc/profile
então.
~/.zshenv
, que serão originadas de forma consistente, no entanto, o shell é iniciado (interativo versus não interativo). Se exec-path-from-shell
é bagunçar suas cores do tema do terminal, você pode definir exec-path-from-shell-arguments
para nil
antes de chamar exec-path-from-shell-initialize
para ter certeza que não está funcionando as partes interativas de sua configuração zsh.