Skip to content

Shell shortcuts (fish)

Interactive-shell bindings: custom bind lines from this repo, plus the bindings injected by atuin, fzf.fish, and fish itself.

Custom bindings

Generated from the bind lines in fish/ by tools/gen-docs.py — run just docs-update to refresh.

Keys Action Defined in
Alt+f Open the yazi file manager fish/aliases.d/files.fish
Ctrl+h Delete the word left of the cursor fish/aliases.d/keybinds.fish
Ctrl+e Neovim config picker (default / nvim-lazy / nvim-full) fish/conf.d/nvim-switcher.fish

thefuck — fix the last command

Bound inside fish_user_key_bindings (fish/conf.d/thefuck.fish), so they only appear in interactive shells.

Keys Action
Esc Esc or Ctrl+f Correct the previous command (thefuck)
fuck (typed) Same, as a function

History — atuin

atuin init fish --disable-up-arrow (in config.fish), so the up arrow keeps plain fish history.

Keys Action
Ctrl+r Fuzzy-search shell history (atuin)
? Ask atuin AI (on an empty prompt)

fzf.fish pickers

Keys Action Alias
Ctrl+Alt+f Search directory (files; Ctrl+d/Ctrl+f reload dirs/files) fsd
Ctrl+Alt+l Git log fsgl
Ctrl+Alt+s Git status (changed files)
Ctrl+Alt+p Processes fsp
Ctrl+v Shell variables

fish built-ins worth remembering

Keys Action
Alt+e Edit the command line in $EDITOR
Alt+s Prepend sudo to the current (or last) command
Alt+← Alt+→ Previous / next working directory (prevd / nextd)
Alt+↑ Alt+↓ Recall arguments from previous commands
Alt+l List the directory of the token under the cursor
Alt+p Append &| less (paginate output)
Alt+h Man page for the current command
Alt+w One-line description of the current command
Ctrl+w Delete one path component to the left
Ctrl+z Undo last edit

Handy abbreviations & functions

The abbreviation-tips plugin reminds you of these when you type the long form.

Type Expands to / does
mux / mux1 open or re-attach tmux session mux0 / mux1
nvims fzf picker for neovim configs (default / nvim-lazy / nvim-full)
nv / lvi neovim with the light / lazy config
fsd / fsgl / fsp fzf search: directory / git log / processes
z / zi zoxide: jump to dir / interactive picker
b back to the previous directory and list it
mcd mkdir -p + cd into it
cpv copy with progress bar (rsync)