NVM не придерживается псевдонима по умолчанию с ZSH (oh-my-zsh)

у меня уже был установлен NVM, затем я обнаружил oh-my-zsh и установил это. Кажется, у него есть плагин nvm ,который я включил.zshrc.

также я положил это в моем .zprofile

export NVM_DIR="/Users/me/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

теперь я могу использовать nvm, но всякий раз, когда я устанавливаю псевдоним по умолчанию для другой версии, nvm переключается обратно при следующем открытии оболочки.

$ 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

затем после открытия новой оболочке:

$ which iojs
/Users/me/.nvm/versions/io.js/v1.2.0/bin/iojs

может ли мой старый 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)

Я только что узнал, почему он возвращается к 1.2.0, я думаю. Во время установки oh-my-zsh он, похоже, взял активный путь из моей оболочки Bash и скопировал его .файл zshrc, включая активный путь nvm в то время:

/Users/me/.nvm/versions/io.js/v1.2.0/bin

но после удаления этого из пути, теперь мой zsh не может найти двоичный файл узла после запуска новой оболочки. Так тихо ... вопрос в том, почему я не помню настройку NVM? Я все еще могу установить его в активную оболочку, как раньше, он просто не прилипает.

теперь я думаю, что может быть что-то принципиально неправильно с моей установкой oh-my-zsh. У меня есть плагин git включен, например, в zshrc, но команда "gst" не является допустимым псевдонимом.

Плагины=(git, gitflow, nvm, brew, tmux)

➜  ~  gst
zsh: command not found: gst

4 ответов


добавить ниже в конце .zshrc

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

обратите внимание, что это должно быть в конце, я не знаю, почему


теперь он работает. Переустановил oh-my-zsh.

Я не уверен, что изменилось. Кажется, мне нужно сохранить плагин nvm для его работы.

без плагина я попытался ввести команду запуска nvm .zprofile

export NVM_DIR="/Users/me/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

хотя файл загружен при создании новой оболочки, он, похоже, не включил NVM должным образом.

также я заметил, что если я сделаю ошибку в конфигурации плагина zsh .zshrc, ошибки нет а плагины просто не будут работать. Так что с этим надо быть осторожнее. Например, я случайно использовал запятые, а затем Плагины ломаются без предупреждения:

plugins=(git, gitflow, nvm)

Я использую OSX 10.11.6 с Hyper и Oh My Zsh. Мне пришлось удалить nvm Это было установлено через homebrew, переустановите его через команду curl, а затем добавьте эту строку в самое дно, чтобы она работала правильно. Я уверен, что это что-то со всеми моими плагинами/настройками/бла, но это то, что заставило его работать для меня:

source "$NVM_DIR/nvm.sh"

в самом конце моя


это работало для меня, когда я добавил ~/.zprofile

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh