The fish shell is awesome
jvns.ca
jvns.ca
Now with fish, I don't need that anymore. Pressing up a few times always gets what I need and I don't need to come up with names for shorthands. (If I really want to name it, I can always add a # "tag" at the end. A trick I picked up from one of the post here (I can't remember which one).)
Although sometimes I do wish there was a keyword search feature treating space as a separator for what I've already typed. One frequent case is when I'm looking for `rsync --bunch --of --options user@server:path other_path`. I remember `rsync` and I remember `user@server` (or one of the two paths) but not the rest (and I also ssh, sftp, scp, etc to the same place a lot).
As it is, I can add a couple of plugins to zsh with zgen and get most of what makes fish interesting. They're great ideas, but there's no need to sacrifice so much for them.
Just look at the longstanding HISTFILE issue. (I would link it, but GitHub doesn't have search on mobile)