https://github.com/pirate/fish-functions/blob/master/backgro...
https://github.com/pirate/fish-functions/blob/master/progres...
https://github.com/pirate/fish-functions/blob/master/signal....
https://github.com/pirate/fish-functions/blob/master/fork
Usage:
background progress_await compiling_task_finished
g++ ... some slow command
signal compiling_task_finished
This allows the progress bar to truly run at the same time as the g++ command and receive a signal from the fg process when it's time to complete, something a simple & does not let you do in fish.I've collected more details on Fish's issues here for anyone interested:
Confession: I haven't taken pains to learn any shell after that. Almost similar to why I never took to try out VSCode after getting used to Sublime Text. So many demos, videos etc. quite tempt me to try out VSCode but still haven't ever got to it)
The only thing that I took note was to install https://github.com/oh-my-fish/oh-my-fish every time I setup a machine.
Would be great to know of any quick to learn fish-hacks or fish-for-dummies resources
* get comfortable with stdin/stdout/stderr syntax (and redirection)
* get piping down pat. It's so useful.
* practice using &&, ||, and ; to sequence commands
* know how to use ENV=value to override env vars, and understand how env vars work
* yak shave a bit and make some aliases/functions in your shell based on your usage patterns
From here, it gets esoteric pretty fast, no matter what shell you're in. But you have enough concepts to figure out you need from there.
More to a specific point: I haven't had much of an issue with fish's subshell/backgrounding control. That doesn't mean that there aren't issues, just that my interactive use doesn't trip into them.
I will note that you can write an async git prompt using nothing but fish itself, which I consider an advanced use case for a shell. Check it out:
https://github.com/mattgreen/lucid.fish