2024-05-03 11:34:31
Originally posted on Fedi:
https://tilde.zone/@hedy/112375069762582794
---
Recently I took a brief look at Nushell, and ["The case for
Nushel"](
https://www.sophiajt.com/case-for-nushell/), which
prompted me to re-evaluate how I currently use Fish as my
interactive shell.
I use Fish because of its:
- Built-in syntax-highlighting,
- Auto-suggestions, and
- A better system for managing environment variables.
On places such as VPSes or emulated shells, all I have to do is
install Fish with the OS package manager, and I'll feel right at
home.
But with regards to Fish's way of environment variables, it was
all fun and games until I realized that I need those environment
variables consistently applied to `sh` and `bash` too, since
POSIX is used for my shell scripts (for portability).
This led me to coming up with [my own
system](
https://github.com/hedyhli/dotfiles?tab=readme-ov-file#shell)
of managing `$PATH` and other environment variables, which would
ensure the environment is consistent across shells.
Now using Fish as my daily driver is actually a little painful
since its syntax is *similar* to POSIX, yet incompatible in many
ways. Installation docs that use `$(...)`, for instance, I'll
have to manually convert it to `(...)`. And Fish's syntax didn't
actually bring me any solid benefits over POSIX. Perhaps I hadn't
read enough of the docs?
Essentially, I realized I'm just using Fish solely for its syntax
highlighting and built-in completion. That's it.
Nushell's language and the way it approaches data is intruiging.
It also provides built-in syntax highlighting and completion. But
I don't think it's currently mature enough for me to have it
replace fish. Programs who provide completion other than bash,
most likely includes fish completion. I have never seen any
support for Nu so far.
For now, Nu will be installed but Fish will remain as my
interactive shell. I'll see if I remember trying Nu when I need
to do some complicated pipe data manipulation and have given up
on POSIX tools.
---