Fish is my shell of choice for a couple years now. Not because it's the perfect shell, but because it's a lot better than any other for interactive shells.<p>For scripting I still stick to bash because it's more portable and I already know how to cope with its warts. And sometimes when I can't remember the fish syntax by heart, I just launch a bash from inside fish to run my command and then Ctrl-D :-)
Don't have anything to add to this except to say thanks to the team for an amazing product. Been using fish shell for 5+ years now and I love it. "Finally, a command line shell for the 90s"!
I love fish, and have been using it as my shell for over 10 years, it's pretty much the first thing I install on a new system.<p>I usually heavily tweak the settings of the applications I use, make my own custom themes etc, but the defaults of fish are so good that I hardly changed anything.<p>I only installed 3 plugins (z,fzf,and virtualfish) and that's it, it's super productive.<p>Completion from history, persistently setting enviroment variables, defining functions, the syntax, everything is much more ergonomic and sane than in bash.<p>I'm sure you can tweak zsh or even bash to achieve something similar, but why bother?<p>Also, i don't mind the incompatibility with bash: the fish language is much more sane, and you can easily use bash if needed.
I'm surprised that Fish isn't used more for education. I don't know of any distros aimed at new users which have fish as the default. I don't think I've seen <i>any</i> tutorials that use fish to teach shell concepts.<p>It seems like such a missed opportunity, especially at a time when Linux Gaming is on the rise. There's a whole audience that would have the activation energy of getting into shell scripting lowered by being slightly more friendly and approachable than bash.<p>I feel like fish is the python of shells, and python has more than proved that a language being 'easy' and approachable makes it <i>much</i> more appealing to a wider audience.
As someone with a teeny tiny commit in this release and a maintained personal fork, I feel compelled to say that the biggest benefit of fish over bash/zsh for me is not just the OOTB completions UX etc., but also how much more approachable it is to hacking. I would never even bother reading the source code of bash again, let alone try to patch it, because I have 0 confidence that something completely unrelated is not gonna break.
> Significant performance improvements to completion of the available commands (#7153), especially on macOS Big Sur where there was a significant regression (#7365, #7511).<p>This is buried down in the Completion section but this is a big deal if you’ve upgraded to MacOS Big Sur: completing a command could hang the shell for 10-15 seconds making it nearly unusable. Thanks for fixing this!
Fish is my shell of choice, like many in this thread.
To me it just works, without configuring anything (ok, maybe a couple of aliases), with great defaults.<p>As an example, type anything(for instance, '.conf') + up arrow, and there you see all the completions (for instance, 'less /etc/postgresql/10/main/pg_hba.conf' shows for me) based on the shell history. You can then cycle through them with up/down arrows.
It is the same as ctrl+R in bash, but so discoverable and plain. I found tons of similar details in fish.<p>Edit: typos
I think Fish is an excellent interactive shell. I've still got Bash as my default shell for non-interactive sessions, but I configured Konsole to start Fish by default for interactive use (Settings->Command, set to the path to the fish executable). That way scripts that need Bash still work, but I get a sane environment for interaction. For "portable" scripts I write POSIX shell, C, or Python, depending on what I need to be portable to.<p>fish_add_path will solve one of the few annoying things about Fish.<p>I've been looking at trying Oil as a Bash replacement though, I think Oil for scripting + Fish for interaction might be a best-of-both-worlds setup.
I used fish shell for a lot of years.<p>Ultimately, I got tired of having to translate snippets for my use and went back to zsh for the bash compatibility. Zsh becoming the Mac default also gave me an incentive, because I prefer to use system native if it's anywhere near up to date.<p>But a lot of what I have to cobble together in zsh via antigen and omz was batteries-included or fisherman-easy in fish. It's very powerful right out of the box. I miss it all the time, and it may get me back before it's done.
I put off switching from bash for years but quit cold turkey for fish a couple of years ago, and find myself appreciating that almost daily.<p>One of the underappreciated values is that while you can configure it you get great functionality out of the box. Switching was chsh, picking a theme in the interactive config, and going back to work. The only I’ve really felt the need to do was to add the Terraform workspace to my prompt, which was quite easy.
Fish is my favourite shell because among other things, it has the best support for vi key bindings. I have been using the master version of it without any issues for more than half a year now for the undo / redo support and I'm glad the team has finally released it to stable. Thanks to everyone who worked on this! If anyone is reading this and is using vi mode with bash or zsh, give fish a try, it's so much better!
I used fish for a couple years but switched back to zsh. I found the incompatibilities with bash/zsh to be annoying at times and finally just decided to do the "When in Rome do as the Romans" do thing and adopt zsh.
FINALLY!!!!!!<p>A new "fish_add_path" helper function to add paths to $PATH without producing duplicates, to be used interactively or in config.fish (#6960, #7028). For example:<p>fish_add_path /opt/mycoolthing/bin<p>will add /opt/mycoolthing/bin to the beginning of $fish_user_path without creating duplicates, so it can be called safely from config.fish or interactively, and the path will just be there, once.
I see a lot of enthusiasm for fish. Can someone point me to some resources that I can check?<p>Not the best comparison but: vim has vimtutor, a couple of good vim games and so on. Is there anything for fish?
Folks make a big deal about everything Fish gives you out of the box, but for someone who already has Zsh well–configured (eg. syntax highlighting, autosuggestions, fzf), can someone sell me on things I might be missing out on from Fish?
> A new special input function forward-single-char moves one character to the right, and if an autosuggestion is available, only take a single character from it (#7217, #4984).<p>Huh.<p>It feels super weird to see this finally hit release. Feels like a lifetime ago that I made this patch, I'd completely forgotten about it.<p>Since then I've gone through another lockdown, quit my job, started a Rust GUI framework, and started doing self-employed consulting.<p>Also it feels kind of humbling to think about the weeks I spent writing it, and then see that it's only a bullet point in a changelog that has hundreds of them (most of them a lot more useful than mine).<p>Cheers to the fish community!
I used to really use fish pervasively in my computer, but after a while I realized that I forgot literally all of bash (like I forgot how for-loops look like, how word split works…) and I just switched back to macOS default zsh.<p>I’m still wanting a fish-alike interative shell that improves on the Bourne shell language (and bash extensions). I’m having hopes on Oil shell [0], but it’s still in an early stage so I guess I’ll have to wait for a far future…<p>[0]: <a href="https://oilshell.org" rel="nofollow">https://oilshell.org</a>
My favorite Fish plugins:<p>- jorgebucaran/fisher - Plugin manager<p>- IlanCosman/tide - Nice prompt with git status<p>- jorgebucaran/humantime.fish - Turn milliseconds into a human-readable string in Fish.<p>- franciscolourenco/done - Automatically receive notifications when long processes finish.<p>- laughedelic/pisces - Helps you to work with paired symbols like () and '' in the command line.<p>- jethrokuan/fzf - To integrate fzf (junegunn/fzf)
The performance fix for macOS [0] is very welcomed. I'll be glad to get rid of the ugly hacks in my fish config files. Looks like an amazing release all around.<p>[0] <a href="https://github.com/fish-shell/fish-shell/pull/7365" rel="nofollow">https://github.com/fish-shell/fish-shell/pull/7365</a>
Wow many improvements especially in the scripting.
Definitely I will try it out.<p>BTW I still waiting for <a href="https://github.com/fish-shell/fish-shell/issues/510" rel="nofollow">https://github.com/fish-shell/fish-shell/issues/510</a><p>Congrats for the release!
Love fish, but I always add the Bob the Fish theme which adds a really nice Powerline command line theme which effectively shows me current <i>git</i> status with just enough info to be useful much of the time.
I absolutely love fish. Completions and colors and all that are nice but the killer feature for me is the scripting. I can actually throw a loop or a one-off function together for whatever random task I have and not have to worry about arcane syntax or weird gotchas.
I used bash for years and anything that requires more than some pipes would either not get done or get done in a heavier-duty programming language. With fish things just made sense and I was immediately solving more complex problems at the shell.
When in college my prof dared me to switch from bash to fish (because he thought it would be a funny failure) and I'm still using it today. It's a fantastic shell!
I've been using fish for 3 months now after using Bash for 20. I'm probably going to switch back in the next few days.<p>I <i>LOVE</i> fish but they went out of their way to not be compatible with Bash (like (pwd) instead of $(pwd) for expanding) that break a lot of existing scripts.<p>The breaking point for me was when the rust/cargo env didn't work in it because they don't have compatible case statements.
I'd like to use fish regularly, but I feel really attacked by the over-the-top usage of color and unrequested auto-completion. Even a "monochrome" theme I tried was shoveling many different shades of gray into my terminal. It does not seem to honor the NO_COLOR variable either. Is there any way to obtain a default configuration with everything disabled?
Probably my favorite feature with fish is the improved globs. I can do<p><pre><code> **.pdf
</code></pre>
to recursively get all pdfs or<p><pre><code> *{.flac,.mp3}
</code></pre>
to only get flac and mp3 files from a directory.
Congrats on the release! Fish is a wonderful piece of software and keeps getting better.<p>I don't miss zsh and the pages of configuration at all.