4 ms·
fish dev here. We love zsh and anyone pushing on what shells can do! Here's where I think fish fits in. The main goals of fish are: 1. Thoughtful UI that just
by ridiculous_fish 10y ago
fish dev here. We love zsh and anyone pushing on what shells can do!
Here's where I think fish fits in. The main goals of fish are:
1. Thoughtful UI that just works
2. Sane scripting
zsh does more than fish, and we're happy to let it. The tradeoff is that zsh requires substantial configuration to realize that power - and once you get into the weeds, you will learn which options are incompatible with each other. zsh has 21 options controlling history, and fish has none, but you'll probably be happier with fish's defaults.
fish has a smaller feature set, but that feature set just works out of the box: tab completions, syntax highlighting, autosuggestions, etc. Customizations (prompt, colors, etc) can be done with a web UI or a nice command line interface, and not arcane syntax (PS1=...)
The hope is you can be more productive in your shell without needing to invest tons of time configuring and learning it.
- ChrisClark 10y agoAnd that's exactly why I love fish, I just install it and go. Thanks!
- marklgr 10y ago> adds a lot of good functionality. Parent's comment is misleading, then. As someone who already has a pretty solid grasp of Bash, when I peeked at Fish it looked like there was nothing that it would gain me -- though I understand that the preconfigured shell can be useful for people who don't have the time to learn and tweak it.
- ridiculous_fish 10y agoIf fish has a hook (har har), it would be autosuggestions. fish suggests the rest of the command as you type, like your web browser does for URLs. This feels faster than tab completions, because you can see what command you'll get ahead of time. It also lets you summon commands from history quickly, without having to think about it - just start typing. If you're a die-hard bash user, autosuggestions are the feature most likely to pique your interest and make the command line more pleasant.
- marklgr 10y agoWill take a look, but 'history-search-backward' fills most of my needs in that regard.
- djsumdog 10y agoYou really should. Once I got use to the fish auto-complete history, the Bash reverse search felt terribly primitive. There is no Ctrl+R. Just type part of an old command and hit the up arrow to scroll.
- noir_lord 10y agoOff topic but are you the same ridiculous_fish that used to hang around programming:1 on yahoo circa 1999/2000?
- danielvf 10y agoI've been using fish since 2013. It's amazing how well it anticipates what I'm trying to do, and just makes life better. The biggest amazing default is to be able to start typing and have it be searching the history. When I'm ready to start work on a project I can start typing part of the project's name, say "bar", and fish will come up with a history item for "cd /customers/foocorp/barproject". I still do my "scripting" shell work in bash though, since it runs everywhere.
- wtbob 10y ago> you'll probably be happier with fish's defaults. Probably (although I use a zsh distribution to get a sane setup). I definitely appreciate the idea of sane defaults, rather than forcing the user to set everything up properly from scratch. And your autosuggestions do look pretty swell. > Customizations (prompt, colors, etc) can be done with a web UI or a nice command line interface, and not arcane syntax (PS1=...) You ship a web server in the shell? Is it always running, or does the user have to do something to start it up? I kinda like setting variables, to be honest. But I'm old-fashioned. One thing I really wish y'all'd done was use more standard shell syntax. It's really painful working in an office where someone uses fish and lets fish-isms creep into shared command libraries.
- Sean1708 10y ago> Is it always running, or does the user have to do something to start it up? Looks like the latter: https://fishshell.com/docs/current/commands.html#fish_config https://fishshell.com/docs/current/commands.html#fish_config