Hacker News new | ask | show | jobs
by scoopr 981 days ago
Last time (about a month ago) I tried use it as my login shell, for a brief while. I really want to like it, but change is always difficult :)

The issues that I struck immediately where:

1. The macos `open` / nushell `open` conflict (various workarounds available, not quite sure what to do about it, the use of the macos command is very much in my muscle memory)

2. Some issue with tab completion being illogical, not choosing the shorter exact match as the first choice, tripping me up. This seems to be fixed now!

3. Setting up the env variables (PATH and other stuff), the syntax shown in the `config env` example is somewhat obtuse and I didn't really feel to actually learn all the possibilities to make it more nicer — so porting my .profile didn't seem like a fun endeavour. Also I realised keeping them in sync will be a bit difficult, if the syntax is wildly different.

I don't deal with _that_ much of structured data to actually make good use of nu's features — though I guess if I were to use it, it would inspire me to turn the data I do work with more amendable for nu.

Perhaps I should still try again :)

2 comments

Friendly heads-up: it's considered unwise to use a non-unix compliant shell as your login shell. Rather configure your terminal emulator to use nu as its shell - or go through the effort of invoking it each time if you're not in a GUI.
>it's considered unwise to use a non-unix compliant shell as your login shell

I'll bite, why is this?

It's simple: there's too much code out there that assumes the login shell is Unix compliant. Remember that shells have been going out of their way to be Unix compliant for a very long time, rethinking the shell is a relatively new concept.
Quick question: what does “Unix compliant” mean in this context?

There are shells that are bash compatible, and shells that are sh compatible, and shells that work on posix systems, but I’m not sure what “Unix compliant” means.

I think you mean bash/sh compatible, as pretty much all code on the internet assumes that (a big reason why fish never really took off), and if you are putting things in .profile that expect bash (or sh) compatibility, and your shell doesn’t support that, it could do weird stuff.

sh is Unix compliant.
Ah, thats what I meant! The shell that `iterm2` logs in with, not `chsh`. I was a bit ambiguous there.
> The macos `open` / nushell `open` conflict

Hm, I see there's an issue and a recommendation to move nutshell open to nuopen - won't that get in the way of cross platform support? I would probably prefer to alias MacOS open (or xdg-open... Etc) to something like ”mope".

I'm guessing things like Emacs can be configured to point at an absolute path for open?

https://www.nushell.sh/book/configuration.html#macos-keeping...

https://github.com/nushell/nushell/issues/9220

You can bypass a Nushell command by prepending "^". To use MacOS open, this would be "^open cat.gif"

This tic drives me nuts when I hop between fish (which I use for two features, better tab completion and background jobs) and nu. With 0.86, it might just be for background jobs, which is something Nushell has avoided dealing with entirely. CTRL-Z and "bg" is just muscle memory for me, much like "open."