spacemacs自带shell读取环境变量路径出现错误

我的shell默认适用的zsh配置适用的prezto,环境变量路径都是放在.zshrc目录中,在iTerm中长久适用没用问题 但是发现在spacemacs安装的shell部分变量路径没有添加到$PATH

在iTerm下eecho $PATH

/Users/xiongxi/dotfiles/.nvm/versions/node/v7.10.0/bin:/usr/local/var/jen/shims:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/xiongxi/.rvm/bin

在spacemacs的shell下`echo $PATH’

/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands 

好像设置的jenv pyenv nvm路径都都丢失了,有同学遇到怎么解决的?

我的.zshrc文件设置如下

source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
source ~/.iterm2_shell_integration.`basename $SHELL`
export JENV_ROOT=/usr/local/var/jen
if which jenv > /dev/null; then eval "$(jenv init -)"; fi

export PYENV_ROOT=/usr/local/var/pyenv
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

export NVM_DIR=${ZDOTDIR}/.nvm
. $(brew --prefix nvm)/nvm.sh

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

在 Emacs 里用 shell 的时候尽量不要用这种形式。

以前遇到过一个类似的 spacemacs 中 path 与 shell 的路径不同问题:

1 个赞

果然把环境变量的设置移到.zshenv 就能被spacemacs shell识别

我在spacemacs中使用exec-path-from-shell这个package的时候使用的shell 参数是-l,就是用login shell,这样就不会读取zshrc文件(为了加快启动速度。。你zsh没配置多少的话无所谓),但是也不读取zshenv文件。login shell文件读取的是zprofile,所以我就将zshenv copy了一份成为zprofile. 然后我之前好像发现默认的shell好像有些问题,然后就将SPC '绑定成ansi term了。