我在osx上的emacs中运行bash,然后从另一个地方运行它的gem.app
bash中的:
which gem
/usr/bin/gem
在终端:
which gem
/opt/local/bin/gem
如何更改bash以匹配终端?
答案 0 :(得分:7)
我猜测在emacs bash shell中$PATH
是不同的。您可以通过在每个命令中运行此命令来检查它。
echo $PATH
这是用于查找命令的查找路径。您需要在其中包含/ opt / local / bin。
export PATH="/opt/local/bin:$PATH"
将该行放在~/.bashrc
文件中,并且在emacs中使用时应该使用bash(除非它是在不同的用户下运行)。
<强>更新强>
在评论中提到的Singletoned中,Emacs不会加载~/.bash_profile
或~/.profile
,但终端会加载。此文件可能已包含此PATH
定义,导致两者具有不同的行为。
我建议将PATH定义从bash_profile
文件移到bashrc
。但是,如果存在bashrc
,则终端不会加载bash_profile
。
解决方法是将其添加到~/.bash_profile
。
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
然后,您可以将其他所有内容移至bashrc
,bash_profile
将包含在{{1}}中。