Fish Shell Setupโ๏ธ
Setup Fish Shellโ๏ธ
Fish is a smart & user-friendly command line shell for Linux, macOS, and the rest of the family. Unlike other shells, which disable certain features by default to save system resources, Fish enables all features by defaultโfinally, a command line shell for the 90s!
A curation of plugins, prompts, and other treasures for the friendly interactive shell. This page is not an official Fish project. We do not to advertise for profit. Want to have your project featured here? Send us a pull request.
Official Resourcesโ๏ธ
Community Resourcesโ๏ธ
Install Fishโ๏ธ
Fontsโ๏ธ
Nerd-Fonts - Iconic font aggregator, collection, & patcherโ๏ธ
Install FiraCode
git clone --filter=blob:none --sparse https://github.com/ryanoasis/nerd-fonts
cd nerd-fonts
git sparse-checkout add patched-fonts/FiraCode
./install.sh FiraCode
Pluginsโ๏ธ
Fisher - Manage functions, completions, bindings, and snippets from the CLIโ๏ธ
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
fzf - Ef-๐-ient key bindings for junegunn/fzf. (Alternative)โ๏ธ
Install dependencies
Finally install fzf with Fisher
Sponge - Clean command history from typos automaticallyโ๏ธ
โ Purge only on exitโ๏ธ
Sometimes you want to ignore sponge_delay variable and access the whole history of the current session. In such cases you can instruct Sponge to purge entries only on shell exit with sponge_purge_only_on_exit variable:
Autopair - Auto-complete matching pairs in the Fish command-line. (Alternative)โ๏ธ
Getopts - CLI options parser (alternative to the argparse builtin)โ๏ธ
PyEnvโ๏ธ
Install pyenv:
Configure fish shell to use pyenv:
Install a pyenv fisher plugin to setup completions and shell integration:
Promptsโ๏ธ
Tide - A modern prompt manager for Fishโ๏ธ
Extra Modificationsโ๏ธ
Multiplexer (Byobu)โ๏ธ
- Install byobu
- Start byobu on login
- Enable mouse in byobu
-
Create/open
~/.byobu/profile.tmuxand add the following linessource $BYOBU_PREFIX/share/byobu/profiles/tmux ## Make mouse useful, tmux > 2.1 include select, resize pane/window and console wheel scroll set -g mouse on ## Lower escape timing from 500ms to 50ms for quicker response to scroll-buffer access set -s escape-time 50
Custom Fish Keybindingsโ๏ธ
- Delete next word with
Ctrl + Deleteand previous word withCtrl + Backspace -
Open
~/.config/fish/functions/fish_user_key_bindings.fishand add the following lines within the function
Note
Termius on iOS registers both backspace and ctrl + backspace with the same keycode ^H.
So, you may want to skip the backspace keybindings.
You can check what your terminal gets on a keypress by entering cat
and pressing the key you want to check.
Keychain (ssh-agent)โ๏ธ
- Install
keychain: