When using zsh as the default shell, nix-shell seems to have issues with the prompt and handling normal arrow key functionality. I believe the cause of this is that nix-shell doesn't automatically pull in pkgs.bashInteractive (which has readline builtin), but uses pkgs.bash instead. I fixed this on my machine by making sure bashInteractive was installed in my environment.systemPackages. It would be nice if nix-shell pulled this in automatically.