# Fish Shell
- [Finally, a command line shell for the 91](https://fishshell.com/)
- [Design Philosophy](https://fishshell.com/docs/current/design)
- The variables setting works quite differently from bash, see
[`set` - display and change shell variables](https://fishshell.com/docs/current/cmds/set)
## Plugins
- [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish)
- An all-in-one framework that comes with plugin manager, themes, and
prompts, similar to Oh My Zsh.
- Not so actively maintained.
- Has its own config directory `~/.config/omf`.
- [Fisher](https://github.com/jorgebucaran/fisher)
- More actively maintained.
- Config file at `~/.config/fish/fish_plugins`.
- [`awsm.fish`](https://github.com/jorgebucaran/awsm.fish), maintained by the
author of Fisher, a collection of resoures for Fish.
- [`fzf.fish`](https://github.com/PatrickF1/fzf.fish), fuzzy search
directories, variables, history, etc.
- Ctrl+Alt+F - files and dirs (can Enter to `cd` into)
- Ctrl+Alt+L - Git log
- Ctrl+Alt+S - Git status
- Ctrl+R - history
- Ctrl+Alt-P - processes
- Ctrl+V - variables
- [`nvm.fish`](https://github.com/jorgebucaran/nvm.fish), a Fish port of the
NVM.sh [[node|Node.js]] version manager.
- [Sponge](https://github.com/meaningful-ooo/sponge), automatically cleans
commands that failed and have never appeared in history. (to clean typos)
- [`autopair.fish`](https://github.com/jorgebucaran/autopair.fish)