3 ms·
I like the features it has, but every time someone post a link to fish shell, I wonder why I would switch from bash or zsh. Will this really be THAT MUCH BETTER
by matthewlehner 13y ago
I like the features it has, but every time someone post a link to fish shell, I wonder why I would switch from bash or zsh. Will this really be THAT MUCH BETTER? Will I just run into weird errors? Is it totally sh compliant? These are important things to know and should be on the homepage.
- jfb 13y agoThe thing that's stalled me out from using fish before is that it's different enough from the Bourne shell that it seriously interrupts my day to day usage; but it's TOO similar, with the horrible shell semantics. So it's never really been worth it to me.
- AlexMax 13y agoI am a year-or-two-old fishshell convert who is reasonably well versed in bash and tried using zsh and bash with a big .bashrc. A few things stand out to me as huge pluses: - It has a lot of cool functionality out of the box such as highlighting, smarter autocomplete (type in a partial word at the prompt and hit up instead of the cumbersome bash ctrl r/s history prompt that loves to beep at you), directory history (alt left-arrow and alt right-arrow), and more. - You don't need a 10k .bashrc or 1k .zshrc to unlock most of that cool functionality, it's just enabled by default. So anywhere you have fishshell installed, you get 95% of what you're used to, no need to git clone or scp over your .bashrc. - Startup time is _very_ quick compared to bash or zsh with said 10k .bashrc or 1k .zshrc, and is comparable to bash or zdh with no startup file. The only weird error I ever ran into was with an older version of fish shell complaining about missing directories in your PATH every time there was an automatic completion available. I have not run into that issue with newer releases. It is not sh-compliant, which will occasionally wreck havoc when you have a program that shells out without explicitly using sh. I remember running into this issue specifically with vim and emacs on more than one occasion, but truth-be-told I consider this a bug with those programs rather than a fault with fish. There's also the matter of it not being installed on some machines, but I've used bash for so many years now that my brain flips back into bash-mode anytime I see that familiar colorless prompt with a dollar sign at the end. It's not an essential upgrade. I also wouldn't bother using it for shell scripts either. But I'd say give it a boy scout try for interactive usage and see how you like it.
- dfc 13y agoDo you know anyone with a 10k .bashrc?
- eblume 13y agoI know people with well more than that, particularly when you factor in 'oh my zsh' and its ilk.
- dfc 13y agoI am not sure I would include oh-my-zsh as someone's personal zshrc. Moreover I thought OP had made a distinction between bash (10k) and zsh (1k) so I am not sure how o-m-z counts as a bashrc? I will take your word for it but I cant imagine what people put in there bashrc to get to 10k. The entire bash-it repository is 8,588 and over a third of it is bash completions which seems to duplicate the majority of what is already provided by bash-completion. And I am not sure that bash-completion is really "my .bashrc." $ cd bash-it $ sloccount ./ ...SNIP... SLOC Directory SLOC-by-Language (Sorted) 3198 completion sh=3198 3168 plugins sh=3168 1081 themes sh=1081 748 lib sh=748 242 aliases sh=242 135 top_dir sh=135 16 template sh=16 0 custom (none) Totals grouped by language (dominant language first): sh: 8588 (100.00%) Are there some big bashrc customizations that I might be overlooking? edited to reflect distinction between parent and grandparent comment
- eblume 13y agoSorry, I'm not the parent commenter.
- AlexMax 13y agoMy apologies, I was being a little facetious. Just a little. :) The size difference was based on my intuition that when I maintained my own .bashrc and .zshrc, I was able to "get away" with fewer total lines in my .zshrc than my .bashrc. I remember my .bashrc being dozens of pages, my .zshrc was only a couple. Compare that to my fish init file...all it does is set a few paths and aliases and turn off the greeting, because everything else just works out of the box for me.
- qznc 13y agoIt is NOT totally sh compliant. Intentionally.
- ilaksh 13y agoTake a look at the concept of status quo bias. What I do is spawn fish at the end of my .zshrc that way I can just exit if I run into something that doesn't work with fish. The biggest plus for me is that the default auto complete in fish is twice as smart as the other ones.