Live data from Hacker News

Fish 3.4.0

fishshell.com

61–70 of 93 posts

Re: Fish 3.4.0

#61

People who have replaced fish with something else (other than bash and zsh) after using it for a significant time, to what and why?

I used fish for a few years and finally switched to zsh. I wouldn't consider myself a super shell power user, so eventually I got tired of trying to make standard things work (such as nvm and similar helper utilities). Yes there are workarounds and solutions but I just wanted plug and play for stuff I'd find in the wild. Turns out that zsh with ohmyzsh has much of fish's functionality (that I utilized anyway), so I'm…

FYI most of these things are available as part of oh-my-fish[1]

[1] https://github.com/oh-my-fish/oh-my-fish#readme

Re: Fish 3.4.0

#62
post #5

Any other long-suffering bash user switched to fish and never looked back? Why? Have you switched and ended up coming back to bash? Why? - Long-suffering bash user

never went back to bash. been using fish for at least 4 years at this point. I don't actually recall when.

Re: Fish 3.4.0

#63
post #5

Any other long-suffering bash user switched to fish and never looked back? Why? Have you switched and ended up coming back to bash? Why? - Long-suffering bash user

~30 year bash/sh user here (glossing over the regrettable, mercifully brief dalliances with csh and ksh). I can’t claim to be long suffering, because I (still) enjoy using bash.

In December just gone I gave up on macOS after 17 years and switched to Linux. Thought I’d take the opportunity to try a new shell and went for fish (though I still use bash on certain remote hosts for a variety of reasons).

autocomplete and colours/highlighting are more than enough to keep me using it. I really enjoy them. But…

I don’t yet love how history works. Four months in, I still can’t get used to not having ctrl-r.

I miss the symmetry of `do … done` in loop syntax, finding `for … end` jarring.

The lack of !! really grates sometimes. I was going to say I miss `^x^y` last command modification, but actually I can’t recall trying it since switching.

`VAR=x cmd …` doesn’t seem to work quite how I expect. I have an alias/function to perform SSO login to AWS, which expands to `BROWSER=otherfunc aws sso login` - otherfunc itself expanding to `firefox -P workprofile`. This stubbornly opens a Firefox tab in some random window, regardless of profile - despite otherfunc on its own always working. I did not, IIRC, have this trouble with bash.

Re: Fish 3.4.0

#64
post #5

Any other long-suffering bash user switched to fish and never looked back? Why? Have you switched and ended up coming back to bash? Why? - Long-suffering bash user

Switched and came back after about 3 years (to zsh). Fish is nice in many ways, but it kinda lives up to its "A command line for the 90's" slogan. It's better than what came before it, but I'm not sure it's better enough . Using a non-POSIX shell can feel like death by 1000 cuts sometimes, and I wasn't sure the benefits of Fish were worth the cost. Also, scripting feels like a bit of an afterthought in Fish and that'…

My other was similar: bash, zsh, fish, back to zsh. The ecosystem around zsh is just so much more robust. Fish is better out of the box than zsh, but once you start customizing fish loses its shine.

Re: Fish 3.4.0

#65

Unfortunately, mc has been broken since 3.2.0 IIRC and nobody's working on it.

Curious what issue you're seeing with mc? There was an mc fix in fish 3.2.1 [1] but we know of at least one remaining issue [2].

1: https://github.com/fish-shell/fish-shell/issues/7769

2: https://github.com/fish-shell/fish-shell/issues/6767

Re: Fish 3.4.0

#66

I've just taken Fish for a test drive and I'm really impressed. I use the Starship prompt in Zsh and it worked out of the box in Fish. It appears direnv will too (which I rely on). The one thing I can't work out is how to change the cursor to a block, it's a line. No vi-mode or anything, just a nice rectangle. I tried `set fish_cursor_default block` to no avail.

So after logging out and back in it started working. Switched over my config and I'll give it a go full time.

Re: Fish 3.4.0

#67
post #5

Any other long-suffering bash user switched to fish and never looked back? Why? Have you switched and ended up coming back to bash? Why? - Long-suffering bash user

I stay with bash due to its 100% availability on all systems I use, with https://github.com/akinomyoga/ble.sh I got all the auto-complete I need too.

Re: Fish 3.4.0

#68
post #5

Any other long-suffering bash user switched to fish and never looked back? Why? Have you switched and ended up coming back to bash? Why? - Long-suffering bash user

I tried bash first, with every bell and whistle added. I tried all the scripts and tuned my .bashrc and .bash_profile and PS1 and all the crap. It was a huge chore.

Then I tried switching to zsh with oh-my-zsh and all that. 42 million tunable bits and I still didn't get it to my liking.

Then I found Fish and 95% of the stuff was good enough out of the box. The only things I've really added was Starship[0] as a prompt - again good enough with pretty much zero configuration and fzf[1] for history search.

Now I use it everywhere, synced via Homeshick[2]

I still use bash to write shell scripts that aren't long enough to be converted to Python though.

[0] https://starship.rs [1] https://github.com/jethrokuan/fzf [2] https://github.com/andsens/homeshick

Re: Fish 3.4.0

#69
post #21

> fish’s command substitution syntax has been extended: $(cmd) now has the same meaning as (cmd) but it can be used inside double quotes That's pretty big news for a more POSIX-like behaviour!

They did it also because with the old syntax it was unintuitive how to put commands inside quotes. It borrowed the new syntax from bash but it wasn't ONLY to be more bash compatible. It solved a real fish shell problem also.

Nitpick: The $(…) syntax was not invented by GNU, it was invented by Kenneth Almquist at the University of Washington.

https://www.in-ulm.de/~mascheck/various/ash/#original

Re: Fish 3.4.0

#70

> fish’s command substitution syntax has been extended: $(cmd) now has the same meaning as (cmd) but it can be used inside double quotes That's pretty big news for a more POSIX-like behaviour!

Agreed with it. It is the highlight of this release.
Post reply on HN