我的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 的路径不同问题:
比如:
import pandas as pd
spacemacs 中会报错,ImportError, 找不到这个 module. 但是同样的文件在 vim 中并没有问题,应该是 spacemacs 中 python 的相关问题。 请问大家是如何设置的,或者该如何解决?
在解决该问题后才发现在 spacemacs 启动时会有这样的提示信息:
You appear to be setting environment variables ("PATH" "MANPATH") in your .bashrc or .zshrc: those files are only read by interactive shells, so you should instead set environment variables in startup files like .profile, .bash_profile or .zshenv. Refer to your shell’s man page for more info. Customize ‘exec-path-from-s…
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了。