2015-03-16 15 views
8

Miałem już zainstalowany NVM, a następnie odkryłem, że och-my-zsh i zainstalowałem to. Wygląda na to, że ma wtyczkę nvm, którą włączam w .zshrc.NVM nie przylega do domyślnego aliasu z ZSH (oh-my-zsh)

także kładę to w moim .zprofile

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

Teraz mogę używać NVM, ale ilekroć ustawić domyślny alias do innej wersji, NVM przełącza się z powrotem następnym razem mogę otworzyć powłokę.

$ 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 

Następnie po otwarciu nowej powłoki:

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

Czy mój stary bash zainstalować jakiś bałagan rzeczy? Jestem na OSX btw ale myślę, że to nie robi różnicy.

--------- edit ------ Więcej wyprowadzane jako wezwanego

➜ ~ 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) 

Właśnie dowiedziałem się, dlaczego to powrót do 1.2.0 myślę. Podczas instalacji oh-my-zsh wydaje się mieć aktywną ścieżkę z moim basha i kopiowane do pliku .zshrc tym aktywnej ścieżce NVM w czasie:

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

Ale po usunięciu że z PATH , teraz mój zsh nie może znaleźć żadnego pliku binarnego węzła po uruchomieniu nowej powłoki. Więc wciąż pytanie brzmi: dlaczego nie jest zapamiętane ustawienie NVM? Wciąż mogę ustawić ją w aktywnej powłoce jak poprzednio, po prostu się nie klei.

Teraz myślę, że może być coś zasadniczo nie tak z moją instalacją oh-my-zsh. Mam włączoną wtyczkę git na przykład w zshrc, ale polecenie "gst" nie jest prawidłowym aliasem.

plugins = (git, gitflow, NVM, parzenie, tmux)

➜ ~ gst 
zsh: command not found: gst 
+1

„ilekroć ustawić domyślny alias do innej wersji "Czy mógłbyś wyjaśnić szczegółowo, co to oznacza? (Jaką komendę uruchomiłeś?) – 4ae1e1

+0

Ok Myślałem, że jest jasne dla użytkowników nvm, ale dodałem polecenia –

+0

Proszę dołączyć dane wyjściowe 'nvm version',' ls $ NVM_DIR/alias', 'cat $ NVM_DIR/alias/default ',' alias nvm iojs' i 'alias nvm $ (cat $ NVM_DIR/alias/default)' po otwarciu nowej powłoki. – 4ae1e1

Odpowiedz

6

mam to działa teraz. Ponownie zainstalowany oh-my-zsh.

Nie jestem pewien, co się zmieniło. Wygląda na to, że muszę włączyć wtyczkę nvm, aby działała.

Bez wtyczki starałem oddanie komendę startową NVM w .zprofile

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

Chociaż plik zostanie załadowany na stworzenie nowej powłoki, nie wydaje się, aby umożliwić NVM prawidłowo.

Zauważyłem również, że jeśli popełnię błąd w konfiguracji wtyczki zsh w .zshrc, nie ma błędu, a wtyczki po prostu nie będą działać. Więc to jest coś, na co należy uważać.Na przykład kiedyś przecinkami poprzez wypadku, a następnie plugins złamać bez ostrzeżenia:

plugins=(git, gitflow, nvm) 
0

ten pracował dla mnie, kiedy dodany do ~/.zprofile

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

Dodaj poniżej do końca .zshrc

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

Należy pamiętać, że musi być na końcu, nie wiem dlaczego

+2

pracował dla mnie. Chociaż dla ubuntu użyłem 'source ~/.nvm/nvm.sh' – notgiorgi

1

Używam OS X 10.11.6 z Hyper i Oh My Zsh. Musiałem odinstalować nvm, który został zainstalowany przez homebrew, zainstalować go ponownie za pomocą polecenia curl, a następnie dodać tę linię do samego dołu, aby działała poprawnie. Jestem pewien, że to coś z całą moją plugins/Ustawienia/bla ale to co sprawiło, że praca dla mnie:

source "$NVM_DIR/nvm.sh" 

na samym końcu mojego pliku ~/.zshrc