在tmux会话中使用nvmpipe理多个Node.js版本

简短的问题

我怎样才能让nvm使用tmux ?

path问题

MarkHu在回答中推测,问题与PATH有关。 下面是进入tmux之前和tmux之后bash中的path比较。 (我用换行符replace每个path,以便于比较。)

Bash和tmux PATH比较

现在我很好奇:

  1. 为什么在path中复制/usr/local/sbin/Users/matthew/bin
  2. 为什么/Users/matthew/.nvm/v0.11.5/bin/usr/local/sbin/Users/matthew/bin一起移动到path的末尾?

背景

我正在运行OS X 10.8.4山狮。 我使用以下方法安装了tmux v1.8和Node.js :

 brew install tmux brew install node 

然后我决定我想要pipe理多个节点版本,所以我安装了nvm :

 curl https://raw.github.com/creationix/nvm/master/install.sh | sh 

如果我不在一个tmux会话, nvm似乎正常工作。 当我启动一个tmux会话时,它会发现由Homebrew安装的Node.js ,而不是使用nvm版本。 有关如何让nvm使用tmux的任何想法?

 $ which node /Users/matthew/.nvm/v0.11.5/bin/node $ tmux $ which node /usr/local/bin/node $ nvm use v0.11.5 Now using node v0.11.5 $ which node /usr/local/bin/node 

检查您的$ PATH环境var之前和之后。

把它设置在〜/ .bash_profile和〜/ .bashrc之间是有区别的,这取决于你如何configuration它们。

此外,如果您认为可能需要设置其他与node.js相关的variables,则可能需要阅读https://unix.stackexchange.com/questions/15453/using-environment-variables-in-tmux-conf-files

我只是运行:

 nvm deactivate nvm use xx 

这似乎工作。 您可以根据您正在处理的项目编写所需的版本。