2015-10-09 51 views
5

Jestem na NixOS 15 i nix-shell v1.10. Używam teraz Zsh jako mojej głównej powłoki i chciałbym użyć go w połączeniu z Oh-My-Zsh w powłoce nix, a także gdy pracuję w środowiskach programistycznych zbudowanych przez wyrażenie Nix.Skonfiguruj nix-shell tak, aby używał powłoki innej niż Bash?

Jeśli to pomoże, oto jeden z środowiskach Nix mam utworzonych dla projektu Rails:

with import <nixpkgs> {}; { 
    cannyFreeRadicalEnv = stdenv.mkDerivation rec { 
    name = "canny-free-radical-env"; 
    version = "0.1"; 
    src = ./.; 
    buildInputs = [ 
     stdenv 
     ruby_2_2_2 
     bundler_HEAD 
     zlib 
     postgresql94 
     sqlite 
    ]; 
    }; 
} 

** Edycja **

uruchamiając komendę ten sposób nie wskazuje w wierszu polecenia CLI, że jestem w powłoce nix. Czy istnieje prosty sposób na wykrycie tego, dzięki czemu mogę szybko zapisać to w skrypcie w moim zshrc?

Odpowiedz

4

Jest PR #545 otworzył niedawno który zajmie się tą

3

Dziękuję użytkownikom kanału IRC#nixos za szybką odpowiedź.

Polecenie to zrobić to:

nix-shell . --command "zsh"

+0

Wyjeżdżam to nieakceptowane w przypadku gdy ktoś ma lepszą odpowiedź. Być może jest jakiś sposób, aby to zrobić, aby zastąpić rzeczywistą bazę powłoki nix-shell? Myślę, że używanie '--command' wykonuje tylko Zsh z oryginalnej powłoki Bash podczas tworzenia powłoki. – josiah

+0

Tak jak minęło kilka dni, zakładam, że w tej chwili nie otrzymam lepszej odpowiedzi. – josiah

+1

Działa to tak długo, jak długo nie musisz wywoływać funkcji powłoki nix-shell generate ('configurePhase' etc) – olejorgenb