NVM不会坚持使用ZSH默认别名(oh-my-zsh)

Thi*_*man 13 zsh nvm oh-my-zsh

我已经安装了NVM,然后我发现了哦-my-zsh并安装了它.它似乎有一个nvm插件,我在.zshrc中启用了它.

我也把它放在我的.zprofile中

export NVM_DIR="/Users/me/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
Run Code Online (Sandbox Code Playgroud)

现在我可以使用nvm,但每当我将别名默认设置为其他版本时,nvm会在下次打开shell时切换回来.

$ iojs -v
v1.2.0
$ which iojs
/Users/me/.nvm/versions/io.js/v1.2.0/bin/iojs
$ nvm use 1.5.1
Now using io.js v1.5.1
$ nvm alias default iojs v1.5.1
default -> iojs (-> iojs-v1.5.1)
$ which iojs
/Users/me/.nvm/versions/io.js/v1.5.1/bin/iojs
Run Code Online (Sandbox Code Playgroud)

然后打开一个新的shell:

$ which iojs
/Users/me/.nvm/versions/io.js/v1.2.0/bin/iojs
Run Code Online (Sandbox Code Playgroud)

我的旧bash可能会以某种方式搞砸了吗?我正在使用OSX,但我认为它没有什么区别.

---------编辑------按要求提供更多输出

?  ~  nvm version
iojs-v1.2.0
?  ~  ls $NVM_DIR/alias
default
?  ~  cat $NVM_DIR/alias/default
iojs
?  ~  nvm alias iojs
iojs -> iojs-v1.5 (-> iojs-v1.5.1) (default)
?  ~  nvm alias $(cat $NVM_DIR/alias/default)
iojs -> iojs-v1.5 (-> iojs-v1.5.1) (default)
Run Code Online (Sandbox Code Playgroud)

我刚刚发现为什么它会恢复到1.2.0我认为.在安装oh-my-zsh的过程中,似乎从我的Bash shell中获取了活动路径并将其复制到.zshrc文件中,包括当时的活动nvm路径:

/Users/me/.nvm/versions/io.js/v1.2.0/bin
Run Code Online (Sandbox Code Playgroud)

但是从PATH中删除它之后,现在我的zsh在启动一个新的shell之后找不到任何Node二进制文件.所以问题仍然是我,为什么不记得NVM设置?我仍然可以像以前一样在活动shell中设置它,它只是不坚持.

我现在认为我的oh-my-zsh安装可能存在根本性的错误.我在zshrc中启用了git插件,但命令"gst"不是有效的别名.

plugins =(git,gitflow,nvm,brew,tmux)

?  ~  gst
zsh: command not found: gst
Run Code Online (Sandbox Code Playgroud)

jk2*_*k2K 22

添加到下面的结尾 .zshrc

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
Run Code Online (Sandbox Code Playgroud)

请注意,必须在最后,我不知道为什么

  • 为我工作.虽然为Ubuntu我用`源〜/ .nvm/nvm.sh` (5认同)

Thi*_*man 7

我现在有工作.重新安装了oh-my-zsh.

我不确定发生了什么变化.我似乎需要保持启用nvm插件才能工作.

没有插件,我尝试将nvm启动命令放在.zprofile中

export NVM_DIR="/Users/me/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
Run Code Online (Sandbox Code Playgroud)

虽然在创建新shell时加载了文件,但它似乎没有正确启用NVM.

另外我注意到如果我在.zshrc中的zsh插件配置中出错,则没有错误,插件根本不起作用.所以这是我要小心的事情.例如,我偶然使用逗号,然后插件在没有警告的情况下中断:

plugins=(git, gitflow, nvm)
Run Code Online (Sandbox Code Playgroud)


Tim*_*rts 5

我正在使用 OSX 10.11.6 以及 Hyper 和 Oh My Zsh。我必须卸载nvm通过安装的homebrew,通过curl命令重新安装它,然后将此行添加到最底部才能使其正常工作。我确信我的所有插件/设置/废话都是如此,但这就是它对我有用的原因:

source "$NVM_DIR/nvm.sh"
Run Code Online (Sandbox Code Playgroud)

~/.zshrc在我的文件的最后